diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000..1934b2e8de --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,243 @@ +--- +applyTo: "keyboards/**" +excludeAgent: + - "coding-agent" +--- +# GitHub Copilot Instructions for QMK Pull Request Review +This document provides automated review guidance based on the [QMK PR Checklist](https://docs.qmk.fm/pr_checklist) and it is intended only for use by GitHub Copilot code-review agent during pull request reviews. + +> **Scope**: This review applies **only to changes within the `keyboards/` folder**. Changes outside `keyboards/` (e.g., core code, quantum, platforms, drivers) must be flagged and deferred to a QMK Collaborator — do not review them. + +## General PR Requirements + +### Branch and Submission Standards +- **Source Branch Policy**: Verify PR is NOT submitted from submitter's own `master` branch + - Flag if submitter is using their own `master` branch as source + - Suggest using feature branches instead for cleaner fork management +- **Target Branch Policy**: + - **New keyboard additions** → `master` branch (new folders under `keyboards/`) + - **All other changes** → `develop` branch: + - Keyboard updates, refactors, or moves + - Core code changes + - Data-driven configuration migrations + - Any modifications to existing keyboards +- **PR Scope**: PRs should contain the smallest set of modifications for a single change + - Flag PRs that modify multiple keyboards simultaneously + - Suggest splitting large PRs into focused, incremental changes +- **Merge Conflicts**: Check for unresolved merge conflicts + +### File Naming and Structure +- **Lowercase Requirement**: All new directories and filenames must be lowercase + - Exception: Upstream sources with original uppercase (LUFA, ChibiOS) + - Exception: Core files with valid justification + - **Reject**: Board designer preference for uppercase is NOT valid justification + +### License Headers +- **Required**: Valid license headers on all `*.c` and `*.h` files +- **Recommended**: GPL2/GPL3 for consistency +- **Format**: Check for proper GPL2+ header or SPDX identifier + ```c + // Copyright 2024 Your Name (@yourgithub) + // SPDX-License-Identifier: GPL-2.0-or-later + ``` +- **Exception**: Simple assignment-only `rules.mk` files don't need headers +- **Flag**: Missing or ambiguous license headers (blocks merge) + +--- + +## Keymap PR Reviews + +**Scope**: These rules apply to files within `keyboards/*/keymaps/*` subdirectories. + +### Note on Non-Default Keymaps +- Any keymap folder named something other than `default` (e.g., `default_clueboard`, `via`) is a non-default keymap +- **Do not review the content** of non-default keymaps — flag their presence and note that a QMK Collaborator must review them + +### Keymap Code Standards +- **Includes**: `#include QMK_KEYBOARD_H` preferred over specific board files +- **Enums**: Suggest using layer enums instead of `#define`s for layers (soft suggestion only) +- **Custom Keycodes**: First entry must be `QK_USER` +- **VIA**: Keymaps should NOT enable VIA + - VIA keymaps belong in [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) + +--- + +## Keyboard PR Reviews + +**Scope**: These rules apply to keyboard-level files in `keyboards/*` directories, excluding files within the `keymaps/` subdirectories. This includes: +- `info.json` or `keyboard.json` (keyboard root or variant level) +- `readme.md` (keyboard level) +- `rules.mk` (keyboard level) +- `config.h` (keyboard level, not keymap level) +- `.c` and `.h` files +- Hardware configuration files (`halconf.h`, `mcuconf.h`, `chconf.h`) + +### Branch Targeting +- **New Keyboards**: Target `master` branch + - New additions to `keyboards/` folder submit to `master` +- **Keyboard Moves**: Must target `develop` branch + - Check `data/mappings/keyboard_aliases.hjson` is updated for moves +- **Keyboard Updates/Refactors**: Must target `develop` to reduce merge conflicts +- **Data Driven Migration**: Must target `develop` + +### info.json and keyboard.json Requirements +- **Schema Validation**: Verify that `info.json` and `keyboard.json` files are valid JSON (no syntax errors, no trailing commas, properly closed brackets) +- **Mandatory Elements**: + - `url` field is present and begins with `http://` or `https://` + - `maintainer` field is present and non-empty + - `usb.vid` and `usb.pid` fields are present and match the `0x` hexadecimal format (e.g. `"vid": "0x1234"`, `"pid": "0xFEED"`) + - `usb.device_version` field is present + - Each key entry in every `layout` array must include a `"matrix"` property (e.g. `{"label": "L01", "matrix": [0, 0], "x": 0, "y": 0}`) + - Microcontroller and bootloader specified + - Diode direction (if not using direct pins) +- **Layout Naming**: + - Single layout: Must be named `LAYOUT` or match `LAYOUT_*` pattern + - Multiple layouts: Must include `LAYOUT_all` plus at least one alternate name + +### readme.md Requirements +- **Template**: Must follow [official template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) +- **Flash Command**: Present with `:flash` at end +- **Hardware Link**: Valid availability link (unless handwired) + - Private groupbuys acceptable + - Open-source should link to files +- **Reset Instructions**: Bootloader reset instructions must be present (non-empty) +- **Images**: A keyboard image is preferred but not mandatory + - If present, images must not be hosted in the repository + - If an imgur URL is used, it must link directly to the image (i.e. `https://i.imgur.com/.`), not the preview page (i.e. not `https://imgur.com/`) + +### rules.mk Standards +- **Removed Items**: + - Size comments like `(-/+size)` + +### config.h Standards (Keyboard Level) +- **Prohibited**: + - `#define DESCRIPTION` + - Comment blocks explaining features + - Commented-out unused defines + - `#include "config_common.h"` +- **No Vial**: Vial-related files/changes not accepted + +### Keyboard Implementation Files + +#### `.c` +- **Advanced Code Flag**: ⚠️ If a `.c` file is present in the PR, flag it as possible advanced code requiring QMK Collaborator review + +#### `.h` +- **Include**: `#include "quantum.h"` at top +- **Layout Macros**: If `LAYOUT` macros are present, suggest moving them to `info.json` or `keyboard.json` + +### Default Keymap Standards + +**Scope**: These rules specifically apply to files within `keyboards/*/keymaps/default/` directories. + +- **Pristine Requirement**: Bare minimum clean slate + - ⚠️ If `keymap.c` contains anything beyond the `keymaps[]` array, or if the `default` keymap folder contains additional `.c` or `.h` files, flag this as possible advanced code requiring QMK Collaborator review +- **Removed Examples**: Delete `QMKBEST`/`QMKURL` macros +- **Tri Layer**: Use Tri Layer feature instead of manual `layer_on/off()` + `update_tri_layer()` +- **Encoder Map**: Use encoder map feature, `encoder_update_user()` may not be present +- **No VIA**: Default keymap should not enable VIA + +### Prohibited Files +- **No VIA JSON**: Belongs in [VIA Keyboard Repo](https://github.com/the-via/keyboards) +- **No KLE JSON**: Not used within QMK +- **Single Keyboard Per PR**: A PR must not modify more than one `keyboards//` directory + - Flag PRs that touch multiple top-level keyboard folders (e.g., both `keyboards/mykeyboard1/` and `keyboards/mykeyboard2/`) — each keyboard must be a separate PR +- **No Cross-Keyboard Sources**: Don't include files from other keyboard vendors + - Exception: Core files (e.g., `drivers/sensors/pmw3360.c`) + - Use of vendor-specific code (e.g., `wilba_tech/wt_main.c`) only when keyboard exists in the same enclosing vendor folder (e.g. a `wilba_tech` keyboard) + +--- + +## Review Response Templates + +### For source master branch usage: +``` +⚠️ This PR appears to be submitted from your own `master` branch. For future PRs, we recommend using feature branches instead of committing to your `master`. This makes it easier to keep your fork updated and manage multiple PRs. + +See: [Best Practices: Your Fork's Master](https://docs.qmk.fm/newbs_git_using_your_master_branch) +``` + +### For incorrect target branch: +``` +❌ This PR targets the wrong branch: +- **New keyboard additions** should target `master` +- **Keyboard updates/refactors/moves** should target `develop` + +Please change the target branch accordingly. +``` + +### For missing license headers: +``` +❌ Missing GPL-compatible license headers on the following files: +- [list files] + +Please add GPL2+ headers (GPL2/GPL3 recommended). Example: +\`\`\`c +// Copyright 2024 Your Name (@yourgithub) +// SPDX-License-Identifier: GPL-2.0-or-later +\`\`\` +``` + +### For non-lowercase filenames: +``` +❌ The following files/directories must be lowercase: +- [list files] + +Exception: Only valid if from upstream sources (LUFA, ChibiOS) or justified by core consistency. +``` + +### For config.h violations: +``` +⚠️ Found prohibited config.h elements: +- [list specific issues: `#define DESCRIPTION`, `#include "config_common.h"`, comment blocks, commented-out defines] + +Please remove these and refer to [Data Driven Configuration](https://docs.qmk.fm/data_driven_config). +``` + +### For info.json or keyboard.json issues: +``` +⚠️ info.json or keyboard.json needs attention: +- [list missing mandatory fields] +- Please run: \`qmk format-json -i path/to/info.json\` (or keyboard.json) +- Validate with: \`qmk lint -kb \` +``` + +### For non-pristine default keymap: +``` +⚠️ Default keymap requires collaborator review: +The default `keymap.c` contains code beyond the `keymaps[]` array. The following was detected: +- [describe: extra functions/definitions in keymap.c, or additional .c/.h files in the default keymap folder] + +A QMK Collaborator must review this before merging. +``` + +### For non-default keymaps: +``` +⚠️ Non-default keymap detected: `keyboards/[path]/keymaps/[name]/` + +This keymap requires a QMK Collaborator to review its content. No automated review of its code was performed. +``` + +### For `.c` detected: +``` +⚠️ `.c` file detected: `keyboards/[path]/[keyboard].c` + +This file may contain advanced hardware configuration. A QMK Collaborator must review this before merging. +``` + +--- + +## Constraints and Conduct + +- **Scope**: Only review changes within the `keyboards/` folder. Flag any changes outside `keyboards/` and defer to a QMK Collaborator without reviewing them. +- Focus reviews on **objective checklist items** that can be automatically verified +- Flag **definite violations** with ❌ +- Suggest improvements for **recommendations** with ⚠️ +- **Provide specific file/line references** when flagging issues +- **Link to relevant QMK documentation** for each issue +- **Prioritize blocking issues** (license, merge conflicts, branch policy) +- **Be constructive**: Suggest fixes, not just problems +- **Do not review non-default keymaps** — flag their presence and defer to a QMK Collaborator +- **Do not review `.c` content in detail** — flag its presence and defer to a QMK Collaborator + +This is meant as a **first-pass review** to catch common issues before human review. Complex architectural decisions, code quality, and subjective assessments still require human QMK Collaborator review. diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml index cdf6349878..58e12138c5 100644 --- a/.github/workflows/api.yml +++ b/.github/workflows/api.yml @@ -25,7 +25,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 1 persist-credentials: false diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml index d526db397c..a68d7c63ed 100644 --- a/.github/workflows/auto_approve.yml +++ b/.github/workflows/auto_approve.yml @@ -4,7 +4,7 @@ permissions: {} on: schedule: - - cron: "*/5 * * * *" + - cron: "*/30 * * * *" jobs: automatic_approve: diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index a2c6a104a8..c6db22ab74 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -28,7 +28,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml new file mode 100644 index 0000000000..ea1364006c --- /dev/null +++ b/.github/workflows/bootstrap_testing.yml @@ -0,0 +1,289 @@ +name: Bootstrap Script Testing + +on: + push: + branches: [master, develop, xap] + paths: + - 'util/env-bootstrap.sh' + - '.github/workflows/bootstrap_testing.yml' + pull_request: + paths: + - 'util/env-bootstrap.sh' + - '.github/workflows/bootstrap_testing.yml' + workflow_dispatch: + +permissions: + contents: read + +jobs: + prep: + runs-on: ubuntu-latest + + outputs: + any_changed: ${{ steps.file_changes.outputs.any_changed }} + + steps: + - name: Get changed files + id: file_changes + if: ${{ github.event_name == 'pull_request' }} + uses: tj-actions/changed-files@v47 + with: + use_rest_api: true + files: | + util/env-bootstrap.sh + .github/workflows/bootstrap_testing.yml + + bootstrap-test-linux: + name: Bootstrap (Linux) + + needs: prep + if: ${{ github.event_name != 'pull_request' || needs.prep.outputs.any_changed == 'true' }} + + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + distribution: + # Ubuntu/Debian based + - debian:11 + - debian:12 + - debian:13 + - ubuntu:22.04 + - ubuntu:24.04 + - ubuntu:26.04 + + # RHEL/CentOS/Fedora based + - fedora:42 + - fedora:43 + - fedora:44 + - rockylinux:8 + - rockylinux:9 + - rockylinux/rockylinux:10 + - almalinux:8 + - almalinux:9 + - almalinux:10 + + # OpenSUSE based (we skip Tumbleweed as it has issues with package mirrors regularly being out of date) + - opensuse/leap:latest + + # Gentoo-based + - gentoo/stage3:latest + + # Arch based + - archlinux:latest + - cachyos/cachyos:latest + - manjarolinux/base:latest + + container: + image: ${{ matrix.distribution }} + options: --privileged + + steps: + - name: Install base dependencies + run: | + # Attempt to run the package installation up to 10 times to mitigate transient network issues + for n in $(seq 1 10); do + { + echo "Attempt #$n of 10 to install base dependencies:" + case "${{ matrix.distribution }}" in + *ubuntu*|*debian*) + apt-get update + apt-get install -y sudo git passwd + ;; + *fedora*|*rockylinux*|*almalinux*) + dnf install -y sudo git passwd findutils # findutils=xargs + ;; + *suse*) + zypper --non-interactive refresh + zypper --non-interactive install sudo git shadow findutils tar # findutils=xargs + ;; + *gentoo*) + emerge-webrsync + emerge --noreplace --ask=n sudo dev-vcs/git shadow findutils # findutils=xargs + ;; + *archlinux*|*cachyos*|*manjaro*) + pacman -Syu --noconfirm + pacman -S --noconfirm sudo git + ;; + esac + } && break || sleep 10 + done + + # Fix PAM configuration for sudo in containers + # Fix /etc/shadow permissions - common issue in container environments + chmod 640 /etc/shadow || chmod 400 /etc/shadow || true + + # Disable problematic PAM modules that commonly fail in RHEL-like containers + sed -i 's/^session.*pam_systemd.so/#&/' /etc/pam.d/sudo || true + sed -i 's/^session.*pam_loginuid.so/#&/' /etc/pam.d/sudo || true + + # Ensure proper sudoers configuration + echo 'Defaults !requiretty' >> /etc/sudoers + echo 'Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' >> /etc/sudoers + + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 1 + submodules: recursive + path: qmk_firmware + + - name: Create test user + run: | + # Create a test user for the bootstrap script + useradd -m -s /bin/bash -U testuser + echo 'testuser:testpassword' | chpasswd || true + + # Configure passwordless sudo + echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # some distros complain about root not being in sudoers + echo "testuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers + + # Test sudo functionality + sudo -u testuser whoami || echo "Sudo test failed, but continuing..." + + - name: Move QMK repository to test user home + run: | + # Add upstream remote to the cloned repository so `qmk doctor` doesn't flag a warning + git -C qmk_firmware remote add upstream https://github.com/qmk/qmk_firmware.git + # Move the QMK repository to the test user's home directory + mv qmk_firmware /home/testuser/qmk_firmware + chown -R testuser:testuser /home/testuser/qmk_firmware + + - name: Run bootstrap script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Ensure the bootstrap script can access sudo + sudo -u testuser --preserve-env=GITHUB_TOKEN bash -c " + export CONFIRM=1 + export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + cd /home/testuser + bash /home/testuser/qmk_firmware/util/env-bootstrap.sh + " + + - name: Install dependencies + run: | + sudo -u testuser bash -c " + /home/testuser/.local/share/uv/tools/qmk/bin/python -m pip install -r /home/testuser/qmk_firmware/requirements.txt + " + + - name: Test QMK CLI + run: | + sudo -u testuser bash -c " + export PATH=/home/testuser/.local/bin:\$PATH + cd /home/testuser + qmk setup -y -H /home/testuser/qmk_firmware # setup implies doctor, no need to run it separately + cd /home/testuser/qmk_firmware + qmk mass-compile -j $(nproc) -e DUMP_CI_METADATA=yes -f 'keyboard_name==*onekey*' -km reset -p || touch .failed # Compile a bunch of different platforms + " + + cd /home/testuser/qmk_firmware + ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true + [ ! -e .failed ] || exit 1 + + bootstrap-test-macos: + name: Bootstrap (macOS) + + needs: prep + if: ${{ github.event_name != 'pull_request' || needs.prep.outputs.any_changed == 'true' }} + + strategy: + fail-fast: false + matrix: + os: + - macos-14 # Apple Silicon ARM64 + - macos-15 # Apple Silicon ARM64 + - macos-15-intel # Intel x64 + - macos-26 # Apple Silicon ARM64 + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 1 + submodules: recursive + + - name: Run bootstrap script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Add upstream remote to the cloned repository so `qmk doctor` doesn't flag a warning + git remote add upstream https://github.com/qmk/qmk_firmware.git + # Run the bootstrap script + export CONFIRM=1 + sh ./util/env-bootstrap.sh + + - name: Install dependencies + run: | + $HOME/.local/share/uv/tools/qmk/bin/python -m pip install -r requirements.txt + + - name: Test QMK CLI + run: | + # Add QMK CLI to PATH (bootstrap script installs it to ~/.local/bin on macOS) + export PATH="$HOME/.local/bin:$PATH" + qmk setup -y -H . # setup implies doctor, no need to run it separately + qmk mass-compile -j $(sysctl -n hw.ncpu) -e DUMP_CI_METADATA=yes -f 'keyboard_name==*onekey*' -km reset || touch .failed # Compile a bunch of different platforms + + ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true + [ ! -e .failed ] || exit 1 + + bootstrap-test-windows: + name: Bootstrap (Windows) + + needs: prep + if: ${{ github.event_name != 'pull_request' || needs.prep.outputs.any_changed == 'true' }} + + strategy: + fail-fast: false + matrix: + msys-variant: + - mingw64 + - clang64 + - ucrt64 + + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + + steps: + - name: Install MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msys-variant }} + pacboy: >- + git: + + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 1 + submodules: recursive + + - name: Run bootstrap script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Add upstream remote to the cloned repository so `qmk doctor` doesn't flag a warning + git remote add upstream https://github.com/qmk/qmk_firmware.git + # Run the bootstrap script + export CONFIRM=1 + sh ./util/env-bootstrap.sh + + - name: Install dependencies + run: | + /opt/uv/tools/qmk/Scripts/python -m pip install -r requirements.txt + + - name: Test QMK CLI + run: | + # Add QMK CLI to PATH (bootstrap script installs it to /opt/uv/tools/bin on Windows MSYS2) + export PATH="/opt/uv/tools/bin:$PATH" + qmk setup -y -H . # setup implies doctor, no need to run it separately + qmk mass-compile -j $(nproc) -e DUMP_CI_METADATA=yes -f 'keyboard_name==*onekey*' -km reset || touch .failed # Compile a bunch of different platforms + + ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true + [ ! -e .failed ] || exit 1 + diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml index 6cefd58901..5ff6d8b4cc 100644 --- a/.github/workflows/ci_build_major_branch.yml +++ b/.github/workflows/ci_build_major_branch.yml @@ -32,29 +32,36 @@ jobs: container: ghcr.io/qmk/qmk_cli outputs: + keymaps: ${{ steps.generate_slice_length.outputs.keymaps }} slice_length: ${{ steps.generate_slice_length.outputs.slice_length }} steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - name: Disable safe.directory check run: | git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 + + - name: Install dependencies + run: pip3 install -r requirements-dev.txt - name: Determine concurrency id: generate_slice_length + shell: 'bash {0}' run: | - target_count=$( { - qmk find -km default 2>/dev/null - qmk find -km xap 2>/dev/null - } | sort | uniq | wc -l) + targets=() + target_count=0 + for target in "default" "xap"; do + count=$(qmk find -km $target 2>/dev/null | wc -l) + if [ $count -gt 0 ]; then + target_count=$(($target_count + $count)) + targets+=($target) + fi + done + keymaps=$(jq -c -n '$ARGS.positional' --args "${targets[@]}") slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution + echo "keymaps=$keymaps" >> $GITHUB_OUTPUT echo "slice_length=$slice_length" >> $GITHUB_OUTPUT build_targets: @@ -63,7 +70,7 @@ jobs: strategy: fail-fast: false matrix: - keymap: [default, xap] + keymap: ${{ fromJson(needs.determine_concurrency.outputs.keymaps) }} uses: ./.github/workflows/ci_build_major_branch_keymap.yml with: branch: ${{ inputs.branch || github.ref_name }} @@ -82,12 +89,12 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 - name: Download firmwares - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: pattern: firmware-* path: . @@ -125,14 +132,7 @@ jobs: SOURCE_DIR: . DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest - - name: Check if failure marker file exists - id: check_failure_marker - uses: andstor/file-existence-action@v3 - with: - files: ./.failed - - name: Fail build if needed - if: steps.check_failure_marker.outputs.files_exists == 'true' run: | # Exit with failure if the compilation stage failed - exit 1 + [ ! -e .failed ] || exit 1 diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index f5533cf07a..e9dda3b930 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -27,30 +27,29 @@ jobs: targets: ${{ steps.generate_targets.outputs.targets }} steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - name: Disable safe.directory check run: | git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 + + - name: Install dependencies + run: pip3 install -r requirements-dev.txt - name: Generate build targets + shell: 'bash {0}' id: generate_targets run: | { # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer counter=0 echo -n '{' - qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do + qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf --random-source=<(openssl enc -aes-256-ctr -pass pass:qmk -nosalt /dev/null) | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do if [ $counter -gt 0 ]; then echo -n ',' fi counter=$((counter+1)) - printf "\"group %02d\":{" $counter + printf "\"group-%02d\":{" $counter echo -n '"targets":"' echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n echo -n '"}' @@ -62,7 +61,7 @@ jobs: echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT - name: Upload targets json - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v7 with: name: targets-${{ inputs.keymap }} path: targets.json @@ -74,45 +73,76 @@ jobs: container: ghcr.io/qmk/qmk_cli continue-on-error: true + env: + CCACHE_CONFIGPATH: ~/.cache + strategy: matrix: target: ${{ fromJson(needs.generate_targets.outputs.targets) }} steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - name: Disable safe.directory check run: | git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 + with: + submodules: recursive + + - name: Install dependencies + run: pip3 install -r requirements-dev.txt - name: Get target definitions - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: name: targets-${{ inputs.keymap }} path: . - - name: Deploy submodules - run: | - qmk git-submodule -f - - name: Dump targets run: | jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort + - name: Restore Cache + id: cache + uses: actions/cache/restore@v5 + with: + path: ${{ env.CCACHE_CONFIGPATH }} + key: compile-${{ inputs.keymap }}-${{ matrix.target }} + - name: Build targets continue-on-error: true run: | - export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 )) - qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed + targets=$(jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort) + if [ -z "${targets}" ]; then + echo "Zero build targets detected" + exit 0 + fi + qmk mass-compile -t -j $(nproc) -e DUMP_CI_METADATA=yes -e USE_CCACHE=yes $targets || touch .failed + + - name: Dump ccache stats + run: | + ccache -s + + # Delete the old cache on hit to emulate a cache update. See https://github.com/actions/cache/issues/342. + - name: Delete old cache + env: + GH_TOKEN: ${{ github.token }} + if: steps.cache.outputs.cache-hit + run: | + count=$(gh cache list --ref ${{ github.ref }} --key ${{ steps.cache.outputs.cache-primary-key }} --json id | jq length) + if [ $count -gt 0 ]; then + gh cache delete --ref ${{ github.ref }} ${{ steps.cache.outputs.cache-primary-key }} + fi + + - name: Save Cache + uses: actions/cache/save@v5 + with: + path: ${{ env.CCACHE_CONFIGPATH }} + key: compile-${{ inputs.keymap }}-${{ matrix.target }} - name: Upload binaries - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v7 with: name: firmware-${{ inputs.keymap }}-${{ matrix.target }} if-no-files-found: ignore @@ -136,17 +166,17 @@ jobs: steps: - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Download firmwares - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v8 with: pattern: firmware-${{ inputs.keymap }}-* path: . merge-multiple: true - name: Upload all firmwares - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v7 with: name: firmware-${{ inputs.keymap }} if-no-files-found: ignore @@ -165,7 +195,7 @@ jobs: truncate --size='<960K' $GITHUB_STEP_SUMMARY || true - name: Delete temporary build artifacts - uses: geekyeggo/delete-artifact@v5 + uses: geekyeggo/delete-artifact@v6 with: name: | firmware-${{ inputs.keymap }}-* diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index fc24c6b366..3d23a4fbdf 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -24,11 +24,12 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: recursive - name: Install dependencies run: pip3 install -r requirements-dev.txt + - name: Run tests run: qmk pytest diff --git a/.github/workflows/develop_docs.yml b/.github/workflows/develop_docs.yml new file mode 100644 index 0000000000..c1091ccbc2 --- /dev/null +++ b/.github/workflows/develop_docs.yml @@ -0,0 +1,34 @@ +name: Generate Develop Docs + +permissions: + contents: write + +on: + push: + branches: + - develop + paths: + - 'builddefs/docsgen/**' + - 'tmk_core/**' + - 'quantum/**' + - 'platforms/**' + - 'docs/**' + - '.github/workflows/docs.yml' + +jobs: + generate: + runs-on: ubuntu-latest + + steps: + - name: Deploy Develop + if: ${{ github.repository == 'qmk/qmk_firmware' }} + uses: actions/github-script@v9 + with: + github-token: ${{ secrets.QMK_BOT_TOKEN }} + script: | + const result = await github.rest.actions.createWorkflowDispatch({ + owner: 'qmk', + repo: 'qmk_docs_devel', + workflow_id: 'develop.yml', + ref: 'main', + }) diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml index 5c046b8f64..03d0803fe8 100644 --- a/.github/workflows/develop_update.yml +++ b/.github/workflows/develop_update.yml @@ -15,7 +15,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: token: ${{ secrets.QMK_BOT_TOKEN }} fetch-depth: 0 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fe5d6027e2..104b19892b 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,14 +30,15 @@ jobs: container: ghcr.io/qmk/qmk_cli steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 1 - name: Install dependencies + run: pip3 install -r requirements-dev.txt + + - name: Install nvm run: | - apt-get update && apt-get install -y rsync doxygen - # install nvm touch $HOME/.bashrc wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash @@ -56,7 +57,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.4 + uses: JamesIves/github-pages-deploy-action@v4.8.0 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml index fc33f883a8..1eb5810f9b 100644 --- a/.github/workflows/feature_branch_update.yml +++ b/.github/workflows/feature_branch_update.yml @@ -21,7 +21,7 @@ jobs: - riot steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: token: ${{ secrets.QMK_BOT_TOKEN }} fetch-depth: 0 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index be6617e2b2..cc32f6f898 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -26,7 +26,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml index 74a42669d6..8d017b7de3 100644 --- a/.github/workflows/format_push.yml +++ b/.github/workflows/format_push.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -47,7 +47,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 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 7d4ff0a977..840f55228e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -31,7 +31,7 @@ jobs: with: use_rest_api: true - - name: Print info + - name: Print git info run: | git rev-parse --short HEAD echo ${{ github.event.pull_request.base.sha }} @@ -57,7 +57,7 @@ jobs: if [[ $KEYMAP_ONLY -gt 0 ]]; then echo "linting ${KB}" - qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB} + qmk lint --strict --keyboard ${KB} && qmk info -l --keyboard ${KB} exit_code=$(($exit_code + $?)) fi done @@ -78,10 +78,21 @@ jobs: fi exit $exit_code - - name: Verify keyboard aliases + - name: Reset git repo if: always() shell: 'bash {0}' run: | git reset --hard git clean -xfd + + - name: Verify keyboard targets + if: always() + shell: 'bash {0}' + run: | + qmk ci-validate-keyboard-targets + + - name: Verify keyboard aliases + if: always() + shell: 'bash {0}' + run: | qmk ci-validate-aliases diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml index 06759102cc..516b02aef0 100644 --- a/.github/workflows/regen.yml +++ b/.github/workflows/regen.yml @@ -8,6 +8,9 @@ on: paths: - 'data/constants/**' - 'lib/python/**' + - 'quantum/rgblight/rgblight_breathe_table.h' + - 'quantum/keycodes.h' + - 'quantum/keymap_extras/**' jobs: regen: @@ -19,7 +22,10 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 + + - name: Install dependencies + run: pip3 install -r requirements-dev.txt - name: Run qmk generators run: | diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index 4798e86c59..5d8a84b933 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -19,7 +19,10 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 + + - name: Install dependencies + run: pip3 install -r requirements-dev.txt - name: Run qmk generators run: | @@ -34,7 +37,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 7ab9969242..6f785dec7d 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -11,6 +11,7 @@ on: pull_request: paths: - 'builddefs/**' + - '!builddefs/docsgen/**' - 'quantum/**' - 'platforms/**' - 'tmk_core/**' @@ -26,10 +27,12 @@ jobs: container: ghcr.io/qmk/qmk_cli steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: recursive + - name: Install dependencies run: pip3 install -r requirements-dev.txt + - name: Run tests - run: qmk test-c + run: qmk test-c -j $(nproc) diff --git a/.gitignore b/.gitignore index 6ec26d3876..e9aaf0b27b 100644 --- a/.gitignore +++ b/.gitignore @@ -65,6 +65,8 @@ cmake-build-debug CMakeLists.txt *.pdf *.zip +.env +.envrc # Let these ones be user specific, since we have so many different configurations *.code-workspace diff --git a/Makefile b/Makefile index 5bb4f0d8eb..2a992845ce 100644 --- a/Makefile +++ b/Makefile @@ -38,14 +38,17 @@ $(info QMK Firmware $(QMK_VERSION)) endif endif -# Try to determine userspace from qmk config, if set. -ifeq ($(QMK_USERSPACE),) - QMK_USERSPACE = $(shell qmk config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g') -endif - # Determine which qmk cli to use QMK_BIN := qmk +# Try to determine userspace from qmk config, if set. Handle direct query on qmk_cli>=1.1.7 +# falling back to legacy method of only supporting user.overlay_dir config +# sort is used to buffer 'qmk env' output and avoid BrokenPipeError errors +export override QMK_USERSPACE := $(shell \ + $(QMK_BIN) env | sort | grep -q QMK_USERSPACE \ + && $(QMK_BIN) env QMK_USERSPACE \ + || $(QMK_BIN) config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g') + # avoid 'Entering|Leaving directory' messages MAKEFLAGS += --no-print-directory @@ -115,7 +118,7 @@ endef TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND) # As TRY_TO_MATCH_RULE_FROM_LIST_HELPER, but with additional -# resolution of keyboard_aliases.hjson for provided rule +# resolution of keyboard_aliases.hjson for provided rule define TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB # Split on ":", padding with empty strings to avoid indexing issues TOKEN1:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[0])" $$(RULE)) @@ -190,41 +193,9 @@ endef # Parses a rule in the format : # the keyboard is already known when entering this function define PARSE_KEYBOARD - # If we want to compile the default subproject, then we need to - # include the correct makefile to determine the actual name of it CURRENT_KB := $1 - # 5/4/3/2/1 - KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB) - KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1))) - KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2))) - KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3))) - KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4))) - - KEYMAPS := - # get a list of all keymaps - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) - - ifneq ($(QMK_USERSPACE),) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) - endif - - KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1) - LAYOUT_KEYMAPS := - $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) - ifneq ($(QMK_USERSPACE),) - $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.))))) - endif - - KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS)) + KEYMAPS := $(shell $(QMK_BIN) list-keymaps --keyboard $1) # if the rule after removing the start of it is empty (we haven't specified a kemap or target) # compile all the keymaps @@ -329,6 +300,7 @@ endef define BUILD_TEST TEST_PATH := $1 TEST_NAME := $$(notdir $$(TEST_PATH)) + TEST_ID := $$(patsubst ./tests/%,%,$$(TEST_PATH)) TEST_FULL_NAME := $$(subst /,_,$$(patsubst $$(ROOT_DIR)tests/%,%,$$(TEST_PATH))) MAKE_TARGET := $2 COMMAND := $1 @@ -342,7 +314,7 @@ define BUILD_TEST TEST_MSG := $$(MSG_TEST) $$(TEST_FULL_NAME)_COMMAND := \ printf "$$(TEST_MSG)\n"; \ - $$(TEST_EXECUTABLE); \ + $$(TEST_EXECUTABLE) --gtest_color=$$(COLOR); \ if [ $$$$? -gt 0 ]; \ then error_occurred=1; \ fi; \ @@ -480,16 +452,17 @@ distclean_userspace: clean endif # Extra targets for formatting and/or pytest, running within the qmk/qmk_cli container to match GHA. -CONTAINER_PREAMBLE := export HOME="/tmp"; export PATH="/tmp/.local/bin:\$$PATH"; python3 -m pip install --upgrade pip; python3 -m pip install -r requirements-dev.txt - .PHONY: format-core format-core: - RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk format-c --core-only -a && qmk format-python -a" + RUNTIME=docker ./util/docker_cmd.sh qmk format-c --core-only -a + RUNTIME=docker ./util/docker_cmd.sh qmk format-python -a .PHONY: pytest pytest: - RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk pytest" + RUNTIME=docker ./util/docker_cmd.sh qmk pytest .PHONY: format-and-pytest format-and-pytest: - RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk format-c --core-only -a && qmk format-python -a && qmk pytest" + RUNTIME=docker ./util/docker_cmd.sh qmk format-c --core-only -a + RUNTIME=docker ./util/docker_cmd.sh qmk format-python -a + RUNTIME=docker ./util/docker_cmd.sh qmk pytest diff --git a/builddefs/build_json.mk b/builddefs/build_json.mk deleted file mode 100644 index e9d1420f36..0000000000 --- a/builddefs/build_json.mk +++ /dev/null @@ -1,36 +0,0 @@ -# Look for a json keymap file -ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1) -endif - -ifneq ($(QMK_USERSPACE),) - ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) - endif -endif diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 640dedc31e..acfad61e7d 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -138,75 +138,12 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","") DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json endif -MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) - # Pull in rules from DD keyboard config INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk) include $(INFO_RULES_MK) -# Check for keymap.json first, so we can regenerate keymap.c -include $(BUILDDEFS_PATH)/build_json.mk - -# Pull in keymap level rules.mk -ifeq ("$(wildcard $(KEYMAP_PATH))", "") - # Look through the possible keymap folders until we find a matching keymap.c - ifneq ($(QMK_USERSPACE),) - ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) - endif - endif - ifeq ($(KEYMAP_PATH),) - ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_1)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_2)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_3)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_4)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_5)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) - else ifneq ($(LAYOUTS),) - # If we haven't found a keymap yet fall back to community layouts - include $(BUILDDEFS_PATH)/build_layout.mk - else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") # Not finding keymap.c is fine if we found a keymap.json - $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap) - # this state should never be reached - endif - endif -endif +include $(BUILDDEFS_PATH)/locate_keymap.mk +-include $(KEYMAP_PATH)/rules.mk # Have we found a keymap.json? ifneq ("$(wildcard $(KEYMAP_JSON))", "") @@ -217,16 +154,9 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "") OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\" endif - KEYMAP_PATH := $(KEYMAP_JSON_PATH) - KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h - ifeq ($(OTHER_KEYMAP_C),) - # Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c) - -include $(KEYMAP_PATH)/rules.mk - endif - # Load any rules.mk content from keymap.json INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) include $(INFO_RULES_MK) @@ -255,6 +185,13 @@ endif COMMUNITY_RULES_MK = $(shell $(QMK_BIN) generate-community-modules-rules-mk -kb $(KEYBOARD) --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/community_rules.mk $(KEYMAP_JSON)) include $(COMMUNITY_RULES_MK) +ifneq ($(COMMUNITY_MODULES),) + +$(INTERMEDIATE_OUTPUT)/src/community_config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-community-config-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_config.h $(KEYMAP_JSON)) + @$(BUILD_CMD) + $(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON)) @@ -285,9 +222,17 @@ $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD $(eval CMD=$(QMK_BIN) generate-rgb-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(KEYMAP_JSON)) @$(BUILD_CMD) +$(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-split-transaction-id-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc $(KEYMAP_JSON)) + @$(BUILD_CMD) + +COMMUNITY_CONFIG_H = $(INTERMEDIATE_OUTPUT)/src/community_config.h SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c -generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc +generated-files: $(INTERMEDIATE_OUTPUT)/src/community_config.h $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc + +endif include $(BUILDDEFS_PATH)/converters.mk @@ -386,6 +331,10 @@ define config_h_community_module_appender endef $(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module)))) +ifneq ($(COMMUNITY_CONFIG_H),) + CONFIG_H += $(COMMUNITY_CONFIG_H) +endif + ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","") CONFIG_H += $(KEYBOARD_PATH_5)/config.h endif @@ -470,8 +419,10 @@ ifneq ($(wildcard $(QMK_USERSPACE)),) endif # If the equivalent users directory exists in userspace, use that in preference to anything currently in the main repo -ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),) - USER_PATH := $(QMK_USERSPACE)/$(USER_PATH) +ifneq ($(QMK_USERSPACE),) + ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),) + USER_PATH := $(QMK_USERSPACE)/$(USER_PATH) + endif endif # Pull in user level rules.mk diff --git a/builddefs/build_layout.mk b/builddefs/build_layout.mk deleted file mode 100644 index 9ff99cc221..0000000000 --- a/builddefs/build_layout.mk +++ /dev/null @@ -1,36 +0,0 @@ -LAYOUTS_PATH := layouts -LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/)))) - -ifneq ($(QMK_USERSPACE),) - LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH)) -endif - -define SEARCH_LAYOUTS_REPO - LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP) - LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json - LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c - ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","") - -include $$(LAYOUT_KEYMAP_PATH)/rules.mk - KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON) - KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH) - else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","") - -include $$(LAYOUT_KEYMAP_PATH)/rules.mk - KEYMAP_C := $$(LAYOUT_KEYMAP_C) - KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH) - endif -endef - -define SEARCH_LAYOUTS - $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO))) -endef - -ifneq ($(FORCE_LAYOUT),) - ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS))) - $(info Forcing layout: $(FORCE_LAYOUT)) - LAYOUTS := $(FORCE_LAYOUT) - else - $(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist) - endif -endif - -$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS))) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 1da13997b5..b7cb2193fa 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -125,7 +125,7 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) MOUSE_ENABLE := yes endif -VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom +VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 paw3222 pmw3320 pmw3325 pmw3360 pmw3389 pimoroni_trackball custom ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type) @@ -157,6 +157,10 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) SRC += drivers/sensors/cirque_pinnacle.c SRC += drivers/sensors/cirque_pinnacle_gestures.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c + else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), paw3222) + SPI_DRIVER_REQUIRED = yes + else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3325) + SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball) I2C_DRIVER_REQUIRED = yes else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),) diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index d6f91b10e4..282cc6c656 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -50,15 +50,19 @@ ifeq ($(strip $(DEBUG_ENABLE)),yes) CFLAGS += -ggdb3 CXXFLAGS += -ggdb3 ASFLAGS += -ggdb3 -# Create a map file when debugging - LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref endif +# Create a map file to see what was compiled and where, unless disabled +# (e.g. test builds, which use the host linker — Apple's ld does not accept +# -Map=/--cref). +ifneq ($(strip $(CREATE_MAP)), no) +LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref +endif #---------------- C Compiler Options ---------------- ifeq ($(strip $(LTO_ENABLE)), yes) - CDEFS += -flto + CDEFS += -flto=auto CDEFS += -DLTO_ENABLE endif @@ -66,12 +70,14 @@ CFLAGS += $(CDEFS) CFLAGS += -O$(OPT) # add color ifeq ($(COLOR),true) -ifeq ("$(shell echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "") - CFLAGS+= -fdiagnostics-color -endif + CFLAGS+= -fdiagnostics-color=always +else + CFLAGS+= -fdiagnostics-color=never endif CFLAGS += -Wall CFLAGS += -Wstrict-prototypes +CFLAGS += $(call cc-option,-Wunused-but-set-variable=1,-Wunused-but-set-variable) +CFLAGS += $(call cc-option,-Wunused-but-set-parameter=1,-Wunused-but-set-parameter) ifneq ($(strip $(ALLOW_WARNINGS)), yes) CFLAGS += -Werror endif @@ -89,7 +95,8 @@ CXXFLAGS += -O$(OPT) CXXFLAGS += -w CXXFLAGS += -Wall CXXFLAGS += -Wundef - +CXXFLAGS += $(call cc-option,-Wunused-but-set-variable=1,-Wunused-but-set-variable) +CXXFLAGS += $(call cc-option,-Wunused-but-set-parameter=1,-Wunused-but-set-parameter) ifneq ($(strip $(ALLOW_WARNINGS)), yes) CXXFLAGS += -Werror endif diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json index b6c56f3448..17912e652d 100644 --- a/builddefs/docsgen/package.json +++ b/builddefs/docsgen/package.json @@ -1,10 +1,8 @@ { "license": "GPL-2.0-or-later", "devDependencies": { - "vite": "^5.4.21", - "vitepress": "^1.1.0", - "vitepress-plugin-tabs": "^0.5.0", - "vue": "^3.4.24" + "vitepress": "^1.6.4", + "vitepress-plugin-tabs": "^0.8.0" }, "scripts": { "docs:dev": "vitepress dev --host 0.0.0.0", diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index e5eaaa2c8f..f962aaebf8 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -2,181 +2,206 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" - integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== +"@algolia/abtesting@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.15.2.tgz#5c5e52daba3cf80d92eaf683c781e7f86d3b51b6" + integrity sha512-rF7vRVE61E0QORw8e2NNdnttcl3jmFMWS9B4hhdga12COe+lMa26bQLfcBn/Nbp9/AF/8gXdaRCPsVns3CnjsA== dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/autocomplete-plugin-algolia-insights@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" - integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== +"@algolia/autocomplete-core@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz#2c410baa94a47c5c5f56ed712bb4a00ebe24088b" + integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== dependencies: - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/autocomplete-plugin-algolia-insights" "1.17.7" + "@algolia/autocomplete-shared" "1.17.7" -"@algolia/autocomplete-preset-algolia@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" - integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== +"@algolia/autocomplete-plugin-algolia-insights@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz#7d2b105f84e7dd8f0370aa4c4ab3b704e6760d82" + integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== dependencies: - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/autocomplete-shared" "1.17.7" -"@algolia/autocomplete-shared@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" - integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== - -"@algolia/cache-browser-local-storage@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz#0cc26b96085e1115dac5fcb9d826651ba57faabc" - integrity sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg== +"@algolia/autocomplete-preset-algolia@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz#c9badc0d73d62db5bf565d839d94ec0034680ae9" + integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== dependencies: - "@algolia/cache-common" "4.23.3" + "@algolia/autocomplete-shared" "1.17.7" -"@algolia/cache-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.23.3.tgz#3bec79092d512a96c9bfbdeec7cff4ad36367166" - integrity sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A== +"@algolia/autocomplete-shared@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz#105e84ad9d1a31d3fb86ba20dc890eefe1a313a0" + integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== -"@algolia/cache-in-memory@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz#3945f87cd21ffa2bec23890c85305b6b11192423" - integrity sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg== +"@algolia/client-abtesting@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.49.2.tgz#0c7f46ba2789e30db53eb31f816aa31fe1ec750e" + integrity sha512-XyvKCm0RRmovMI/ChaAVjTwpZhXdbgt3iZofK914HeEHLqD1MUFFVLz7M0+Ou7F56UkHXwRbpHwb9xBDNopprQ== dependencies: - "@algolia/cache-common" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-account@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.23.3.tgz#8751bbf636e6741c95e7c778488dee3ee430ac6f" - integrity sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA== +"@algolia/client-analytics@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.49.2.tgz#d1eee1df4a7d50c05cd0448589b34d5e3b058237" + integrity sha512-jq/3qvtmj3NijZlhq7A1B0Cl41GfaBpjJxcwukGsYds6aMSCWrEAJ9pUqw/C9B3hAmILYKl7Ljz3N9SFvekD3Q== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-analytics@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.23.3.tgz#f88710885278fe6fb6964384af59004a5a6f161d" - integrity sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA== +"@algolia/client-common@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.49.2.tgz#cb93f1ea9a60f7ffec65474e075afb52900f2434" + integrity sha512-bn0biLequn3epobCfjUqCxlIlurLr4RHu7RaE4trgN+RDcUq6HCVC3/yqq1hwbNYpVtulnTOJzcaxYlSr1fnuw== + +"@algolia/client-insights@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.49.2.tgz#fdbd2be74bfe805cddf249f67f95f65323c5f5dd" + integrity sha512-z14wfFs1T3eeYbCArC8pvntAWsPo9f6hnUGoj8IoRUJTwgJiiySECkm8bmmV47/x0oGHfsVn3kBdjMX0yq0sNA== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.23.3.tgz#891116aa0db75055a7ecc107649f7f0965774704" - integrity sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw== +"@algolia/client-personalization@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.49.2.tgz#3b8fc9eb85b24dbcb2ee80dae9af91bd12490148" + integrity sha512-GpRf7yuuAX93+Qt0JGEJZwgtL0MFdjFO9n7dn8s2pA9mTjzl0Sc5+uTk1VPbIAuf7xhCP9Mve+URGb6J+EYxgA== dependencies: - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-personalization@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.23.3.tgz#35fa8e5699b0295fbc400a8eb211dc711e5909db" - integrity sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g== +"@algolia/client-query-suggestions@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.49.2.tgz#e5d9ed73fe5f0afc8feddfc68d4691d5963e8c57" + integrity sha512-HZwApmNkp0DiAjZcLYdQLddcG4Agb88OkojiAHGgcm5DVXobT5uSZ9lmyrbw/tmQBJwgu2CNw4zTyXoIB7YbPA== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-search@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.23.3.tgz#a3486e6af13a231ec4ab43a915a1f318787b937f" - integrity sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw== +"@algolia/client-search@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.49.2.tgz#3c823ffaf333ce70fedfb3d45361661c8b227806" + integrity sha512-y1IOpG6OSmTpGg/CT0YBb/EAhR2nsC18QWp9Jy8HO9iGySpcwaTvs5kHa17daP3BMTwWyaX9/1tDTDQshZzXdg== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/logger-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.23.3.tgz#35c6d833cbf41e853a4f36ba37c6e5864920bfe9" - integrity sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g== - -"@algolia/logger-console@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.23.3.tgz#30f916781826c4db5f51fcd9a8a264a06e136985" - integrity sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A== +"@algolia/ingestion@1.49.2": + version "1.49.2" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.49.2.tgz#99626cd9b11925e1aae5db59836821d2e7e2c892" + integrity sha512-YYJRjaZ2bqk923HxE4um7j/Cm3/xoSkF2HC2ZweOF8cXL3sqnlndSUYmCaxHFjNPWLaSHk2IfssX6J/tdKTULw== dependencies: - "@algolia/logger-common" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/recommend@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.23.3.tgz#53d4f194d22d9c72dc05f3f7514c5878f87c5890" - integrity sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w== +"@algolia/monitoring@1.49.2": + version "1.49.2" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.49.2.tgz#5c550df1b073de97e3d38a2e8d50f17e90badc52" + integrity sha512-9WgH+Dha39EQQyGKCHlGYnxW/7W19DIrEbCEbnzwAMpGAv1yTWCHMPXHxYa+LcL3eCp2V/5idD1zHNlIKmHRHg== dependencies: - "@algolia/cache-browser-local-storage" "4.23.3" - "@algolia/cache-common" "4.23.3" - "@algolia/cache-in-memory" "4.23.3" - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/logger-console" "4.23.3" - "@algolia/requester-browser-xhr" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/requester-node-http" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/requester-browser-xhr@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz#9e47e76f60d540acc8b27b4ebc7a80d1b41938b9" - integrity sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw== +"@algolia/recommend@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.49.2.tgz#ace9e988141dd627f7ac3a0e38d9e254bb006490" + integrity sha512-K7Gp5u+JtVYgaVpBxF5rGiM+Ia8SsMdcAJMTDV93rwh00DKNllC19o1g+PwrDjDvyXNrnTEbofzbTs2GLfFyKA== dependencies: - "@algolia/requester-common" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/requester-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.23.3.tgz#7dbae896e41adfaaf1d1fa5f317f83a99afb04b3" - integrity sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw== - -"@algolia/requester-node-http@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz#c9f94a5cb96a15f48cea338ab6ef16bbd0ff989f" - integrity sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA== +"@algolia/requester-browser-xhr@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.49.2.tgz#4493ed41dc84948693b34174ccc08ac5dfabd3dd" + integrity sha512-3UhYCcWX6fbtN8ABcxZlhaQEwXFh3CsFtARyyadQShHMPe3mJV9Wel4FpJTa+seugRkbezFz0tt6aPTZSYTBuA== dependencies: - "@algolia/requester-common" "4.23.3" + "@algolia/client-common" "5.49.2" -"@algolia/transporter@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.23.3.tgz#545b045b67db3850ddf0bbecbc6c84ff1f3398b7" - integrity sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ== +"@algolia/requester-fetch@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.49.2.tgz#fd64e1ec726ffb63dce22112354119125c67a27e" + integrity sha512-G94VKSGbsr+WjsDDOBe5QDQ82QYgxvpxRGJfCHZBnYKYsy/jv9qGIDb93biza+LJWizQBUtDj7bZzp3QZyzhPQ== dependencies: - "@algolia/cache-common" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/requester-common" "4.23.3" + "@algolia/client-common" "5.49.2" -"@babel/parser@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88" - integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== - -"@docsearch/css@3.6.0", "@docsearch/css@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.0.tgz#0e9f56f704b3a34d044d15fd9962ebc1536ba4fb" - integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ== - -"@docsearch/js@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.0.tgz#f9e46943449b9092d874944f7a80bcc071004cfb" - integrity sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ== +"@algolia/requester-node-http@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.49.2.tgz#ac71c6502b8ba8760d22afd3f38620934a28a68f" + integrity sha512-UuihBGHafG/ENsrcTGAn5rsOffrCIRuHMOsD85fZGLEY92ate+BMTUqxz60dv5zerh8ZumN4bRm8eW2z9L11jA== dependencies: - "@docsearch/react" "3.6.0" + "@algolia/client-common" "5.49.2" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/parser@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6" + integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww== + dependencies: + "@babel/types" "^7.29.0" + +"@babel/types@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" + integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + +"@docsearch/css@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.8.2.tgz#7973ceb6892c30f154ba254cd05c562257a44977" + integrity sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== + +"@docsearch/js@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.8.2.tgz#bdcfc9837700eb38453b88e211ab5cc5a3813cc6" + integrity sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ== + dependencies: + "@docsearch/react" "3.8.2" preact "^10.0.0" -"@docsearch/react@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.0.tgz#b4f25228ecb7fc473741aefac592121e86dd2958" - integrity sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w== +"@docsearch/react@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.8.2.tgz#7b11d39b61c976c0aa9fbde66e6b73b30f3acd42" + integrity sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== dependencies: - "@algolia/autocomplete-core" "1.9.3" - "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.6.0" - algoliasearch "^4.19.1" + "@algolia/autocomplete-core" "1.17.7" + "@algolia/autocomplete-preset-algolia" "1.17.7" + "@docsearch/css" "3.8.2" + algoliasearch "^5.14.2" "@esbuild/aix-ppc64@0.21.5": version "0.21.5" @@ -293,316 +318,485 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== -"@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@iconify-json/simple-icons@^1.2.21": + version "1.2.73" + resolved "https://registry.yarnpkg.com/@iconify-json/simple-icons/-/simple-icons-1.2.73.tgz#65772d358fc25aa1ea97b98101c61170c3ef27e7" + integrity sha512-nQZTwul4c2zBqH/aLP4zMOiElj93T6HawbrP+sFQKpxmBdS5x1duCK3cAnkj6dntHz84EYkzaQRM83V2pj4qxA== + dependencies: + "@iconify/types" "*" -"@rollup/rollup-android-arm-eabi@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285" - integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA== +"@iconify/types@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== -"@rollup/rollup-android-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d" - integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g== +"@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@rollup/rollup-darwin-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844" - integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g== +"@rollup/rollup-android-arm-eabi@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz#a6742c74c7d9d6d604ef8a48f99326b4ecda3d82" + integrity sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg== -"@rollup/rollup-darwin-x64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf" - integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ== +"@rollup/rollup-android-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz#97247be098de4df0c11971089fd2edf80a5da8cf" + integrity sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q== -"@rollup/rollup-freebsd-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c" - integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew== +"@rollup/rollup-darwin-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz#674852cf14cf11b8056e0b1a2f4e872b523576cf" + integrity sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg== -"@rollup/rollup-freebsd-x64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467" - integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA== +"@rollup/rollup-darwin-x64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz#36dfd7ed0aaf4d9d89d9ef983af72632455b0246" + integrity sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w== -"@rollup/rollup-linux-arm-gnueabihf@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b" - integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw== +"@rollup/rollup-freebsd-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz#2f87c2074b4220260fdb52a9996246edfc633c22" + integrity sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA== -"@rollup/rollup-linux-arm-musleabihf@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327" - integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg== +"@rollup/rollup-freebsd-x64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz#9b5a26522a38a95dc06616d1939d4d9a76937803" + integrity sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg== -"@rollup/rollup-linux-arm64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae" - integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA== +"@rollup/rollup-linux-arm-gnueabihf@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz#86aa4859385a8734235b5e40a48e52d770758c3a" + integrity sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw== -"@rollup/rollup-linux-arm64-musl@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05" - integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g== +"@rollup/rollup-linux-arm-musleabihf@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz#cbe70e56e6ece8dac83eb773b624fc9e5a460976" + integrity sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA== -"@rollup/rollup-linux-loongarch64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee" - integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ== +"@rollup/rollup-linux-arm64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz#d14992a2e653bc3263d284bc6579b7a2890e1c45" + integrity sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA== -"@rollup/rollup-linux-powerpc64le-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba" - integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ== +"@rollup/rollup-linux-arm64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz#2fdd1ddc434ea90aeaa0851d2044789b4d07f6da" + integrity sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA== -"@rollup/rollup-linux-riscv64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e" - integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw== +"@rollup/rollup-linux-loong64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz#8a181e6f89f969f21666a743cd411416c80099e7" + integrity sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg== -"@rollup/rollup-linux-s390x-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e" - integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ== +"@rollup/rollup-linux-loong64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz#904125af2babc395f8061daa27b5af1f4e3f2f78" + integrity sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q== -"@rollup/rollup-linux-x64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0" - integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g== +"@rollup/rollup-linux-ppc64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz#a57970ac6864c9a3447411a658224bdcf948be22" + integrity sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA== -"@rollup/rollup-linux-x64-musl@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80" - integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA== +"@rollup/rollup-linux-ppc64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz#bb84de5b26870567a4267666e08891e80bb56a63" + integrity sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA== -"@rollup/rollup-win32-arm64-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691" - integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw== +"@rollup/rollup-linux-riscv64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz#72d00d2c7fb375ce3564e759db33f17a35bffab9" + integrity sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg== -"@rollup/rollup-win32-ia32-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3" - integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ== +"@rollup/rollup-linux-riscv64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz#4c166ef58e718f9245bd31873384ba15a5c1a883" + integrity sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg== -"@rollup/rollup-win32-x64-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645" - integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw== +"@rollup/rollup-linux-s390x-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz#bb5025cde9a61db478c2ca7215808ad3bce73a09" + integrity sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w== -"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0": +"@rollup/rollup-linux-x64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz#9b66b1f9cd95c6624c788f021c756269ffed1552" + integrity sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg== + +"@rollup/rollup-linux-x64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz#b007ca255dc7166017d57d7d2451963f0bd23fd9" + integrity sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg== + +"@rollup/rollup-openbsd-x64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz#e8b357b2d1aa2c8d76a98f5f0d889eabe93f4ef9" + integrity sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ== + +"@rollup/rollup-openharmony-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz#96c2e3f4aacd3d921981329831ff8dde492204dc" + integrity sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA== + +"@rollup/rollup-win32-arm64-msvc@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz#2d865149d706d938df8b4b8f117e69a77646d581" + integrity sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A== + +"@rollup/rollup-win32-ia32-msvc@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz#abe1593be0fa92325e9971c8da429c5e05b92c36" + integrity sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA== + +"@rollup/rollup-win32-x64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz#c4af3e9518c9a5cd4b1c163dc81d0ad4d82e7eab" + integrity sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA== + +"@rollup/rollup-win32-x64-msvc@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" + integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== + +"@shikijs/core@2.5.0", "@shikijs/core@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-2.5.0.tgz#e14d33961dfa3141393d4a76fc8923d0d1c4b62f" + integrity sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg== + dependencies: + "@shikijs/engine-javascript" "2.5.0" + "@shikijs/engine-oniguruma" "2.5.0" + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + hast-util-to-html "^9.0.4" + +"@shikijs/engine-javascript@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz#e045c6ecfbda6c99137547b0a482e0b87f1053fc" + integrity sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w== + dependencies: + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + oniguruma-to-es "^3.1.0" + +"@shikijs/engine-oniguruma@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz#230de5693cc1da6c9d59c7ad83593c2027274817" + integrity sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw== + dependencies: + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + +"@shikijs/langs@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-2.5.0.tgz#97ab50c495922cc1ca06e192985b28dc73de5d50" + integrity sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w== + dependencies: + "@shikijs/types" "2.5.0" + +"@shikijs/themes@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-2.5.0.tgz#8c6aecf73f5455681c8bec15797cf678162896cb" + integrity sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw== + dependencies: + "@shikijs/types" "2.5.0" + +"@shikijs/transformers@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-2.5.0.tgz#190c84786ff06c417580ab79177338a947168c55" + integrity sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg== + dependencies: + "@shikijs/core" "2.5.0" + "@shikijs/types" "2.5.0" + +"@shikijs/types@2.5.0", "@shikijs/types@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-2.5.0.tgz#e949c7384802703a48b9d6425dd41673c164df69" + integrity sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw== + dependencies: + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + +"@shikijs/vscode-textmate@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" + integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== + +"@types/estree@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + +"@types/hast@^3.0.0", "@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== + +"@types/markdown-it@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== + dependencies: + "@types/linkify-it" "^5" + "@types/mdurl" "^2" + +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/web-bluetooth@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz#525433c784aed9b457aaa0ee3d92aeb71f346b63" + integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== + +"@ungap/structured-clone@^1.0.0": version "1.3.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.3.0.tgz#5b93b51ddb8def1e3a1543107f9b5b0540f716f6" - integrity sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA== + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@shikijs/transformers@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.3.0.tgz#b03c5733ef61e25e4f53666bf11889f8876f34e9" - integrity sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA== +"@vitejs/plugin-vue@^5.2.1": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz#9e8a512eb174bfc2a333ba959bbf9de428d89ad8" + integrity sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA== + +"@vue/compiler-core@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.30.tgz#0f984da9207f24f9ddfb700052a43247a953fd9a" + integrity sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw== dependencies: - shiki "1.3.0" - -"@types/estree@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== - -"@types/linkify-it@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8" - integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw== - -"@types/markdown-it@^14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.0.1.tgz#3d3fdf9dba83b69edececc070d39ec72b84270a7" - integrity sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ== - dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" - -"@types/mdurl@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.5.tgz#3e0d2db570e9fb6ccb2dc8fde0be1d79ac810d39" - integrity sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA== - -"@types/web-bluetooth@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" - integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== - -"@vitejs/plugin-vue@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" - integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== - -"@vue/compiler-core@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.24.tgz#6b4a5ffddcd874a692f2acfa68981201bcd7096b" - integrity sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A== - dependencies: - "@babel/parser" "^7.24.4" - "@vue/shared" "3.4.24" - entities "^4.5.0" + "@babel/parser" "^7.29.0" + "@vue/shared" "3.5.30" + entities "^7.0.1" estree-walker "^2.0.2" - source-map-js "^1.2.0" + source-map-js "^1.2.1" -"@vue/compiler-dom@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.24.tgz#b7335a49f095b6d35e48b6f7be8da513c1fa52b8" - integrity sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA== +"@vue/compiler-dom@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.30.tgz#a38dbdd520479244c8b673123b4bd06a82e733ee" + integrity sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g== dependencies: - "@vue/compiler-core" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-core" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/compiler-sfc@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.24.tgz#2872e353147ce2a145169a33ddd4d68dc95c3a18" - integrity sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA== +"@vue/compiler-sfc@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.30.tgz#5c716d844f240154263e99b25fba6e1802c0c8c6" + integrity sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A== dependencies: - "@babel/parser" "^7.24.4" - "@vue/compiler-core" "3.4.24" - "@vue/compiler-dom" "3.4.24" - "@vue/compiler-ssr" "3.4.24" - "@vue/shared" "3.4.24" + "@babel/parser" "^7.29.0" + "@vue/compiler-core" "3.5.30" + "@vue/compiler-dom" "3.5.30" + "@vue/compiler-ssr" "3.5.30" + "@vue/shared" "3.5.30" estree-walker "^2.0.2" - magic-string "^0.30.10" - postcss "^8.4.38" - source-map-js "^1.2.0" + magic-string "^0.30.21" + postcss "^8.5.8" + source-map-js "^1.2.1" -"@vue/compiler-ssr@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.24.tgz#0d11fe54dabd17cbd6393a16bf7f785da1cfab46" - integrity sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ== +"@vue/compiler-ssr@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.30.tgz#e9b407d7e56be1e307a7621f2e8d2501267ff1d0" + integrity sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA== dependencies: - "@vue/compiler-dom" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-dom" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/devtools-api@^7.0.27": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.1.2.tgz#8808b0f008842b756bf1e9c30788837abb62ab3a" - integrity sha512-AKd49cN3BdRgttmX5Aw8op7sx6jmaPwaILcDjaa05UKc1yIHDYST7P8yGZs6zd2pKFETAQz40gmyG7+b57slsQ== +"@vue/devtools-api@^7.7.0": + version "7.7.9" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.7.9.tgz#999dbea50da6b00cf59a1336f11fdc2b43d9e063" + integrity sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g== dependencies: - "@vue/devtools-kit" "^7.1.2" + "@vue/devtools-kit" "^7.7.9" -"@vue/devtools-kit@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.1.2.tgz#dfb7306edf895dadc556dd5f0c516809c2f94826" - integrity sha512-UTrcUSOhlI9eXqbPMHUWwA6NQiiPT3onzXsVk2JHGR8ZFFSkzsWTTpHyVA1woG8zvgu2HNV/wigW2k87p858zw== +"@vue/devtools-kit@^7.7.9": + version "7.7.9" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz#bc218a815616e8987df7ab3e10fc1fb3b8706c58" + integrity sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA== dependencies: - "@vue/devtools-shared" "^7.1.2" + "@vue/devtools-shared" "^7.7.9" + birpc "^2.3.0" hookable "^5.5.3" mitt "^3.0.1" perfect-debounce "^1.0.0" speakingurl "^14.0.1" + superjson "^2.2.2" -"@vue/devtools-shared@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.1.2.tgz#7b1c1de10bab4756f271c377370a62833b4ee94b" - integrity sha512-r9cUf93VMhKSsxF2/cBbf6Lm1nRBx+r1pRuji5CiAf3JIPYPOjeEqJ13OuwP1fauYh1tyBFcCxt3eJPvHT59gg== +"@vue/devtools-shared@^7.7.9": + version "7.7.9" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz#fa4c096b744927081a7dda5fcf05f34b1ae6ca14" + integrity sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA== dependencies: - rfdc "^1.3.1" + rfdc "^1.4.1" -"@vue/reactivity@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.24.tgz#150584316ca2acc4ed19a24f9f29863c3a17a7b2" - integrity sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g== +"@vue/reactivity@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.30.tgz#1ff13f7d570b16b4f009f007772c7b71be1dd09d" + integrity sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q== dependencies: - "@vue/shared" "3.4.24" + "@vue/shared" "3.5.30" -"@vue/runtime-core@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.24.tgz#066c544dc59a07a96c12874a57b750c239124874" - integrity sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g== +"@vue/runtime-core@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.30.tgz#abe448b25e88f583b1847323a2f19f5e4a21837d" + integrity sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg== dependencies: - "@vue/reactivity" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/reactivity" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/runtime-dom@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.24.tgz#4f8e7acbe1e8ffa7c55af1366e4438729ebe9b20" - integrity sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ== +"@vue/runtime-dom@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.30.tgz#41d1b6424b754300f735c2ecb1a7457b4125dab3" + integrity sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw== dependencies: - "@vue/runtime-core" "3.4.24" - "@vue/shared" "3.4.24" - csstype "^3.1.3" + "@vue/reactivity" "3.5.30" + "@vue/runtime-core" "3.5.30" + "@vue/shared" "3.5.30" + csstype "^3.2.3" -"@vue/server-renderer@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.24.tgz#80dd546f8d6a9f5c4f8b68083fe9cc2d62299332" - integrity sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow== +"@vue/server-renderer@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.30.tgz#116515063d609d3ceca1170f3b09122f24f187b5" + integrity sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ== dependencies: - "@vue/compiler-ssr" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-ssr" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/shared@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.24.tgz#278ac71f492b392b9b17fe8fc7d324db1a8842db" - integrity sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw== +"@vue/shared@3.5.30", "@vue/shared@^3.5.13": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.30.tgz#5d7a0d3ca151647484303fd9f057e2e13ecb80ef" + integrity sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ== -"@vueuse/core@10.9.0", "@vueuse/core@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.9.0.tgz#7d779a95cf0189de176fee63cee4ba44b3c85d64" - integrity sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg== +"@vueuse/core@12.8.2", "@vueuse/core@^12.4.0": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-12.8.2.tgz#007c6dd29a7d1f6933e916e7a2f8ef3c3f968eaa" + integrity sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ== dependencies: - "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.9.0" - "@vueuse/shared" "10.9.0" - vue-demi ">=0.14.7" + "@types/web-bluetooth" "^0.0.21" + "@vueuse/metadata" "12.8.2" + "@vueuse/shared" "12.8.2" + vue "^3.5.13" -"@vueuse/integrations@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.9.0.tgz#2b1a9556215ad3c1f96d39cbfbef102cf6e0ec05" - integrity sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q== +"@vueuse/integrations@^12.4.0": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-12.8.2.tgz#d04f33d86fe985c9a27c98addcfde9f30f2db1df" + integrity sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g== dependencies: - "@vueuse/core" "10.9.0" - "@vueuse/shared" "10.9.0" - vue-demi ">=0.14.7" + "@vueuse/core" "12.8.2" + "@vueuse/shared" "12.8.2" + vue "^3.5.13" -"@vueuse/metadata@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.9.0.tgz#769a1a9db65daac15cf98084cbf7819ed3758620" - integrity sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA== +"@vueuse/metadata@12.8.2": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-12.8.2.tgz#6cb3a4e97cdcf528329eebc1bda73cd7f64318d3" + integrity sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A== -"@vueuse/shared@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.9.0.tgz#13af2a348de15d07b7be2fd0c7fc9853a69d8fe0" - integrity sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw== +"@vueuse/shared@12.8.2": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-12.8.2.tgz#b9e4611d0603629c8e151f982459da394e22f930" + integrity sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w== dependencies: - vue-demi ">=0.14.7" + vue "^3.5.13" -algoliasearch@^4.19.1: - version "4.23.3" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.23.3.tgz#e09011d0a3b0651444916a3e6bbcba064ec44b60" - integrity sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg== +algoliasearch@^5.14.2: + version "5.49.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.49.2.tgz#af1a0db7c8a36f93473399da918fe6d7799660b6" + integrity sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng== dependencies: - "@algolia/cache-browser-local-storage" "4.23.3" - "@algolia/cache-common" "4.23.3" - "@algolia/cache-in-memory" "4.23.3" - "@algolia/client-account" "4.23.3" - "@algolia/client-analytics" "4.23.3" - "@algolia/client-common" "4.23.3" - "@algolia/client-personalization" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/logger-console" "4.23.3" - "@algolia/recommend" "4.23.3" - "@algolia/requester-browser-xhr" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/requester-node-http" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/abtesting" "1.15.2" + "@algolia/client-abtesting" "5.49.2" + "@algolia/client-analytics" "5.49.2" + "@algolia/client-common" "5.49.2" + "@algolia/client-insights" "5.49.2" + "@algolia/client-personalization" "5.49.2" + "@algolia/client-query-suggestions" "5.49.2" + "@algolia/client-search" "5.49.2" + "@algolia/ingestion" "1.49.2" + "@algolia/monitoring" "1.49.2" + "@algolia/recommend" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +birpc@^2.3.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-2.9.0.tgz#b59550897e4cd96a223e2a6c1475b572236ed145" + integrity sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw== -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +copy-anything@^4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-4.0.5.tgz#16cabafd1ea4bb327a540b750f2b4df522825aea" + integrity sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA== + dependencies: + is-what "^5.2.0" + +csstype@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +devlop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +emoji-regex-xs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz#e8af22e5d9dbd7f7f22d280af3d19d2aab5b0724" + integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== + +entities@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.1.tgz#26e8a88889db63417dcb9a1e79a3f1bc92b5976b" + integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== esbuild@^0.21.3: version "0.21.5" @@ -638,49 +832,139 @@ estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -focus-trap@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2" - integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w== +focus-trap@^7.6.4: + version "7.8.0" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.8.0.tgz#b1d9463fa42b93ad7a5223d750493a6c09b672a8" + integrity sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA== dependencies: - tabbable "^6.2.0" + tabbable "^6.4.0" fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== +hast-util-to-html@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" + integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^3.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + hookable@^5.5.3: version "5.5.3" resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== -magic-string@^0.30.10: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +is-what@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-5.5.0.tgz#a3031815757cfe1f03fed990bf6355a2d3f628c4" + integrity sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw== + +magic-string@^0.30.21: + version "0.30.21" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.5" mark.js@8.11.1: version "8.11.1" resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== -minisearch@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-6.3.0.tgz#985a2f1ca3c73c2d65af94f0616bfe57164b0b6b" - integrity sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ== +mdast-util-to-hast@^13.0.0: + version "13.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz#d7ff84ca499a57e2c060ae67548ad950e689a053" + integrity sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +minisearch@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.2.0.tgz#3dc30e41e9464b3836553b6d969b656614f8f359" + integrity sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg== mitt@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -nanoid@^3.3.8: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== +nanoid@^3.3.12: + version "3.3.12" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05" + integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ== + +oniguruma-to-es@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz#480e4bac4d3bc9439ac0d2124f0725e7a0d76d17" + integrity sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ== + dependencies: + emoji-regex-xs "^1.0.0" + regex "^6.0.1" + regex-recursion "^6.0.2" perfect-debounce@^1.0.0: version "1.0.0" @@ -692,81 +976,192 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -postcss@^8.4.38, postcss@^8.4.43: - version "8.5.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" - integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== +postcss@^8.4.43, postcss@^8.5.8: + version "8.5.15" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c" + integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A== dependencies: - nanoid "^3.3.8" + nanoid "^3.3.12" picocolors "^1.1.1" source-map-js "^1.2.1" preact@^10.0.0: - version "10.20.2" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.20.2.tgz#0b343299a8c020562311cc25db93b3d832ec5e71" - integrity sha512-S1d1ernz3KQ+Y2awUxKakpfOg2CEmJmwOP+6igPx6dgr6pgDvenqYviyokWso2rhHvGtTlWWnJDa7RaPbQerTg== + version "10.29.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.29.0.tgz#a6e5858670b659c4d471c6fea232233e03b403e8" + integrity sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg== -rfdc@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + +regex-recursion@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/regex-recursion/-/regex-recursion-6.0.2.tgz#a0b1977a74c87f073377b938dbedfab2ea582b33" + integrity sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== + dependencies: + regex-utilities "^2.3.0" + +regex-utilities@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-utilities/-/regex-utilities-2.3.0.tgz#87163512a15dce2908cf079c8960d5158ff43280" + integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== + +regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/regex/-/regex-6.1.0.tgz#d7ce98f8ee32da7497c13f6601fca2bc4a6a7803" + integrity sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg== + dependencies: + regex-utilities "^2.3.0" + +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rollup@^4.20.0: - version "4.31.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4" - integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw== + version "4.59.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.59.0.tgz#cf74edac17c1486f562d728a4d923a694abdf06f" + integrity sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg== dependencies: - "@types/estree" "1.0.6" + "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.31.0" - "@rollup/rollup-android-arm64" "4.31.0" - "@rollup/rollup-darwin-arm64" "4.31.0" - "@rollup/rollup-darwin-x64" "4.31.0" - "@rollup/rollup-freebsd-arm64" "4.31.0" - "@rollup/rollup-freebsd-x64" "4.31.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.31.0" - "@rollup/rollup-linux-arm-musleabihf" "4.31.0" - "@rollup/rollup-linux-arm64-gnu" "4.31.0" - "@rollup/rollup-linux-arm64-musl" "4.31.0" - "@rollup/rollup-linux-loongarch64-gnu" "4.31.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.31.0" - "@rollup/rollup-linux-riscv64-gnu" "4.31.0" - "@rollup/rollup-linux-s390x-gnu" "4.31.0" - "@rollup/rollup-linux-x64-gnu" "4.31.0" - "@rollup/rollup-linux-x64-musl" "4.31.0" - "@rollup/rollup-win32-arm64-msvc" "4.31.0" - "@rollup/rollup-win32-ia32-msvc" "4.31.0" - "@rollup/rollup-win32-x64-msvc" "4.31.0" + "@rollup/rollup-android-arm-eabi" "4.59.0" + "@rollup/rollup-android-arm64" "4.59.0" + "@rollup/rollup-darwin-arm64" "4.59.0" + "@rollup/rollup-darwin-x64" "4.59.0" + "@rollup/rollup-freebsd-arm64" "4.59.0" + "@rollup/rollup-freebsd-x64" "4.59.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.59.0" + "@rollup/rollup-linux-arm-musleabihf" "4.59.0" + "@rollup/rollup-linux-arm64-gnu" "4.59.0" + "@rollup/rollup-linux-arm64-musl" "4.59.0" + "@rollup/rollup-linux-loong64-gnu" "4.59.0" + "@rollup/rollup-linux-loong64-musl" "4.59.0" + "@rollup/rollup-linux-ppc64-gnu" "4.59.0" + "@rollup/rollup-linux-ppc64-musl" "4.59.0" + "@rollup/rollup-linux-riscv64-gnu" "4.59.0" + "@rollup/rollup-linux-riscv64-musl" "4.59.0" + "@rollup/rollup-linux-s390x-gnu" "4.59.0" + "@rollup/rollup-linux-x64-gnu" "4.59.0" + "@rollup/rollup-linux-x64-musl" "4.59.0" + "@rollup/rollup-openbsd-x64" "4.59.0" + "@rollup/rollup-openharmony-arm64" "4.59.0" + "@rollup/rollup-win32-arm64-msvc" "4.59.0" + "@rollup/rollup-win32-ia32-msvc" "4.59.0" + "@rollup/rollup-win32-x64-gnu" "4.59.0" + "@rollup/rollup-win32-x64-msvc" "4.59.0" fsevents "~2.3.2" -shiki@1.3.0, shiki@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.3.0.tgz#3eda35cb49f6f0a98525e9da48fc072e6c655a3f" - integrity sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww== +shiki@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-2.5.0.tgz#09d01ebf3b0b06580431ce3ddc023320442cf223" + integrity sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ== dependencies: - "@shikijs/core" "1.3.0" - -source-map-js@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + "@shikijs/core" "2.5.0" + "@shikijs/engine-javascript" "2.5.0" + "@shikijs/engine-oniguruma" "2.5.0" + "@shikijs/langs" "2.5.0" + "@shikijs/themes" "2.5.0" + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + speakingurl@^14.0.1: version "14.0.1" resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== -tabbable@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" - integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" -vite@^5.2.9, vite@^5.4.21: +superjson@^2.2.2: + version "2.2.6" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.6.tgz#a223a3a988172a5f9656e2063fe5f733af40d099" + integrity sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA== + dependencies: + copy-anything "^4" + +tabbable@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.4.0.tgz#36eb7a06d80b3924a22095daf45740dea3bf5581" + integrity sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +unist-util-is@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.1.tgz#d0a3f86f2dd0db7acd7d8c2478080b5c67f9c6a9" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz#777df7fb98652ce16b4b7cd999d0a1a40efa3a02" + integrity sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.1.0.tgz#9a2a28b0aa76a15e0da70a08a5863a2f060e2468" + integrity sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +vite@^5.4.14: version "5.4.21" resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027" integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== @@ -777,44 +1172,47 @@ vite@^5.2.9, vite@^5.4.21: optionalDependencies: fsevents "~2.3.3" -vitepress-plugin-tabs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/vitepress-plugin-tabs/-/vitepress-plugin-tabs-0.5.0.tgz#2b193a72ed36b9fcd63e3907d3044fe7b6cf3e4e" - integrity sha512-SIhFWwGsUkTByfc2b279ray/E0Jt8vDTsM1LiHxmCOBAEMmvzIBZSuYYT1DpdDTiS3SuJieBheJkYnwCq/yD9A== +vitepress-plugin-tabs@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/vitepress-plugin-tabs/-/vitepress-plugin-tabs-0.8.0.tgz#4509330ccc0cb04a4aca0f43160108270a21d143" + integrity sha512-86FWHAuS9XCyTMDpMd5MELwp3bQyITDf/+IdZ20+iYbB8TIR8yoCp08PkDHxi4WWSVsCZ3n1uUIC7YCVhMsI3A== -vitepress@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.1.3.tgz#ded22392f5274680aaba8bb81dd4fb1c4741c02e" - integrity sha512-hGrIYN0w9IHWs0NQSnlMjKV/v/HLfD+Ywv5QdvCSkiT32mpNOOwUrZjnqZv/JL/WBPpUc94eghTUvmipxw0xrA== +vitepress@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.6.4.tgz#1b6c68fede541a3f401a66263dce0c985e2d8d92" + integrity sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg== dependencies: - "@docsearch/css" "^3.6.0" - "@docsearch/js" "^3.6.0" - "@shikijs/core" "^1.3.0" - "@shikijs/transformers" "^1.3.0" - "@types/markdown-it" "^14.0.1" - "@vitejs/plugin-vue" "^5.0.4" - "@vue/devtools-api" "^7.0.27" - "@vueuse/core" "^10.9.0" - "@vueuse/integrations" "^10.9.0" - focus-trap "^7.5.4" + "@docsearch/css" "3.8.2" + "@docsearch/js" "3.8.2" + "@iconify-json/simple-icons" "^1.2.21" + "@shikijs/core" "^2.1.0" + "@shikijs/transformers" "^2.1.0" + "@shikijs/types" "^2.1.0" + "@types/markdown-it" "^14.1.2" + "@vitejs/plugin-vue" "^5.2.1" + "@vue/devtools-api" "^7.7.0" + "@vue/shared" "^3.5.13" + "@vueuse/core" "^12.4.0" + "@vueuse/integrations" "^12.4.0" + focus-trap "^7.6.4" mark.js "8.11.1" - minisearch "^6.3.0" - shiki "^1.3.0" - vite "^5.2.9" - vue "^3.4.23" + minisearch "^7.1.1" + shiki "^2.1.0" + vite "^5.4.14" + vue "^3.5.13" -vue-demi@>=0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2" - integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== - -vue@^3.4.23, vue@^3.4.24: - version "3.4.24" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.24.tgz#f269549939a6c092480f018aa0bd886ba64f4c6f" - integrity sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg== +vue@^3.5.13: + version "3.5.30" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.30.tgz#66df25e9795af3e5522b36f24f3d290fde83f8a0" + integrity sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg== dependencies: - "@vue/compiler-dom" "3.4.24" - "@vue/compiler-sfc" "3.4.24" - "@vue/runtime-dom" "3.4.24" - "@vue/server-renderer" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-dom" "3.5.30" + "@vue/compiler-sfc" "3.5.30" + "@vue/runtime-dom" "3.5.30" + "@vue/server-renderer" "3.5.30" + "@vue/shared" "3.5.30" + +zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== diff --git a/builddefs/locate_keymap.mk b/builddefs/locate_keymap.mk new file mode 100644 index 0000000000..3e95424a6c --- /dev/null +++ b/builddefs/locate_keymap.mk @@ -0,0 +1,64 @@ +MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) + +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_1) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_2) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_3) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_4) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_5) + +ifneq ($(QMK_USERSPACE),) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) +endif + +define SEARCH_POTENTIAL_LOCATION + POTENTIAL_DIR := $1 + ifeq ("$$(wildcard $$(KEYMAP_PATH))", "") + POTENTIAL_KEYMAP_JSON := $$(POTENTIAL_DIR)/keymap.json + POTENTIAL_KEYMAP_C := $$(POTENTIAL_DIR)/keymap.c + ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_JSON))","") + KEYMAP_JSON := $$(POTENTIAL_KEYMAP_JSON) + KEYMAP_PATH := $$(POTENTIAL_DIR) + endif + ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_C))","") + KEYMAP_C := $$(POTENTIAL_KEYMAP_C) + KEYMAP_PATH := $$(POTENTIAL_DIR) + endif + endif +endef + +$(foreach KM_DIR,$(POTENTIAL_KEYMAP_PATHS),$(eval $(call SEARCH_POTENTIAL_LOCATION, $(KM_DIR)))) + +LAYOUTS_PATH := layouts +LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/)))) + +ifneq ($(QMK_USERSPACE),) + LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH)) +endif + +define SEARCH_LAYOUTS + $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_POTENTIAL_LOCATION,$$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)))) +endef + +ifneq ($(FORCE_LAYOUT),) + ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS))) + $(info Forcing layout: $(FORCE_LAYOUT)) + LAYOUTS := $(FORCE_LAYOUT) + else + $(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist) + endif +endif + +$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS))) + +ifeq ("$$(wildcard $$(KEYMAP_PATH))", "") + $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap) + # this state should never be reached +endif diff --git a/builddefs/message.mk b/builddefs/message.mk index 7c8f87f990..16cfc07b0c 100644 --- a/builddefs/message.mk +++ b/builddefs/message.mk @@ -77,13 +77,13 @@ define GENERATE_MSG_MAKE_KB endef MSG_MAKE_KB = $(eval $(call GENERATE_MSG_MAKE_KB))$(MSG_MAKE_KB_ACTUAL) define GENERATE_MSG_MAKE_TEST - MSG_MAKE_TEST_ACTUAL := Making test $(BOLD)$(TEST_NAME)$(NO_COLOR) + MSG_MAKE_TEST_ACTUAL := Making test $(BOLD)$(TEST_ID)$(NO_COLOR) ifneq ($$(MAKE_TARGET),) MSG_MAKE_TEST_ACTUAL += with target $(BOLD)$$(MAKE_TARGET)$(NO_COLOR) endif endef MSG_MAKE_TEST = $(eval $(call GENERATE_MSG_MAKE_TEST))$(MSG_MAKE_TEST_ACTUAL) -MSG_TEST = Testing $(BOLD)$(TEST_NAME)$(NO_COLOR) +MSG_TEST = Testing $(BOLD)$(TEST_ID)$(NO_COLOR) define GENERATE_MSG_AVAILABLE_KEYMAPS MSG_AVAILABLE_KEYMAPS_ACTUAL := Available keymaps for $(BOLD)$$(CURRENT_KB)$(NO_COLOR): endef diff --git a/builddefs/support.mk b/builddefs/support.mk index 7ef7b9b041..de1d3fd5c4 100644 --- a/builddefs/support.mk +++ b/builddefs/support.mk @@ -4,7 +4,7 @@ # $(2) = option to use if $(1) is not supported # $(3) = additional arguments to pass to the compiler during the test, but aren't contained in the output cc-option = $(shell \ - if { echo 'int main(){return 0;}' | $(CC) $(1) $(3) -o /dev/null -x c /dev/null >/dev/null 2>&1; }; \ + if { echo 'int main(){return 0;}' | $(CC) $(1) $(3) -Wl,--unresolved-symbols=ignore-all -o /dev/null -x c /dev/null >/dev/null 2>&1; }; \ then echo "$(1)"; else echo "$(2)"; fi) # Helper to pass comma character to make functions (use with `$(,)` to pass in `$(call ...)` arguments) diff --git a/data/constants/keycodes/keycodes_0.0.1_audio.hjson b/data/constants/keycodes/keycodes_0.0.1_audio.hjson index e1d3ac3a0f..01a7ebaf33 100644 --- a/data/constants/keycodes/keycodes_0.0.1_audio.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_audio.hjson @@ -3,6 +3,7 @@ "0x7480": { "group": "audio", "key": "QK_AUDIO_ON", + "label": "Audio On", "aliases": [ "AU_ON" ] @@ -10,6 +11,7 @@ "0x7481": { "group": "audio", "key": "QK_AUDIO_OFF", + "label": "Audio Off", "aliases": [ "AU_OFF" ] @@ -17,6 +19,7 @@ "0x7482": { "group": "audio", "key": "QK_AUDIO_TOGGLE", + "label": "Toggle Audio", "aliases": [ "AU_TOGG" ] @@ -25,6 +28,7 @@ "0x748A": { "group": "audio", "key": "QK_AUDIO_CLICKY_TOGGLE", + "label": "Toggle Audio Clicky", "aliases": [ "CK_TOGG" ] @@ -32,6 +36,7 @@ "0x748B": { "group": "audio", "key": "QK_AUDIO_CLICKY_ON", + "label": "Audio Clicky On", "aliases": [ "CK_ON" ] @@ -39,6 +44,7 @@ "0x748C": { "group": "audio", "key": "QK_AUDIO_CLICKY_OFF", + "label": "Audio Clicky Off", "aliases": [ "CK_OFF" ] @@ -46,6 +52,7 @@ "0x748D": { "group": "audio", "key": "QK_AUDIO_CLICKY_UP", + "label": "Audio Clicky Up", "aliases": [ "CK_UP" ] @@ -53,6 +60,7 @@ "0x748E": { "group": "audio", "key": "QK_AUDIO_CLICKY_DOWN", + "label": "Audio Clicky Down", "aliases": [ "CK_DOWN" ] @@ -60,6 +68,7 @@ "0x748F": { "group": "audio", "key": "QK_AUDIO_CLICKY_RESET", + "label": "Audio Clicky Reset", "aliases": [ "CK_RST" ] @@ -68,6 +77,7 @@ "0x7490": { "group": "audio", "key": "QK_MUSIC_ON", + "label": "Music On", "aliases": [ "MU_ON" ] @@ -75,6 +85,7 @@ "0x7491": { "group": "audio", "key": "QK_MUSIC_OFF", + "label": "Music Off", "aliases": [ "MU_OFF" ] @@ -82,6 +93,7 @@ "0x7492": { "group": "audio", "key": "QK_MUSIC_TOGGLE", + "label": "Toggle Music", "aliases": [ "MU_TOGG" ] @@ -89,6 +101,7 @@ "0x7493": { "group": "audio", "key": "QK_MUSIC_MODE_NEXT", + "label": "Music Next", "aliases": [ "MU_NEXT" ] @@ -97,6 +110,7 @@ "0x7494": { "group": "audio", "key": "QK_AUDIO_VOICE_NEXT", + "label": "Audio Voice Next", "aliases": [ "AU_NEXT" ] @@ -104,6 +118,7 @@ "0x7495": { "group": "audio", "key": "QK_AUDIO_VOICE_PREVIOUS", + "label": "Audio Voice Previous", "aliases": [ "AU_PREV" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson index 66aba7b1fc..7dcf4a3783 100644 --- a/data/constants/keycodes/keycodes_0.0.1_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson @@ -3,7 +3,7 @@ "0x0000": { "group": "internal", "key": "KC_NO", - "label": "", + "label": "N/A", "aliases": [ "XXXXXXX" ] @@ -11,7 +11,7 @@ "0x0001": { "group": "internal", "key": "KC_TRANSPARENT", - "label": "", + "label": "Transparent", "aliases": [ "_______", "KC_TRNS" @@ -634,7 +634,7 @@ "0x0065": { "group": "basic", "key": "KC_APPLICATION", - "label": "Application", + "label": "App", "aliases": [ "KC_APP" ] @@ -642,7 +642,7 @@ "0x0066": { "group": "basic", "key": "KC_KB_POWER", - "label": "Application" + "label": "Power" }, "0x0067": { "group": "basic", @@ -1068,7 +1068,7 @@ "0x00A5": { "group": "system", "key": "KC_SYSTEM_POWER", - "label": "System Power Down", + "label": "Power", "aliases": [ "KC_PWR" ] @@ -1076,7 +1076,7 @@ "0x00A6": { "group": "system", "key": "KC_SYSTEM_SLEEP", - "label": "System Sleep", + "label": "Sleep", "aliases": [ "KC_SLEP" ] @@ -1084,7 +1084,7 @@ "0x00A7": { "group": "system", "key": "KC_SYSTEM_WAKE", - "label": "System Wake", + "label": "Wake", "aliases": [ "KC_WAKE" ] @@ -1140,7 +1140,7 @@ "0x00AE": { "group": "media", "key": "KC_MEDIA_PLAY_PAUSE", - "label": "Play/Pause Track", + "label": "Play/Pause", "aliases": [ "KC_MPLY" ] @@ -1148,7 +1148,7 @@ "0x00AF": { "group": "media", "key": "KC_MEDIA_SELECT", - "label": "Launch Player", + "label": "Media", "aliases": [ "KC_MSEL" ] @@ -1164,12 +1164,12 @@ "0x00B1": { "group": "media", "key": "KC_MAIL", - "label": "Launch Mail" + "label": "Mail", }, "0x00B2": { "group": "media", "key": "KC_CALCULATOR", - "label": "Launch Calculator", + "label": "Calculator", "aliases": [ "KC_CALC" ] @@ -1177,7 +1177,7 @@ "0x00B3": { "group": "media", "key": "KC_MY_COMPUTER", - "label": "Launch My Computer", + "label": "My Computer", "aliases": [ "KC_MYCM" ] @@ -1185,7 +1185,7 @@ "0x00B4": { "group": "media", "key": "KC_WWW_SEARCH", - "label": "Browser Search", + "label": "Search", "aliases": [ "KC_WSCH" ] @@ -1193,7 +1193,7 @@ "0x00B5": { "group": "media", "key": "KC_WWW_HOME", - "label": "Browser Home", + "label": "Home", "aliases": [ "KC_WHOM" ] @@ -1201,7 +1201,7 @@ "0x00B6": { "group": "media", "key": "KC_WWW_BACK", - "label": "Browser Back", + "label": "Back", "aliases": [ "KC_WBAK" ] @@ -1209,7 +1209,7 @@ "0x00B7": { "group": "media", "key": "KC_WWW_FORWARD", - "label": "Browser Forward", + "label": "Forward", "aliases": [ "KC_WFWD" ] @@ -1217,7 +1217,7 @@ "0x00B8": { "group": "media", "key": "KC_WWW_STOP", - "label": "Browser Stop", + "label": "Stop", "aliases": [ "KC_WSTP" ] @@ -1225,7 +1225,7 @@ "0x00B9": { "group": "media", "key": "KC_WWW_REFRESH", - "label": "Browser Refresh", + "label": "Refresh", "aliases": [ "KC_WREF" ] @@ -1233,7 +1233,7 @@ "0x00BA": { "group": "media", "key": "KC_WWW_FAVORITES", - "label": "Browser Favorites", + "label": "Favorites", "aliases": [ "KC_WFAV" ] @@ -1241,7 +1241,7 @@ "0x00BB": { "group": "media", "key": "KC_MEDIA_FAST_FORWARD", - "label": "Next Track", + "label": "Fast Forward", "aliases": [ "KC_MFFD" ] @@ -1249,7 +1249,7 @@ "0x00BC": { "group": "media", "key": "KC_MEDIA_REWIND", - "label": "Previous Track", + "label": "Rewind", "aliases": [ "KC_MRWD" ] @@ -1273,7 +1273,7 @@ "0x00BF": { "group": "media", "key": "KC_CONTROL_PANEL", - "label": "Open Control Panel", + "label": "Control Panel", "aliases": [ "KC_CPNL" ] @@ -1281,7 +1281,7 @@ "0x00C0": { "group": "media", "key": "KC_ASSISTANT", - "label": "Launch Assistant", + "label": "Assistant", "aliases": [ "KC_ASST" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson index b851d72eef..3e5f99c93d 100644 --- a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson @@ -3,6 +3,7 @@ "0x7400": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_0", + "label": "Button 0", "aliases": [ "JS_0" ] @@ -10,6 +11,7 @@ "0x7401": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_1", + "label": "Button 1", "aliases": [ "JS_1" ] @@ -17,6 +19,7 @@ "0x7402": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_2", + "label": "Button 2", "aliases": [ "JS_2" ] @@ -24,6 +27,7 @@ "0x7403": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_3", + "label": "Button 3", "aliases": [ "JS_3" ] @@ -31,6 +35,7 @@ "0x7404": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_4", + "label": "Button 4", "aliases": [ "JS_4" ] @@ -38,6 +43,7 @@ "0x7405": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_5", + "label": "Button 5", "aliases": [ "JS_5" ] @@ -45,6 +51,7 @@ "0x7406": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_6", + "label": "Button 6", "aliases": [ "JS_6" ] @@ -52,6 +59,7 @@ "0x7407": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_7", + "label": "Button 7", "aliases": [ "JS_7" ] @@ -59,6 +67,7 @@ "0x7408": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_8", + "label": "Button 8", "aliases": [ "JS_8" ] @@ -66,6 +75,7 @@ "0x7409": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_9", + "label": "Button 9", "aliases": [ "JS_9" ] @@ -73,6 +83,7 @@ "0x740A": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_10", + "label": "Button 10", "aliases": [ "JS_10" ] @@ -80,6 +91,7 @@ "0x740B": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_11", + "label": "Button 11", "aliases": [ "JS_11" ] @@ -87,6 +99,7 @@ "0x740C": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_12", + "label": "Button 12", "aliases": [ "JS_12" ] @@ -94,6 +107,7 @@ "0x740D": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_13", + "label": "Button 13", "aliases": [ "JS_13" ] @@ -101,6 +115,7 @@ "0x740E": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_14", + "label": "Button 14", "aliases": [ "JS_14" ] @@ -108,6 +123,7 @@ "0x740F": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_15", + "label": "Button 15", "aliases": [ "JS_15" ] @@ -115,6 +131,7 @@ "0x7410": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_16", + "label": "Button 16", "aliases": [ "JS_16" ] @@ -122,6 +139,7 @@ "0x7411": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_17", + "label": "Button 17", "aliases": [ "JS_17" ] @@ -129,6 +147,7 @@ "0x7412": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_18", + "label": "Button 18", "aliases": [ "JS_18" ] @@ -136,6 +155,7 @@ "0x7413": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_19", + "label": "Button 19", "aliases": [ "JS_19" ] @@ -143,6 +163,7 @@ "0x7414": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_20", + "label": "Button 20", "aliases": [ "JS_20" ] @@ -150,6 +171,7 @@ "0x7415": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_21", + "label": "Button 21", "aliases": [ "JS_21" ] @@ -157,6 +179,7 @@ "0x7416": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_22", + "label": "Button 22", "aliases": [ "JS_22" ] @@ -164,6 +187,7 @@ "0x7417": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_23", + "label": "Button 23", "aliases": [ "JS_23" ] @@ -171,6 +195,7 @@ "0x7418": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_24", + "label": "Button 24", "aliases": [ "JS_24" ] @@ -178,6 +203,7 @@ "0x7419": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_25", + "label": "Button 25", "aliases": [ "JS_25" ] @@ -185,6 +211,7 @@ "0x741A": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_26", + "label": "Button 26", "aliases": [ "JS_26" ] @@ -192,6 +219,7 @@ "0x741B": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_27", + "label": "Button 27", "aliases": [ "JS_27" ] @@ -199,6 +227,7 @@ "0x741C": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_28", + "label": "Button 28", "aliases": [ "JS_28" ] @@ -206,6 +235,7 @@ "0x741D": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_29", + "label": "Button 29", "aliases": [ "JS_29" ] @@ -213,6 +243,7 @@ "0x741E": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_30", + "label": "Button 30", "aliases": [ "JS_30" ] @@ -220,6 +251,7 @@ "0x741F": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_31", + "label": "Button 31", "aliases": [ "JS_31" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_lighting.hjson b/data/constants/keycodes/keycodes_0.0.1_lighting.hjson index 77275cec29..5e377b02f5 100644 --- a/data/constants/keycodes/keycodes_0.0.1_lighting.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_lighting.hjson @@ -3,6 +3,7 @@ "0x7800": { "group": "backlight", "key": "QK_BACKLIGHT_ON", + "label": "Backlight On", "aliases": [ "BL_ON" ] @@ -10,6 +11,7 @@ "0x7801": { "group": "backlight", "key": "QK_BACKLIGHT_OFF", + "label": "Backlight Off", "aliases": [ "BL_OFF" ] @@ -17,6 +19,7 @@ "0x7802": { "group": "backlight", "key": "QK_BACKLIGHT_TOGGLE", + "label": "Toggle Backlight", "aliases": [ "BL_TOGG" ] @@ -24,6 +27,7 @@ "0x7803": { "group": "backlight", "key": "QK_BACKLIGHT_DOWN", + "label": "Backlight Down", "aliases": [ "BL_DOWN" ] @@ -31,6 +35,7 @@ "0x7804": { "group": "backlight", "key": "QK_BACKLIGHT_UP", + "label": "Backlight Up", "aliases": [ "BL_UP" ] @@ -38,6 +43,7 @@ "0x7805": { "group": "backlight", "key": "QK_BACKLIGHT_STEP", + "label": "Backlight Step", "aliases": [ "BL_STEP" ] @@ -45,6 +51,7 @@ "0x7806": { "group": "backlight", "key": "QK_BACKLIGHT_TOGGLE_BREATHING", + "label": "Toggle Breathing", "aliases": [ "BL_BRTG" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_macro.hjson b/data/constants/keycodes/keycodes_0.0.1_macro.hjson index 409853fed9..2d7d83d2e6 100644 --- a/data/constants/keycodes/keycodes_0.0.1_macro.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_macro.hjson @@ -1,9 +1,9 @@ { "keycodes": { - "0x7700": { "group": "macro", "key": "QK_MACRO_0", + "label": "Macro 0", "aliases": [ "MC_0" ] @@ -11,6 +11,7 @@ "0x7701": { "group": "macro", "key": "QK_MACRO_1", + "label": "Macro 1", "aliases": [ "MC_1" ] @@ -18,6 +19,7 @@ "0x7702": { "group": "macro", "key": "QK_MACRO_2", + "label": "Macro 2", "aliases": [ "MC_2" ] @@ -25,6 +27,7 @@ "0x7703": { "group": "macro", "key": "QK_MACRO_3", + "label": "Macro 3", "aliases": [ "MC_3" ] @@ -32,6 +35,7 @@ "0x7704": { "group": "macro", "key": "QK_MACRO_4", + "label": "Macro 4", "aliases": [ "MC_4" ] @@ -39,6 +43,7 @@ "0x7705": { "group": "macro", "key": "QK_MACRO_5", + "label": "Macro 5", "aliases": [ "MC_5" ] @@ -46,6 +51,7 @@ "0x7706": { "group": "macro", "key": "QK_MACRO_6", + "label": "Macro 6", "aliases": [ "MC_6" ] @@ -53,6 +59,7 @@ "0x7707": { "group": "macro", "key": "QK_MACRO_7", + "label": "Macro 7", "aliases": [ "MC_7" ] @@ -60,6 +67,7 @@ "0x7708": { "group": "macro", "key": "QK_MACRO_8", + "label": "Macro 8", "aliases": [ "MC_8" ] @@ -67,6 +75,7 @@ "0x7709": { "group": "macro", "key": "QK_MACRO_9", + "label": "Macro 9", "aliases": [ "MC_9" ] @@ -74,6 +83,7 @@ "0x770A": { "group": "macro", "key": "QK_MACRO_10", + "label": "Macro 10", "aliases": [ "MC_10" ] @@ -81,6 +91,7 @@ "0x770B": { "group": "macro", "key": "QK_MACRO_11", + "label": "Macro 11", "aliases": [ "MC_11" ] @@ -88,6 +99,7 @@ "0x770C": { "group": "macro", "key": "QK_MACRO_12", + "label": "Macro 12", "aliases": [ "MC_12" ] @@ -95,6 +107,7 @@ "0x770D": { "group": "macro", "key": "QK_MACRO_13", + "label": "Macro 13", "aliases": [ "MC_13" ] @@ -102,6 +115,7 @@ "0x770E": { "group": "macro", "key": "QK_MACRO_14", + "label": "Macro 14", "aliases": [ "MC_14" ] @@ -109,6 +123,7 @@ "0x770F": { "group": "macro", "key": "QK_MACRO_15", + "label": "Macro 15", "aliases": [ "MC_15" ] @@ -116,6 +131,7 @@ "0x7710": { "group": "macro", "key": "QK_MACRO_16", + "label": "Macro 16", "aliases": [ "MC_16" ] @@ -123,6 +139,7 @@ "0x7711": { "group": "macro", "key": "QK_MACRO_17", + "label": "Macro 17", "aliases": [ "MC_17" ] @@ -130,6 +147,7 @@ "0x7712": { "group": "macro", "key": "QK_MACRO_18", + "label": "Macro 18", "aliases": [ "MC_18" ] @@ -137,6 +155,7 @@ "0x7713": { "group": "macro", "key": "QK_MACRO_19", + "label": "Macro 19", "aliases": [ "MC_19" ] @@ -144,6 +163,7 @@ "0x7714": { "group": "macro", "key": "QK_MACRO_20", + "label": "Macro 20", "aliases": [ "MC_20" ] @@ -151,6 +171,7 @@ "0x7715": { "group": "macro", "key": "QK_MACRO_21", + "label": "Macro 21", "aliases": [ "MC_21" ] @@ -158,6 +179,7 @@ "0x7716": { "group": "macro", "key": "QK_MACRO_22", + "label": "Macro 22", "aliases": [ "MC_22" ] @@ -165,6 +187,7 @@ "0x7717": { "group": "macro", "key": "QK_MACRO_23", + "label": "Macro 23", "aliases": [ "MC_23" ] @@ -172,6 +195,7 @@ "0x7718": { "group": "macro", "key": "QK_MACRO_24", + "label": "Macro 24", "aliases": [ "MC_24" ] @@ -179,6 +203,7 @@ "0x7719": { "group": "macro", "key": "QK_MACRO_25", + "label": "Macro 25", "aliases": [ "MC_25" ] @@ -186,6 +211,7 @@ "0x771A": { "group": "macro", "key": "QK_MACRO_26", + "label": "Macro 26", "aliases": [ "MC_26" ] @@ -193,6 +219,7 @@ "0x771B": { "group": "macro", "key": "QK_MACRO_27", + "label": "Macro 27", "aliases": [ "MC_27" ] @@ -200,6 +227,7 @@ "0x771C": { "group": "macro", "key": "QK_MACRO_28", + "label": "Macro 28", "aliases": [ "MC_28" ] @@ -207,6 +235,7 @@ "0x771D": { "group": "macro", "key": "QK_MACRO_29", + "label": "Macro 29", "aliases": [ "MC_29" ] @@ -214,6 +243,7 @@ "0x771E": { "group": "macro", "key": "QK_MACRO_30", + "label": "Macro 30", "aliases": [ "MC_30" ] @@ -221,6 +251,7 @@ "0x771F": { "group": "macro", "key": "QK_MACRO_31", + "label": "Macro 31", "aliases": [ "MC_31" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson index 7d031728a6..14d734bdd9 100644 --- a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson @@ -3,6 +3,7 @@ "0x7440": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_1", + "label": "Button 1", "aliases": [ "PB_1" ] @@ -10,6 +11,7 @@ "0x7441": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_2", + "label": "Button 2", "aliases": [ "PB_2" ] @@ -17,6 +19,7 @@ "0x7442": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_3", + "label": "Button 3", "aliases": [ "PB_3" ] @@ -24,6 +27,7 @@ "0x7443": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_4", + "label": "Button 4", "aliases": [ "PB_4" ] @@ -31,6 +35,7 @@ "0x7444": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_5", + "label": "Button 5", "aliases": [ "PB_5" ] @@ -38,6 +43,7 @@ "0x7445": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_6", + "label": "Button 6", "aliases": [ "PB_6" ] @@ -45,6 +51,7 @@ "0x7446": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_7", + "label": "Button 7", "aliases": [ "PB_7" ] @@ -52,6 +59,7 @@ "0x7447": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_8", + "label": "Button 8", "aliases": [ "PB_8" ] @@ -59,6 +67,7 @@ "0x7448": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_9", + "label": "Button 9", "aliases": [ "PB_9" ] @@ -66,6 +75,7 @@ "0x7449": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_10", + "label": "Button 10", "aliases": [ "PB_10" ] @@ -73,6 +83,7 @@ "0x744A": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_11", + "label": "Button 11", "aliases": [ "PB_11" ] @@ -80,6 +91,7 @@ "0x744B": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_12", + "label": "Button 12", "aliases": [ "PB_12" ] @@ -87,6 +99,7 @@ "0x744C": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_13", + "label": "Button 13", "aliases": [ "PB_13" ] @@ -94,6 +107,7 @@ "0x744D": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_14", + "label": "Button 14", "aliases": [ "PB_14" ] @@ -101,6 +115,7 @@ "0x744E": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_15", + "label": "Button 15", "aliases": [ "PB_15" ] @@ -108,6 +123,7 @@ "0x744F": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_16", + "label": "Button 16", "aliases": [ "PB_16" ] @@ -115,6 +131,7 @@ "0x7450": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_17", + "label": "Button 17", "aliases": [ "PB_17" ] @@ -122,6 +139,7 @@ "0x7451": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_18", + "label": "Button 18", "aliases": [ "PB_18" ] @@ -129,6 +147,7 @@ "0x7452": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_19", + "label": "Button 19", "aliases": [ "PB_19" ] @@ -136,6 +155,7 @@ "0x7453": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_20", + "label": "Button 20", "aliases": [ "PB_20" ] @@ -143,6 +163,7 @@ "0x7454": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_21", + "label": "Button 21", "aliases": [ "PB_21" ] @@ -150,6 +171,7 @@ "0x7455": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_22", + "label": "Button 22", "aliases": [ "PB_22" ] @@ -157,6 +179,7 @@ "0x7456": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_23", + "label": "Button 23", "aliases": [ "PB_23" ] @@ -164,6 +187,7 @@ "0x7457": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_24", + "label": "Button 24", "aliases": [ "PB_24" ] @@ -171,6 +195,7 @@ "0x7458": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_25", + "label": "Button 25", "aliases": [ "PB_25" ] @@ -178,6 +203,7 @@ "0x7459": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_26", + "label": "Button 26", "aliases": [ "PB_26" ] @@ -185,6 +211,7 @@ "0x745A": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_27", + "label": "Button 27", "aliases": [ "PB_27" ] @@ -192,6 +219,7 @@ "0x745B": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_28", + "label": "Button 28", "aliases": [ "PB_28" ] @@ -199,6 +227,7 @@ "0x745C": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_29", + "label": "Button 29", "aliases": [ "PB_29" ] @@ -206,6 +235,7 @@ "0x745D": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_30", + "label": "Button 30", "aliases": [ "PB_30" ] @@ -213,6 +243,7 @@ "0x745E": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_31", + "label": "Button 31", "aliases": [ "PB_31" ] @@ -220,6 +251,7 @@ "0x745F": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_32", + "label": "Button 32", "aliases": [ "PB_32" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_quantum.hjson b/data/constants/keycodes/keycodes_0.0.1_quantum.hjson index a623bd678d..f6c646d367 100644 --- a/data/constants/keycodes/keycodes_0.0.1_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_quantum.hjson @@ -3,6 +3,7 @@ "0x7C00": { "group": "quantum", "key": "QK_BOOTLOADER", + "label": "Bootloader", "aliases": [ "QK_BOOT" ] @@ -10,6 +11,7 @@ "0x7C01": { "group": "quantum", "key": "QK_REBOOT", + "label": "Reboot", "aliases": [ "QK_RBT" ] @@ -17,6 +19,7 @@ "0x7C02": { "group": "quantum", "key": "QK_DEBUG_TOGGLE", + "label": "Toggle Debug", "aliases": [ "DB_TOGG" ] @@ -24,18 +27,21 @@ "0x7C03": { "group": "quantum", "key": "QK_CLEAR_EEPROM", + "label": "Clear EEPROM", "aliases": [ "EE_CLR" ] }, "0x7C04": { "group": "quantum", - "key": "QK_MAKE" + "key": "QK_MAKE", + "label": "Make" }, "0x7C10": { "group": "quantum", "key": "QK_AUTO_SHIFT_DOWN", + "label": "Auto Shift Down", "aliases": [ "AS_DOWN" ] @@ -43,6 +49,7 @@ "0x7C11": { "group": "quantum", "key": "QK_AUTO_SHIFT_UP", + "label": "Auto Shift Up", "aliases": [ "AS_UP" ] @@ -50,6 +57,7 @@ "0x7C12": { "group": "quantum", "key": "QK_AUTO_SHIFT_REPORT", + "label": "Auto Shift Report", "aliases": [ "AS_RPT" ] @@ -57,6 +65,7 @@ "0x7C13": { "group": "quantum", "key": "QK_AUTO_SHIFT_ON", + "label": "Auto Shift On", "aliases": [ "AS_ON" ] @@ -64,6 +73,7 @@ "0x7C14": { "group": "quantum", "key": "QK_AUTO_SHIFT_OFF", + "label": "Auto Shift Off", "aliases": [ "AS_OFF" ] @@ -71,6 +81,7 @@ "0x7C15": { "group": "quantum", "key": "QK_AUTO_SHIFT_TOGGLE", + "label": "Toggle Auto Shift", "aliases": [ "AS_TOGG" ] @@ -79,6 +90,7 @@ "0x7C16": { "group": "quantum", "key": "QK_GRAVE_ESCAPE", + "label": "Grave Esc", "aliases": [ "QK_GESC" ] @@ -95,6 +107,7 @@ "0x7C18": { "group": "quantum", "key": "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN", + "label": "LCtl/(", "aliases": [ "SC_LCPO" ] @@ -102,6 +115,7 @@ "0x7C19": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE", + "label": "RCtl/)", "aliases": [ "SC_RCPC" ] @@ -109,6 +123,7 @@ "0x7C1A": { "group": "quantum", "key": "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN", + "label": "LSft/)", "aliases": [ "SC_LSPO" ] @@ -116,6 +131,7 @@ "0x7C1B": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE", + "label": "RSft/)", "aliases": [ "SC_RSPC" ] @@ -123,6 +139,7 @@ "0x7C1C": { "group": "quantum", "key": "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN", + "label": "LAlt/(", "aliases": [ "SC_LAPO" ] @@ -130,6 +147,7 @@ "0x7C1D": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE", + "label": "RAlt/)", "aliases": [ "SC_RAPC" ] @@ -137,6 +155,7 @@ "0x7C1E": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_SHIFT_ENTER", + "label": "RSft/Ent", "aliases": [ "SC_SENT" ] @@ -167,6 +186,7 @@ "0x7C30": { "group": "quantum", "key": "QK_UNICODE_MODE_NEXT", + "label": "Unicode Mode Next", "aliases": [ "UC_NEXT" ] @@ -174,6 +194,7 @@ "0x7C31": { "group": "quantum", "key": "QK_UNICODE_MODE_PREVIOUS", + "label": "Unicode Mode Previous", "aliases": [ "UC_PREV" ] @@ -181,6 +202,7 @@ "0x7C32": { "group": "quantum", "key": "QK_UNICODE_MODE_MACOS", + "label": "Unicode Mode macOS", "aliases": [ "UC_MAC" ] @@ -188,6 +210,7 @@ "0x7C33": { "group": "quantum", "key": "QK_UNICODE_MODE_LINUX", + "label": "Unicode Mode Linux", "aliases": [ "UC_LINX" ] @@ -195,6 +218,7 @@ "0x7C34": { "group": "quantum", "key": "QK_UNICODE_MODE_WINDOWS", + "label": "Unicode Mode Windows", "aliases": [ "UC_WIN" ] @@ -202,6 +226,7 @@ "0x7C35": { "group": "quantum", "key": "QK_UNICODE_MODE_BSD", + "label": "Unicode Mode BSD", "aliases": [ "UC_BSD" ] @@ -209,6 +234,7 @@ "0x7C36": { "group": "quantum", "key": "QK_UNICODE_MODE_WINCOMPOSE", + "label": "Unicode Mode WinCompose", "aliases": [ "UC_WINC" ] @@ -216,6 +242,7 @@ "0x7C37": { "group": "quantum", "key": "QK_UNICODE_MODE_EMACS", + "label": "Unicode Mode emacs", "aliases": [ "UC_EMAC" ] @@ -224,6 +251,7 @@ "0x7C40": { "group": "quantum", "key": "QK_HAPTIC_ON", + "label": "Haptic On", "aliases": [ "HF_ON" ] @@ -231,6 +259,7 @@ "0x7C41": { "group": "quantum", "key": "QK_HAPTIC_OFF", + "label": "Haptic Off", "aliases": [ "HF_OFF" ] @@ -238,6 +267,7 @@ "0x7C42": { "group": "quantum", "key": "QK_HAPTIC_TOGGLE", + "label": "Toggle Haptic", "aliases": [ "HF_TOGG" ] @@ -245,6 +275,7 @@ "0x7C43": { "group": "quantum", "key": "QK_HAPTIC_RESET", + "label": "Haptic Reset", "aliases": [ "HF_RST" ] @@ -252,6 +283,7 @@ "0x7C44": { "group": "quantum", "key": "QK_HAPTIC_FEEDBACK_TOGGLE", + "label": "Toggle Haptic Feedback", "aliases": [ "HF_FDBK" ] @@ -259,6 +291,7 @@ "0x7C45": { "group": "quantum", "key": "QK_HAPTIC_BUZZ_TOGGLE", + "label": "Toggle Haptic Buzz", "aliases": [ "HF_BUZZ" ] @@ -266,6 +299,7 @@ "0x7C46": { "group": "quantum", "key": "QK_HAPTIC_MODE_NEXT", + "label": "Haptic Mode Next", "aliases": [ "HF_NEXT" ] @@ -273,6 +307,7 @@ "0x7C47": { "group": "quantum", "key": "QK_HAPTIC_MODE_PREVIOUS", + "label": "Haptic Mode Previous", "aliases": [ "HF_PREV" ] @@ -280,6 +315,7 @@ "0x7C48": { "group": "quantum", "key": "QK_HAPTIC_CONTINUOUS_TOGGLE", + "label": "Toggle Haptic Continuous", "aliases": [ "HF_CONT" ] @@ -287,6 +323,7 @@ "0x7C49": { "group": "quantum", "key": "QK_HAPTIC_CONTINUOUS_UP", + "label": "Haptic Continuous Up", "aliases": [ "HF_CONU" ] @@ -294,6 +331,7 @@ "0x7C4A": { "group": "quantum", "key": "QK_HAPTIC_CONTINUOUS_DOWN", + "label": "Haptic Continuous Down", "aliases": [ "HF_COND" ] @@ -301,6 +339,7 @@ "0x7C4B": { "group": "quantum", "key": "QK_HAPTIC_DWELL_UP", + "label": "Haptic Dwell Up", "aliases": [ "HF_DWLU" ] @@ -308,6 +347,7 @@ "0x7C4C": { "group": "quantum", "key": "QK_HAPTIC_DWELL_DOWN", + "label": "Haptic Dwell Down", "aliases": [ "HF_DWLD" ] @@ -316,6 +356,7 @@ "0x7C50": { "group": "quantum", "key": "QK_COMBO_ON", + "label": "Combo On", "aliases": [ "CM_ON" ] @@ -323,6 +364,7 @@ "0x7C51": { "group": "quantum", "key": "QK_COMBO_OFF", + "label": "Combo Off", "aliases": [ "CM_OFF" ] @@ -330,6 +372,7 @@ "0x7C52": { "group": "quantum", "key": "QK_COMBO_TOGGLE", + "label": "Toggle Combo", "aliases": [ "CM_TOGG" ] @@ -338,6 +381,7 @@ "0x7C53": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_RECORD_START_1", + "label": "Dynamic Macro Record 1", "aliases": [ "DM_REC1" ] @@ -345,6 +389,7 @@ "0x7C54": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_RECORD_START_2", + "label": "Dynamic Macro Record 2", "aliases": [ "DM_REC2" ] @@ -352,6 +397,7 @@ "0x7C55": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_RECORD_STOP", + "label": "Dynamic Macro Stop Recording", "aliases": [ "DM_RSTP" ] @@ -359,6 +405,7 @@ "0x7C56": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_PLAY_1", + "label": "Dynamic Macro Play 1", "aliases": [ "DM_PLY1" ] @@ -366,6 +413,7 @@ "0x7C57": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_PLAY_2", + "label": "Dynamic Macro Play 2", "aliases": [ "DM_PLY2" ] @@ -374,6 +422,7 @@ "0x7C58": { "group": "quantum", "key": "QK_LEADER", + "label": "Leader", "aliases": [ "QK_LEAD" ] @@ -381,12 +430,14 @@ "0x7C59": { "group": "quantum", - "key": "QK_LOCK" + "key": "QK_LOCK", + "label": "Lock" }, "0x7C5A": { "group": "quantum", "key": "QK_ONE_SHOT_ON", + "label": "One Shot On", "aliases": [ "OS_ON" ] @@ -394,6 +445,7 @@ "0x7C5B": { "group": "quantum", "key": "QK_ONE_SHOT_OFF", + "label": "One Shot Off", "aliases": [ "OS_OFF" ] @@ -401,6 +453,7 @@ "0x7C5C": { "group": "quantum", "key": "QK_ONE_SHOT_TOGGLE", + "label": "Toggle One Shot", "aliases": [ "OS_TOGG" ] @@ -409,6 +462,7 @@ "0x7C5D": { "group": "quantum", "key": "QK_KEY_OVERRIDE_TOGGLE", + "label": "Toggle Key Overrides", "aliases": [ "KO_TOGG" ] @@ -416,6 +470,7 @@ "0x7C5E": { "group": "quantum", "key": "QK_KEY_OVERRIDE_ON", + "label": "Key Overrides On", "aliases": [ "KO_ON" ] @@ -423,6 +478,7 @@ "0x7C5F": { "group": "quantum", "key": "QK_KEY_OVERRIDE_OFF", + "label": "Key Overrides Off", "aliases": [ "KO_OFF" ] @@ -431,6 +487,7 @@ "0x7C60": { "group": "quantum", "key": "QK_SECURE_LOCK", + "label": "Lock", "aliases": [ "SE_LOCK" ] @@ -438,6 +495,7 @@ "0x7C61": { "group": "quantum", "key": "QK_SECURE_UNLOCK", + "label": "Unlock", "aliases": [ "SE_UNLK" ] @@ -445,6 +503,7 @@ "0x7C62": { "group": "quantum", "key": "QK_SECURE_TOGGLE", + "label": "Toggle Lock", "aliases": [ "SE_TOGG" ] @@ -452,6 +511,7 @@ "0x7C63": { "group": "quantum", "key": "QK_SECURE_REQUEST", + "label": "Request Unlock", "aliases": [ "SE_REQ" ] @@ -460,6 +520,7 @@ "0x7C70": { "group": "quantum", "key": "QK_DYNAMIC_TAPPING_TERM_PRINT", + "label": "Print Dynamic Tapping Term", "aliases": [ "DT_PRNT" ] @@ -467,6 +528,7 @@ "0x7C71": { "group": "quantum", "key": "QK_DYNAMIC_TAPPING_TERM_UP", + "label": "Dynamic Tapping Term Up", "aliases": [ "DT_UP" ] @@ -474,6 +536,7 @@ "0x7C72": { "group": "quantum", "key": "QK_DYNAMIC_TAPPING_TERM_DOWN", + "label": "Dynamic Tapping Term Down", "aliases": [ "DT_DOWN" ] @@ -482,6 +545,7 @@ "0x7C73": { "group": "quantum", "key": "QK_CAPS_WORD_TOGGLE", + "label": "Toggle Caps Word", "aliases": [ "CW_TOGG" ] @@ -490,6 +554,7 @@ "0x7C74": { "group": "quantum", "key": "QK_AUTOCORRECT_ON", + "label": "Autocorrect On", "aliases": [ "AC_ON" ] @@ -497,6 +562,7 @@ "0x7C75": { "group": "quantum", "key": "QK_AUTOCORRECT_OFF", + "label": "Autocorrect Off", "aliases": [ "AC_OFF" ] @@ -504,6 +570,7 @@ "0x7C76": { "group": "quantum", "key": "QK_AUTOCORRECT_TOGGLE", + "label": "Toggle Autocorrect", "aliases": [ "AC_TOGG" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_basic.hjson b/data/constants/keycodes/keycodes_0.0.2_basic.hjson index d9cefe7e93..0e9338101e 100644 --- a/data/constants/keycodes/keycodes_0.0.2_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_basic.hjson @@ -3,7 +3,7 @@ "0x00C1": { "group": "media", "key": "KC_MISSION_CONTROL", - "label": "Open Mission Control", + "label": "Mission Control", "aliases": [ "KC_MCTL" ] @@ -11,7 +11,7 @@ "0x00C2": { "group": "media", "key": "KC_LAUNCHPAD", - "label": "Open Launchpad", + "label": "Launchpad", "aliases": [ "KC_LPAD" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_kb.hjson b/data/constants/keycodes/keycodes_0.0.2_kb.hjson index 28c4a8e8be..b617671650 100644 --- a/data/constants/keycodes/keycodes_0.0.2_kb.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_kb.hjson @@ -2,131 +2,163 @@ "keycodes": { "0x7E00": { "group": "kb", - "key": "QK_KB_0" + "key": "QK_KB_0", + "label": "Keyboard 0" }, "0x7E01": { "group": "kb", - "key": "QK_KB_1" + "key": "QK_KB_1", + "label": "Keyboard 1" }, "0x7E02": { "group": "kb", - "key": "QK_KB_2" + "key": "QK_KB_2", + "label": "Keyboard 2" }, "0x7E03": { "group": "kb", - "key": "QK_KB_3" + "key": "QK_KB_3", + "label": "Keyboard 3" }, "0x7E04": { "group": "kb", - "key": "QK_KB_4" + "key": "QK_KB_4", + "label": "Keyboard 4" }, "0x7E05": { "group": "kb", - "key": "QK_KB_5" + "key": "QK_KB_5", + "label": "Keyboard 5" }, "0x7E06": { "group": "kb", - "key": "QK_KB_6" + "key": "QK_KB_6", + "label": "Keyboard 6" }, "0x7E07": { "group": "kb", - "key": "QK_KB_7" + "key": "QK_KB_7", + "label": "Keyboard 7" }, "0x7E08": { "group": "kb", - "key": "QK_KB_8" + "key": "QK_KB_8", + "label": "Keyboard 8" }, "0x7E09": { "group": "kb", - "key": "QK_KB_9" + "key": "QK_KB_9", + "label": "Keyboard 9" }, "0x7E0A": { "group": "kb", - "key": "QK_KB_10" + "key": "QK_KB_10", + "label": "Keyboard 10" }, "0x7E0B": { "group": "kb", - "key": "QK_KB_11" + "key": "QK_KB_11", + "label": "Keyboard 11" }, "0x7E0C": { "group": "kb", - "key": "QK_KB_12" + "key": "QK_KB_12", + "label": "Keyboard 12" }, "0x7E0D": { "group": "kb", - "key": "QK_KB_13" + "key": "QK_KB_13", + "label": "Keyboard 13" }, "0x7E0E": { "group": "kb", - "key": "QK_KB_14" + "key": "QK_KB_14", + "label": "Keyboard 14" }, "0x7E0F": { "group": "kb", - "key": "QK_KB_15" + "key": "QK_KB_15", + "label": "Keyboard 15" }, "0x7E10": { "group": "kb", - "key": "QK_KB_16" + "key": "QK_KB_16", + "label": "Keyboard 16" }, "0x7E11": { "group": "kb", - "key": "QK_KB_17" + "key": "QK_KB_17", + "label": "Keyboard 17" }, "0x7E12": { "group": "kb", - "key": "QK_KB_18" + "key": "QK_KB_18", + "label": "Keyboard 18" }, "0x7E13": { "group": "kb", - "key": "QK_KB_19" + "key": "QK_KB_19", + "label": "Keyboard 19" }, "0x7E14": { "group": "kb", - "key": "QK_KB_20" + "key": "QK_KB_20", + "label": "Keyboard 20" }, "0x7E15": { "group": "kb", - "key": "QK_KB_21" + "key": "QK_KB_21", + "label": "Keyboard 21" }, "0x7E16": { "group": "kb", - "key": "QK_KB_22" + "key": "QK_KB_22", + "label": "Keyboard 22" }, "0x7E17": { "group": "kb", - "key": "QK_KB_23" + "key": "QK_KB_23", + "label": "Keyboard 23" }, "0x7E18": { "group": "kb", - "key": "QK_KB_24" + "key": "QK_KB_24", + "label": "Keyboard 24" }, "0x7E19": { "group": "kb", - "key": "QK_KB_25" + "key": "QK_KB_25", + "label": "Keyboard 25" }, "0x7E1A": { "group": "kb", - "key": "QK_KB_26" + "key": "QK_KB_26", + "label": "Keyboard 26" }, "0x7E1B": { "group": "kb", - "key": "QK_KB_27" + "key": "QK_KB_27", + "label": "Keyboard 27" }, "0x7E1C": { "group": "kb", - "key": "QK_KB_28" + "key": "QK_KB_28", + "label": "Keyboard 28" }, "0x7E1D": { "group": "kb", - "key": "QK_KB_29" + "key": "QK_KB_29", + "label": "Keyboard 29" }, "0x7E1E": { "group": "kb", - "key": "QK_KB_30" + "key": "QK_KB_30", + "label": "Keyboard 30" }, "0x7E1F": { "group": "kb", - "key": "QK_KB_31" + "key": "QK_KB_31", + "label": "Keyboard 31" } } } diff --git a/data/constants/keycodes/keycodes_0.0.2_magic.hjson b/data/constants/keycodes/keycodes_0.0.2_magic.hjson index 2fc8ba038d..895ce9819a 100644 --- a/data/constants/keycodes/keycodes_0.0.2_magic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_magic.hjson @@ -5,6 +5,7 @@ "0x7000": { "group": "magic", "key": "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK", + "label": "Swap LCtl⇄Caps", "aliases": [ "CL_SWAP" ] @@ -12,6 +13,7 @@ "0x7001": { "group": "magic", "key": "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK", + "label": "Unswap LCtl⇄Caps", "aliases": [ "CL_NORM" ] @@ -19,6 +21,7 @@ "0x7002": { "group": "magic", "key": "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK", + "label": "Toggle LCtl⇄Caps", "aliases": [ "CL_TOGG" ] @@ -26,6 +29,7 @@ "0x7003": { "group": "magic", "key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF", + "label": "Caps≠LCtl", "aliases": [ "CL_CAPS" ] @@ -33,6 +37,7 @@ "0x7004": { "group": "magic", "key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON", + "label": "Caps=LCtl", "aliases": [ "CL_CTRL" ] @@ -40,6 +45,7 @@ "0x7005": { "group": "magic", "key": "QK_MAGIC_SWAP_LALT_LGUI", + "label": "Swap LAlt⇄LGUI", "aliases": [ "AG_LSWP" ] @@ -47,6 +53,7 @@ "0x7006": { "group": "magic", "key": "QK_MAGIC_UNSWAP_LALT_LGUI", + "label": "Unswap LAlt⇄LGUI", "aliases": [ "AG_LNRM" ] @@ -54,6 +61,7 @@ "0x7007": { "group": "magic", "key": "QK_MAGIC_SWAP_RALT_RGUI", + "label": "Swap RAlt⇄RGUI", "aliases": [ "AG_RSWP" ] @@ -61,6 +69,7 @@ "0x7008": { "group": "magic", "key": "QK_MAGIC_UNSWAP_RALT_RGUI", + "label": "Unswap RAlt⇄RGUI", "aliases": [ "AG_RNRM" ] @@ -68,6 +77,7 @@ "0x7009": { "group": "magic", "key": "QK_MAGIC_GUI_ON", + "label": "GUI On", "aliases": [ "GU_ON" ] @@ -75,6 +85,7 @@ "0x700A": { "group": "magic", "key": "QK_MAGIC_GUI_OFF", + "label": "GUI Off", "aliases": [ "GU_OFF" ] @@ -82,6 +93,7 @@ "0x700B": { "group": "magic", "key": "QK_MAGIC_TOGGLE_GUI", + "label": "Toggle GUI", "aliases": [ "GU_TOGG" ] @@ -89,6 +101,7 @@ "0x700C": { "group": "magic", "key": "QK_MAGIC_SWAP_GRAVE_ESC", + "label": "Swap `⇄Esc", "aliases": [ "GE_SWAP" ] @@ -96,6 +109,7 @@ "0x700D": { "group": "magic", "key": "QK_MAGIC_UNSWAP_GRAVE_ESC", + "label": "Unswap `⇄Esc", "aliases": [ "GE_NORM" ] @@ -103,6 +117,7 @@ "0x700E": { "group": "magic", "key": "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE", + "label": "Swap \\⇄Bspc", "aliases": [ "BS_SWAP" ] @@ -110,6 +125,7 @@ "0x700F": { "group": "magic", "key": "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE", + "label": "Unswap \\⇄Bspc", "aliases": [ "BS_NORM" ] @@ -117,6 +133,7 @@ "0x7010": { "group": "magic", "key": "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE", + "label": "Toggle \\⇄Bspc", "aliases": [ "BS_TOGG" ] @@ -124,6 +141,7 @@ "0x7011": { "group": "magic", "key": "QK_MAGIC_NKRO_ON", + "label": "NKRO On", "aliases": [ "NK_ON" ] @@ -131,6 +149,7 @@ "0x7012": { "group": "magic", "key": "QK_MAGIC_NKRO_OFF", + "label": "NKRO Off", "aliases": [ "NK_OFF" ] @@ -138,6 +157,7 @@ "0x7013": { "group": "magic", "key": "QK_MAGIC_TOGGLE_NKRO", + "label": "Toggle NKRO", "aliases": [ "NK_TOGG" ] @@ -145,6 +165,7 @@ "0x7014": { "group": "magic", "key": "QK_MAGIC_SWAP_ALT_GUI", + "label": "Swap Alt⇄GUI", "aliases": [ "AG_SWAP" ] @@ -152,6 +173,7 @@ "0x7015": { "group": "magic", "key": "QK_MAGIC_UNSWAP_ALT_GUI", + "label": "Unswap Alt⇄GUI", "aliases": [ "AG_NORM" ] @@ -159,6 +181,7 @@ "0x7016": { "group": "magic", "key": "QK_MAGIC_TOGGLE_ALT_GUI", + "label": "Toggle Alt⇄GUI", "aliases": [ "AG_TOGG" ] @@ -166,6 +189,7 @@ "0x7017": { "group": "magic", "key": "QK_MAGIC_SWAP_LCTL_LGUI", + "label": "Swap LCtl⇄LGUI", "aliases": [ "CG_LSWP" ] @@ -173,6 +197,7 @@ "0x7018": { "group": "magic", "key": "QK_MAGIC_UNSWAP_LCTL_LGUI", + "label": "Unswap LCtl⇄LGUI", "aliases": [ "CG_LNRM" ] @@ -180,6 +205,7 @@ "0x7019": { "group": "magic", "key": "QK_MAGIC_SWAP_RCTL_RGUI", + "label": "Swap RCtl⇄RGUI", "aliases": [ "CG_RSWP" ] @@ -187,6 +213,7 @@ "0x701A": { "group": "magic", "key": "QK_MAGIC_UNSWAP_RCTL_RGUI", + "label": "Unswap RCtl⇄RGUI", "aliases": [ "CG_RNRM" ] @@ -194,6 +221,7 @@ "0x701B": { "group": "magic", "key": "QK_MAGIC_SWAP_CTL_GUI", + "label": "Swap Ctl⇄GUI", "aliases": [ "CG_SWAP" ] @@ -201,6 +229,7 @@ "0x701C": { "group": "magic", "key": "QK_MAGIC_UNSWAP_CTL_GUI", + "label": "Unswap Ctl⇄GUI", "aliases": [ "CG_NORM" ] @@ -208,6 +237,7 @@ "0x701D": { "group": "magic", "key": "QK_MAGIC_TOGGLE_CTL_GUI", + "label": "Toggle Ctl⇄GUI", "aliases": [ "CG_TOGG" ] @@ -215,6 +245,7 @@ "0x701E": { "group": "magic", "key": "QK_MAGIC_EE_HANDS_LEFT", + "label": "EE Hands Left", "aliases": [ "EH_LEFT" ] @@ -222,6 +253,7 @@ "0x701F": { "group": "magic", "key": "QK_MAGIC_EE_HANDS_RIGHT", + "label": "EE Hands Right", "aliases": [ "EH_RGHT" ] @@ -229,6 +261,7 @@ "0x7020": { "group": "magic", "key": "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK", + "label": "Swap Esc⇄Caps", "aliases": [ "EC_SWAP" ] @@ -236,6 +269,7 @@ "0x7021": { "group": "magic", "key": "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK", + "label": "Unswap Esc⇄Caps", "aliases": [ "EC_NORM" ] @@ -243,6 +277,7 @@ "0x7022": { "group": "magic", "key": "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK", + "label": "Toggle Esc⇄Caps", "aliases": [ "EC_TOGG" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_midi.hjson b/data/constants/keycodes/keycodes_0.0.2_midi.hjson index ddf79be96c..79459fec58 100644 --- a/data/constants/keycodes/keycodes_0.0.2_midi.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_midi.hjson @@ -5,6 +5,7 @@ "0x7100": { "group": "midi", "key": "QK_MIDI_ON", + "label": "MIDI On", "aliases": [ "MI_ON" ] @@ -12,6 +13,7 @@ "0x7101": { "group": "midi", "key": "QK_MIDI_OFF", + "label": "MIDI Off", "aliases": [ "MI_OFF" ] @@ -19,6 +21,7 @@ "0x7102": { "group": "midi", "key": "QK_MIDI_TOGGLE", + "label": "Toggle MIDI", "aliases": [ "MI_TOGG" ] @@ -26,6 +29,7 @@ "0x7103": { "group": "midi", "key": "QK_MIDI_NOTE_C_0", + "label": "C₀", "aliases": [ "MI_C" ] @@ -33,6 +37,7 @@ "0x7104": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_0", + "label": "C♯₀", "aliases": [ "MI_Cs", "MI_Db" @@ -41,6 +46,7 @@ "0x7105": { "group": "midi", "key": "QK_MIDI_NOTE_D_0", + "label": "D₀", "aliases": [ "MI_D" ] @@ -48,6 +54,7 @@ "0x7106": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_0", + "label": "D♯₀", "aliases": [ "MI_Ds", "MI_Eb" @@ -56,6 +63,7 @@ "0x7107": { "group": "midi", "key": "QK_MIDI_NOTE_E_0", + "label": "E₀", "aliases": [ "MI_E" ] @@ -63,6 +71,7 @@ "0x7108": { "group": "midi", "key": "QK_MIDI_NOTE_F_0", + "label": "F₀", "aliases": [ "MI_F" ] @@ -70,6 +79,7 @@ "0x7109": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_0", + "label": "F♯₀", "aliases": [ "MI_Fs", "MI_Gb" @@ -78,6 +88,7 @@ "0x710A": { "group": "midi", "key": "QK_MIDI_NOTE_G_0", + "label": "G₀", "aliases": [ "MI_G" ] @@ -85,6 +96,7 @@ "0x710B": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_0", + "label": "G♯₀", "aliases": [ "MI_Gs", "MI_Ab" @@ -93,6 +105,7 @@ "0x710C": { "group": "midi", "key": "QK_MIDI_NOTE_A_0", + "label": "A₀", "aliases": [ "MI_A" ] @@ -100,6 +113,7 @@ "0x710D": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_0", + "label": "A♯₀", "aliases": [ "MI_As", "MI_Bb" @@ -108,6 +122,7 @@ "0x710E": { "group": "midi", "key": "QK_MIDI_NOTE_B_0", + "label": "B₀", "aliases": [ "MI_B" ] @@ -115,6 +130,7 @@ "0x710F": { "group": "midi", "key": "QK_MIDI_NOTE_C_1", + "label": "C₁", "aliases": [ "MI_C1" ] @@ -122,6 +138,7 @@ "0x7110": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_1", + "label": "C♯₁", "aliases": [ "MI_Cs1", "MI_Db1" @@ -130,6 +147,7 @@ "0x7111": { "group": "midi", "key": "QK_MIDI_NOTE_D_1", + "label": "D₁", "aliases": [ "MI_D1" ] @@ -137,6 +155,7 @@ "0x7112": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_1", + "label": "D♯₁", "aliases": [ "MI_Ds1", "MI_Eb1" @@ -145,6 +164,7 @@ "0x7113": { "group": "midi", "key": "QK_MIDI_NOTE_E_1", + "label": "E₁", "aliases": [ "MI_E1" ] @@ -152,6 +172,7 @@ "0x7114": { "group": "midi", "key": "QK_MIDI_NOTE_F_1", + "label": "F₁", "aliases": [ "MI_F1" ] @@ -159,6 +180,7 @@ "0x7115": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_1", + "label": "F♯₁", "aliases": [ "MI_Fs1", "MI_Gb1" @@ -167,6 +189,7 @@ "0x7116": { "group": "midi", "key": "QK_MIDI_NOTE_G_1", + "label": "G₁", "aliases": [ "MI_G1" ] @@ -174,6 +197,7 @@ "0x7117": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_1", + "label": "G♯₁", "aliases": [ "MI_Gs1", "MI_Ab1" @@ -182,6 +206,7 @@ "0x7118": { "group": "midi", "key": "QK_MIDI_NOTE_A_1", + "label": "A₁", "aliases": [ "MI_A1" ] @@ -189,6 +214,7 @@ "0x7119": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_1", + "label": "A♯₁", "aliases": [ "MI_As1", "MI_Bb1" @@ -197,6 +223,7 @@ "0x711A": { "group": "midi", "key": "QK_MIDI_NOTE_B_1", + "label": "B₁", "aliases": [ "MI_B1" ] @@ -204,6 +231,7 @@ "0x711B": { "group": "midi", "key": "QK_MIDI_NOTE_C_2", + "label": "C₂", "aliases": [ "MI_C2" ] @@ -211,6 +239,7 @@ "0x711C": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_2", + "label": "C♯₂", "aliases": [ "MI_Cs2", "MI_Db2" @@ -219,6 +248,7 @@ "0x711D": { "group": "midi", "key": "QK_MIDI_NOTE_D_2", + "label": "D₂", "aliases": [ "MI_D2" ] @@ -226,6 +256,7 @@ "0x711E": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_2", + "label": "D♯₂", "aliases": [ "MI_Ds2", "MI_Eb2" @@ -234,6 +265,7 @@ "0x711F": { "group": "midi", "key": "QK_MIDI_NOTE_E_2", + "label": "E₂", "aliases": [ "MI_E2" ] @@ -241,6 +273,7 @@ "0x7120": { "group": "midi", "key": "QK_MIDI_NOTE_F_2", + "label": "F₂", "aliases": [ "MI_F2" ] @@ -248,6 +281,7 @@ "0x7121": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_2", + "label": "F♯₂", "aliases": [ "MI_Fs2", "MI_Gb2" @@ -256,6 +290,7 @@ "0x7122": { "group": "midi", "key": "QK_MIDI_NOTE_G_2", + "label": "G₂", "aliases": [ "MI_G2" ] @@ -263,6 +298,7 @@ "0x7123": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_2", + "label": "G♯₂", "aliases": [ "MI_Gs2", "MI_Ab2" @@ -271,6 +307,7 @@ "0x7124": { "group": "midi", "key": "QK_MIDI_NOTE_A_2", + "label": "A₂", "aliases": [ "MI_A2" ] @@ -278,6 +315,7 @@ "0x7125": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_2", + "label": "A♯₂", "aliases": [ "MI_As2", "MI_Bb2" @@ -286,6 +324,7 @@ "0x7126": { "group": "midi", "key": "QK_MIDI_NOTE_B_2", + "label": "B₂", "aliases": [ "MI_B2" ] @@ -293,6 +332,7 @@ "0x7127": { "group": "midi", "key": "QK_MIDI_NOTE_C_3", + "label": "C₃", "aliases": [ "MI_C3" ] @@ -300,6 +340,7 @@ "0x7128": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_3", + "label": "C♯₃", "aliases": [ "MI_Cs3", "MI_Db3" @@ -308,6 +349,7 @@ "0x7129": { "group": "midi", "key": "QK_MIDI_NOTE_D_3", + "label": "D₃", "aliases": [ "MI_D3" ] @@ -315,6 +357,7 @@ "0x712A": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_3", + "label": "D♯₃", "aliases": [ "MI_Ds3", "MI_Eb3" @@ -323,6 +366,7 @@ "0x712B": { "group": "midi", "key": "QK_MIDI_NOTE_E_3", + "label": "E₃", "aliases": [ "MI_E3" ] @@ -330,6 +374,7 @@ "0x712C": { "group": "midi", "key": "QK_MIDI_NOTE_F_3", + "label": "F₃", "aliases": [ "MI_F3" ] @@ -337,6 +382,7 @@ "0x712D": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_3", + "label": "F♯₃", "aliases": [ "MI_Fs3", "MI_Gb3" @@ -345,6 +391,7 @@ "0x712E": { "group": "midi", "key": "QK_MIDI_NOTE_G_3", + "label": "G₃", "aliases": [ "MI_G3" ] @@ -352,6 +399,7 @@ "0x712F": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_3", + "label": "G♯₃", "aliases": [ "MI_Gs3", "MI_Ab3" @@ -360,6 +408,7 @@ "0x7130": { "group": "midi", "key": "QK_MIDI_NOTE_A_3", + "label": "A₃", "aliases": [ "MI_A3" ] @@ -367,6 +416,7 @@ "0x7131": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_3", + "label": "A♯₃", "aliases": [ "MI_As3", "MI_Bb3" @@ -375,6 +425,7 @@ "0x7132": { "group": "midi", "key": "QK_MIDI_NOTE_B_3", + "label": "B₃", "aliases": [ "MI_B3" ] @@ -382,6 +433,7 @@ "0x7133": { "group": "midi", "key": "QK_MIDI_NOTE_C_4", + "label": "C₄", "aliases": [ "MI_C4" ] @@ -389,6 +441,7 @@ "0x7134": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_4", + "label": "C♯₄", "aliases": [ "MI_Cs4", "MI_Db4" @@ -397,6 +450,7 @@ "0x7135": { "group": "midi", "key": "QK_MIDI_NOTE_D_4", + "label": "D₄", "aliases": [ "MI_D4" ] @@ -404,6 +458,7 @@ "0x7136": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_4", + "label": "D♯₄", "aliases": [ "MI_Ds4", "MI_Eb4" @@ -412,6 +467,7 @@ "0x7137": { "group": "midi", "key": "QK_MIDI_NOTE_E_4", + "label": "E₄", "aliases": [ "MI_E4" ] @@ -419,6 +475,7 @@ "0x7138": { "group": "midi", "key": "QK_MIDI_NOTE_F_4", + "label": "F₄", "aliases": [ "MI_F4" ] @@ -426,6 +483,7 @@ "0x7139": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_4", + "label": "F♯₄", "aliases": [ "MI_Fs4", "MI_Gb4" @@ -434,6 +492,7 @@ "0x713A": { "group": "midi", "key": "QK_MIDI_NOTE_G_4", + "label": "G₄", "aliases": [ "MI_G4" ] @@ -441,6 +500,7 @@ "0x713B": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_4", + "label": "G♯₄", "aliases": [ "MI_Gs4", "MI_Ab4" @@ -449,6 +509,7 @@ "0x713C": { "group": "midi", "key": "QK_MIDI_NOTE_A_4", + "label": "A₄", "aliases": [ "MI_A4" ] @@ -456,6 +517,7 @@ "0x713D": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_4", + "label": "A♯₄", "aliases": [ "MI_As4", "MI_Bb4" @@ -464,6 +526,7 @@ "0x713E": { "group": "midi", "key": "QK_MIDI_NOTE_B_4", + "label": "B₄", "aliases": [ "MI_B4" ] @@ -471,6 +534,7 @@ "0x713F": { "group": "midi", "key": "QK_MIDI_NOTE_C_5", + "label": "C₅", "aliases": [ "MI_C5" ] @@ -478,6 +542,7 @@ "0x7140": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_5", + "label": "C♯₅", "aliases": [ "MI_Cs5", "MI_Db5" @@ -486,6 +551,7 @@ "0x7141": { "group": "midi", "key": "QK_MIDI_NOTE_D_5", + "label": "D₅", "aliases": [ "MI_D5" ] @@ -493,6 +559,7 @@ "0x7142": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_5", + "label": "D♯₅", "aliases": [ "MI_Ds5", "MI_Eb5" @@ -501,6 +568,7 @@ "0x7143": { "group": "midi", "key": "QK_MIDI_NOTE_E_5", + "label": "E₅", "aliases": [ "MI_E5" ] @@ -508,6 +576,7 @@ "0x7144": { "group": "midi", "key": "QK_MIDI_NOTE_F_5", + "label": "F₅", "aliases": [ "MI_F5" ] @@ -515,6 +584,7 @@ "0x7145": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_5", + "label": "F♯₅", "aliases": [ "MI_Fs5", "MI_Gb5" @@ -523,6 +593,7 @@ "0x7146": { "group": "midi", "key": "QK_MIDI_NOTE_G_5", + "label": "G₅", "aliases": [ "MI_G5" ] @@ -530,6 +601,7 @@ "0x7147": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_5", + "label": "G♯₅", "aliases": [ "MI_Gs5", "MI_Ab5" @@ -538,6 +610,7 @@ "0x7148": { "group": "midi", "key": "QK_MIDI_NOTE_A_5", + "label": "A₅", "aliases": [ "MI_A5" ] @@ -545,6 +618,7 @@ "0x7149": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_5", + "label": "A♯₅", "aliases": [ "MI_As5", "MI_Bb5" @@ -553,6 +627,7 @@ "0x714A": { "group": "midi", "key": "QK_MIDI_NOTE_B_5", + "label": "B₅", "aliases": [ "MI_B5" ] @@ -560,6 +635,7 @@ "0x714B": { "group": "midi", "key": "QK_MIDI_OCTAVE_N2", + "label": "Octave -2", "aliases": [ "MI_OCN2" ] @@ -567,6 +643,7 @@ "0x714C": { "group": "midi", "key": "QK_MIDI_OCTAVE_N1", + "label": "Octave -1", "aliases": [ "MI_OCN1" ] @@ -574,6 +651,7 @@ "0x714D": { "group": "midi", "key": "QK_MIDI_OCTAVE_0", + "label": "Octave 0", "aliases": [ "MI_OC0" ] @@ -581,6 +659,7 @@ "0x714E": { "group": "midi", "key": "QK_MIDI_OCTAVE_1", + "label": "Octave 1", "aliases": [ "MI_OC1" ] @@ -588,6 +667,7 @@ "0x714F": { "group": "midi", "key": "QK_MIDI_OCTAVE_2", + "label": "Octave 2", "aliases": [ "MI_OC2" ] @@ -595,6 +675,7 @@ "0x7150": { "group": "midi", "key": "QK_MIDI_OCTAVE_3", + "label": "Octave 3", "aliases": [ "MI_OC3" ] @@ -602,6 +683,7 @@ "0x7151": { "group": "midi", "key": "QK_MIDI_OCTAVE_4", + "label": "Octave 4", "aliases": [ "MI_OC4" ] @@ -609,6 +691,7 @@ "0x7152": { "group": "midi", "key": "QK_MIDI_OCTAVE_5", + "label": "Octave 5", "aliases": [ "MI_OC5" ] @@ -616,6 +699,7 @@ "0x7153": { "group": "midi", "key": "QK_MIDI_OCTAVE_6", + "label": "Octave 6", "aliases": [ "MI_OC6" ] @@ -623,6 +707,7 @@ "0x7154": { "group": "midi", "key": "QK_MIDI_OCTAVE_7", + "label": "Octave 7", "aliases": [ "MI_OC7" ] @@ -630,6 +715,7 @@ "0x7155": { "group": "midi", "key": "QK_MIDI_OCTAVE_DOWN", + "label": "Octave Down", "aliases": [ "MI_OCTD" ] @@ -637,6 +723,7 @@ "0x7156": { "group": "midi", "key": "QK_MIDI_OCTAVE_UP", + "label": "Octave Up", "aliases": [ "MI_OCTU" ] @@ -644,6 +731,7 @@ "0x7157": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N6", + "label": "Transpose -6", "aliases": [ "MI_TRN6" ] @@ -651,6 +739,7 @@ "0x7158": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N5", + "label": "Transpose -5", "aliases": [ "MI_TRN5" ] @@ -658,6 +747,7 @@ "0x7159": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N4", + "label": "Transpose -4", "aliases": [ "MI_TRN4" ] @@ -665,6 +755,7 @@ "0x715A": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N3", + "label": "Transpose -3", "aliases": [ "MI_TRN3" ] @@ -672,6 +763,7 @@ "0x715B": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N2", + "label": "Transpose -2", "aliases": [ "MI_TRN2" ] @@ -679,6 +771,7 @@ "0x715C": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N1", + "label": "Transpose -1", "aliases": [ "MI_TRN1" ] @@ -686,6 +779,7 @@ "0x715D": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_0", + "label": "Transpose 0", "aliases": [ "MI_TR0" ] @@ -693,6 +787,7 @@ "0x715E": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_1", + "label": "Transpose +1", "aliases": [ "MI_TR1" ] @@ -700,6 +795,7 @@ "0x715F": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_2", + "label": "Transpose +2", "aliases": [ "MI_TR2" ] @@ -707,6 +803,7 @@ "0x7160": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_3", + "label": "Transpose +3", "aliases": [ "MI_TR3" ] @@ -714,6 +811,7 @@ "0x7161": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_4", + "label": "Transpose +4", "aliases": [ "MI_TR4" ] @@ -721,6 +819,7 @@ "0x7162": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_5", + "label": "Transpose +5", "aliases": [ "MI_TR5" ] @@ -728,6 +827,7 @@ "0x7163": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_6", + "label": "Transpose +6", "aliases": [ "MI_TR6" ] @@ -735,6 +835,7 @@ "0x7164": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_DOWN", + "label": "Transpose Down", "aliases": [ "MI_TRSD" ] @@ -742,6 +843,7 @@ "0x7165": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_UP", + "label": "Transpose Up", "aliases": [ "MI_TRSU" ] @@ -749,6 +851,7 @@ "0x7166": { "group": "midi", "key": "QK_MIDI_VELOCITY_0", + "label": "Velocity 0", "aliases": [ "MI_VL0" ] @@ -756,6 +859,7 @@ "0x7167": { "group": "midi", "key": "QK_MIDI_VELOCITY_1", + "label": "Velocity 1", "aliases": [ "MI_VL1" ] @@ -763,6 +867,7 @@ "0x7168": { "group": "midi", "key": "QK_MIDI_VELOCITY_2", + "label": "Velocity 2", "aliases": [ "MI_VL2" ] @@ -770,6 +875,7 @@ "0x7169": { "group": "midi", "key": "QK_MIDI_VELOCITY_3", + "label": "Velocity 3", "aliases": [ "MI_VL3" ] @@ -777,6 +883,7 @@ "0x716A": { "group": "midi", "key": "QK_MIDI_VELOCITY_4", + "label": "Velocity 4", "aliases": [ "MI_VL4" ] @@ -784,6 +891,7 @@ "0x716B": { "group": "midi", "key": "QK_MIDI_VELOCITY_5", + "label": "Velocity 5", "aliases": [ "MI_VL5" ] @@ -791,6 +899,7 @@ "0x716C": { "group": "midi", "key": "QK_MIDI_VELOCITY_6", + "label": "Velocity 6", "aliases": [ "MI_VL6" ] @@ -798,6 +907,7 @@ "0x716D": { "group": "midi", "key": "QK_MIDI_VELOCITY_7", + "label": "Velocity 7", "aliases": [ "MI_VL7" ] @@ -805,6 +915,7 @@ "0x716E": { "group": "midi", "key": "QK_MIDI_VELOCITY_8", + "label": "Velocity 8", "aliases": [ "MI_VL8" ] @@ -812,6 +923,7 @@ "0x716F": { "group": "midi", "key": "QK_MIDI_VELOCITY_9", + "label": "Velocity 9", "aliases": [ "MI_VL9" ] @@ -819,6 +931,7 @@ "0x7170": { "group": "midi", "key": "QK_MIDI_VELOCITY_10", + "label": "Velocity 10", "aliases": [ "MI_VL10" ] @@ -826,6 +939,7 @@ "0x7171": { "group": "midi", "key": "QK_MIDI_VELOCITY_DOWN", + "label": "Velocity Down", "aliases": [ "MI_VELD" ] @@ -833,6 +947,7 @@ "0x7172": { "group": "midi", "key": "QK_MIDI_VELOCITY_UP", + "label": "Velocity Up", "aliases": [ "MI_VELU" ] @@ -840,6 +955,7 @@ "0x7173": { "group": "midi", "key": "QK_MIDI_CHANNEL_1", + "label": "Channel 1", "aliases": [ "MI_CH1" ] @@ -847,6 +963,7 @@ "0x7174": { "group": "midi", "key": "QK_MIDI_CHANNEL_2", + "label": "Channel 2", "aliases": [ "MI_CH2" ] @@ -854,6 +971,7 @@ "0x7175": { "group": "midi", "key": "QK_MIDI_CHANNEL_3", + "label": "Channel 3", "aliases": [ "MI_CH3" ] @@ -861,6 +979,7 @@ "0x7176": { "group": "midi", "key": "QK_MIDI_CHANNEL_4", + "label": "Channel 4", "aliases": [ "MI_CH4" ] @@ -868,6 +987,7 @@ "0x7177": { "group": "midi", "key": "QK_MIDI_CHANNEL_5", + "label": "Channel 5", "aliases": [ "MI_CH5" ] @@ -875,6 +995,7 @@ "0x7178": { "group": "midi", "key": "QK_MIDI_CHANNEL_6", + "label": "Channel 6", "aliases": [ "MI_CH6" ] @@ -882,6 +1003,7 @@ "0x7179": { "group": "midi", "key": "QK_MIDI_CHANNEL_7", + "label": "Channel 7", "aliases": [ "MI_CH7" ] @@ -889,6 +1011,7 @@ "0x717A": { "group": "midi", "key": "QK_MIDI_CHANNEL_8", + "label": "Channel 8", "aliases": [ "MI_CH8" ] @@ -896,6 +1019,7 @@ "0x717B": { "group": "midi", "key": "QK_MIDI_CHANNEL_9", + "label": "Channel 9", "aliases": [ "MI_CH9" ] @@ -903,6 +1027,7 @@ "0x717C": { "group": "midi", "key": "QK_MIDI_CHANNEL_10", + "label": "Channel 10", "aliases": [ "MI_CH10" ] @@ -910,6 +1035,7 @@ "0x717D": { "group": "midi", "key": "QK_MIDI_CHANNEL_11", + "label": "Channel 11", "aliases": [ "MI_CH11" ] @@ -917,6 +1043,7 @@ "0x717E": { "group": "midi", "key": "QK_MIDI_CHANNEL_12", + "label": "Channel 12", "aliases": [ "MI_CH12" ] @@ -924,6 +1051,7 @@ "0x717F": { "group": "midi", "key": "QK_MIDI_CHANNEL_13", + "label": "Channel 13", "aliases": [ "MI_CH13" ] @@ -931,6 +1059,7 @@ "0x7180": { "group": "midi", "key": "QK_MIDI_CHANNEL_14", + "label": "Channel 14", "aliases": [ "MI_CH14" ] @@ -938,6 +1067,7 @@ "0x7181": { "group": "midi", "key": "QK_MIDI_CHANNEL_15", + "label": "Channel 15", "aliases": [ "MI_CH15" ] @@ -945,6 +1075,7 @@ "0x7182": { "group": "midi", "key": "QK_MIDI_CHANNEL_16", + "label": "Channel 16", "aliases": [ "MI_CH16" ] @@ -952,6 +1083,7 @@ "0x7183": { "group": "midi", "key": "QK_MIDI_CHANNEL_DOWN", + "label": "Channel Down", "aliases": [ "MI_CHND" ] @@ -959,6 +1091,7 @@ "0x7184": { "group": "midi", "key": "QK_MIDI_CHANNEL_UP", + "label": "Channel Up", "aliases": [ "MI_CHNU" ] @@ -966,6 +1099,7 @@ "0x7185": { "group": "midi", "key": "QK_MIDI_ALL_NOTES_OFF", + "label": "All Notes Off", "aliases": [ "MI_AOFF" ] @@ -973,6 +1107,7 @@ "0x7186": { "group": "midi", "key": "QK_MIDI_SUSTAIN", + "label": "Sustain", "aliases": [ "MI_SUST" ] @@ -980,6 +1115,7 @@ "0x7187": { "group": "midi", "key": "QK_MIDI_PORTAMENTO", + "label": "Portamento", "aliases": [ "MI_PORT" ] @@ -987,6 +1123,7 @@ "0x7188": { "group": "midi", "key": "QK_MIDI_SOSTENUTO", + "label": "Sostenuto", "aliases": [ "MI_SOST" ] @@ -994,6 +1131,7 @@ "0x7189": { "group": "midi", "key": "QK_MIDI_SOFT", + "label": "Soft Pedal", "aliases": [ "MI_SOFT" ] @@ -1001,6 +1139,7 @@ "0x718A": { "group": "midi", "key": "QK_MIDI_LEGATO", + "label": "Legato", "aliases": [ "MI_LEG" ] @@ -1008,6 +1147,7 @@ "0x718B": { "group": "midi", "key": "QK_MIDI_MODULATION", + "label": "Modulation", "aliases": [ "MI_MOD" ] @@ -1015,6 +1155,7 @@ "0x718C": { "group": "midi", "key": "QK_MIDI_MODULATION_SPEED_DOWN", + "label": "Modulation Speed Down", "aliases": [ "MI_MODD" ] @@ -1022,6 +1163,7 @@ "0x718D": { "group": "midi", "key": "QK_MIDI_MODULATION_SPEED_UP", + "label": "Modulation Speed Up", "aliases": [ "MI_MODU" ] @@ -1029,6 +1171,7 @@ "0x718E": { "group": "midi", "key": "QK_MIDI_PITCH_BEND_DOWN", + "label": "Pitch Bend Down", "aliases": [ "MI_BNDD" ] @@ -1036,6 +1179,7 @@ "0x718F": { "group": "midi", "key": "QK_MIDI_PITCH_BEND_UP", + "label": "Pitch Bend Up", "aliases": [ "MI_BNDU" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_quantum.hjson b/data/constants/keycodes/keycodes_0.0.2_quantum.hjson index 960afa4e51..8bedec7d6c 100644 --- a/data/constants/keycodes/keycodes_0.0.2_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_quantum.hjson @@ -3,6 +3,7 @@ "0x7C77": { "group": "quantum", "key": "QK_TRI_LAYER_LOWER", + "label": "Lower", "aliases": [ "TL_LOWR" ] @@ -10,6 +11,7 @@ "0x7C78": { "group": "quantum", "key": "QK_TRI_LAYER_UPPER", + "label": "Upper", "aliases": [ "TL_UPPR" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson index 445a2c9328..ef07ce9e09 100644 --- a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson @@ -5,6 +5,7 @@ "0x7200": { "group": "sequencer", "key": "QK_SEQUENCER_ON", + "label": "Sequencer On", "aliases": [ "SQ_ON" ] @@ -12,6 +13,7 @@ "0x7201": { "group": "sequencer", "key": "QK_SEQUENCER_OFF", + "label": "Sequencer Off", "aliases": [ "SQ_OFF" ] @@ -19,6 +21,7 @@ "0x7202": { "group": "sequencer", "key": "QK_SEQUENCER_TOGGLE", + "label": "Toggle Sequencer", "aliases": [ "SQ_TOGG" ] @@ -26,6 +29,7 @@ "0x7203": { "group": "sequencer", "key": "QK_SEQUENCER_TEMPO_DOWN", + "label": "Tempo Down", "aliases": [ "SQ_TMPD" ] @@ -33,6 +37,7 @@ "0x7204": { "group": "sequencer", "key": "QK_SEQUENCER_TEMPO_UP", + "label": "Tempo Up", "aliases": [ "SQ_TMPU" ] @@ -40,6 +45,7 @@ "0x7205": { "group": "sequencer", "key": "QK_SEQUENCER_RESOLUTION_DOWN", + "label": "Resolution Down", "aliases": [ "SQ_RESD" ] @@ -47,6 +53,7 @@ "0x7206": { "group": "sequencer", "key": "QK_SEQUENCER_RESOLUTION_UP", + "label": "Resolution Up", "aliases": [ "SQ_RESU" ] @@ -54,6 +61,7 @@ "0x7207": { "group": "sequencer", "key": "QK_SEQUENCER_STEPS_ALL", + "label": "All Steps", "aliases": [ "SQ_SALL" ] @@ -61,6 +69,7 @@ "0x7208": { "group": "sequencer", "key": "QK_SEQUENCER_STEPS_CLEAR", + "label": "Clear Steps", "aliases": [ "SQ_SCLR" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson b/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson index ddaa2c76b9..4b67c7a128 100644 --- a/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson @@ -3,6 +3,7 @@ "0x56F0": { "group": "swap_hands", "key": "QK_SWAP_HANDS_TOGGLE", + "label": "Toggle Swap Hands", "aliases": [ "SH_TOGG" ] @@ -10,6 +11,7 @@ "0x56F1": { "group": "swap_hands", "key": "QK_SWAP_HANDS_TAP_TOGGLE", + "label": "Swap Hands Tap Toggle", "aliases": [ "SH_TT" ] @@ -17,6 +19,7 @@ "0x56F2": { "group": "swap_hands", "key": "QK_SWAP_HANDS_MOMENTARY_ON", + "label": "Swap Hands Momentary On", "aliases": [ "SH_MON" ] @@ -24,6 +27,7 @@ "0x56F3": { "group": "swap_hands", "key": "QK_SWAP_HANDS_MOMENTARY_OFF", + "label": "Swap Hands Momentary Off", "aliases": [ "SH_MOFF" ] @@ -31,6 +35,7 @@ "0x56F4": { "group": "swap_hands", "key": "QK_SWAP_HANDS_OFF", + "label": "Unswap Hands", "aliases": [ "SH_OFF" ] @@ -38,6 +43,7 @@ "0x56F5": { "group": "swap_hands", "key": "QK_SWAP_HANDS_ON", + "label": "Swap Hands", "aliases": [ "SH_ON" ] @@ -45,6 +51,7 @@ "0x56F6": { "group": "swap_hands", "key": "QK_SWAP_HANDS_ONE_SHOT", + "label": "Swap Hands One Shot", "aliases": [ "SH_OS" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_user.hjson b/data/constants/keycodes/keycodes_0.0.2_user.hjson index a30e8e8eed..cfc5a538ee 100644 --- a/data/constants/keycodes/keycodes_0.0.2_user.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_user.hjson @@ -2,131 +2,163 @@ "keycodes": { "0x7E40": { "group": "user", - "key": "QK_USER_0" + "key": "QK_USER_0", + "label": "User 0" }, "0x7E41": { "group": "user", - "key": "QK_USER_1" + "key": "QK_USER_1", + "label": "User 1" }, "0x7E42": { "group": "user", - "key": "QK_USER_2" + "key": "QK_USER_2", + "label": "User 2" }, "0x7E43": { "group": "user", - "key": "QK_USER_3" + "key": "QK_USER_3", + "label": "User 3" }, "0x7E44": { "group": "user", - "key": "QK_USER_4" + "key": "QK_USER_4", + "label": "User 4" }, "0x7E45": { "group": "user", - "key": "QK_USER_5" + "key": "QK_USER_5", + "label": "User 5" }, "0x7E46": { "group": "user", - "key": "QK_USER_6" + "key": "QK_USER_6", + "label": "User 6" }, "0x7E47": { "group": "user", - "key": "QK_USER_7" + "key": "QK_USER_7", + "label": "User 7" }, "0x7E48": { "group": "user", - "key": "QK_USER_8" + "key": "QK_USER_8", + "label": "User 8" }, "0x7E49": { "group": "user", - "key": "QK_USER_9" + "key": "QK_USER_9", + "label": "User 9" }, "0x7E4A": { "group": "user", - "key": "QK_USER_10" + "key": "QK_USER_10", + "label": "User 10" }, "0x7E4B": { "group": "user", - "key": "QK_USER_11" + "key": "QK_USER_11", + "label": "User 11" }, "0x7E4C": { "group": "user", - "key": "QK_USER_12" + "key": "QK_USER_12", + "label": "User 12" }, "0x7E4D": { "group": "user", - "key": "QK_USER_13" + "key": "QK_USER_13", + "label": "User 13" }, "0x7E4E": { "group": "user", - "key": "QK_USER_14" + "key": "QK_USER_14", + "label": "User 14" }, "0x7E4F": { "group": "user", - "key": "QK_USER_15" + "key": "QK_USER_15", + "label": "User 15" }, "0x7E50": { "group": "user", - "key": "QK_USER_16" + "key": "QK_USER_16", + "label": "User 16" }, "0x7E51": { "group": "user", - "key": "QK_USER_17" + "key": "QK_USER_17", + "label": "User 17" }, "0x7E52": { "group": "user", - "key": "QK_USER_18" + "key": "QK_USER_18", + "label": "User 18" }, "0x7E53": { "group": "user", - "key": "QK_USER_19" + "key": "QK_USER_19", + "label": "User 19" }, "0x7E54": { "group": "user", - "key": "QK_USER_20" + "key": "QK_USER_20", + "label": "User 20" }, "0x7E55": { "group": "user", - "key": "QK_USER_21" + "key": "QK_USER_21", + "label": "User 21" }, "0x7E56": { "group": "user", - "key": "QK_USER_22" + "key": "QK_USER_22", + "label": "User 22" }, "0x7E57": { "group": "user", - "key": "QK_USER_23" + "key": "QK_USER_23", + "label": "User 23" }, "0x7E58": { "group": "user", - "key": "QK_USER_24" + "key": "QK_USER_24", + "label": "User 24" }, "0x7E59": { "group": "user", - "key": "QK_USER_25" + "key": "QK_USER_25", + "label": "User 25" }, "0x7E5A": { "group": "user", - "key": "QK_USER_26" + "key": "QK_USER_26", + "label": "User 26" }, "0x7E5B": { "group": "user", - "key": "QK_USER_27" + "key": "QK_USER_27", + "label": "User 27" }, "0x7E5C": { "group": "user", - "key": "QK_USER_28" + "key": "QK_USER_28", + "label": "User 28" }, "0x7E5D": { "group": "user", - "key": "QK_USER_29" + "key": "QK_USER_29", + "label": "User 29" }, "0x7E5E": { "group": "user", - "key": "QK_USER_30" + "key": "QK_USER_30", + "label": "User 30" }, "0x7E5F": { "group": "user", - "key": "QK_USER_31" + "key": "QK_USER_31", + "label": "User 31" } } } diff --git a/data/constants/keycodes/keycodes_0.0.3_quantum.hjson b/data/constants/keycodes/keycodes_0.0.3_quantum.hjson index 23a3c9b06d..e591677504 100644 --- a/data/constants/keycodes/keycodes_0.0.3_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.3_quantum.hjson @@ -3,6 +3,7 @@ "0x7C79": { "group": "quantum", "key": "QK_REPEAT_KEY", + "label": "Repeat", "aliases": [ "QK_REP" ] @@ -10,6 +11,7 @@ "0x7C7A": { "group": "quantum", "key": "QK_ALT_REPEAT_KEY", + "label": "Repeat Alternate", "aliases": [ "QK_AREP" ] diff --git a/data/constants/keycodes/keycodes_0.0.4_lighting.hjson b/data/constants/keycodes/keycodes_0.0.4_lighting.hjson index b341c664bd..479020666a 100644 --- a/data/constants/keycodes/keycodes_0.0.4_lighting.hjson +++ b/data/constants/keycodes/keycodes_0.0.4_lighting.hjson @@ -3,6 +3,7 @@ "0x7810": { "group": "led_matrix", "key": "QK_LED_MATRIX_ON", + "label": "LED Matrix On", "aliases": [ "LM_ON" ] @@ -10,6 +11,7 @@ "0x7811": { "group": "led_matrix", "key": "QK_LED_MATRIX_OFF", + "label": "LED Matrix Off", "aliases": [ "LM_OFF" ] @@ -17,6 +19,7 @@ "0x7812": { "group": "led_matrix", "key": "QK_LED_MATRIX_TOGGLE", + "label": "Toggle LED Matrix", "aliases": [ "LM_TOGG" ] @@ -24,6 +27,7 @@ "0x7813": { "group": "led_matrix", "key": "QK_LED_MATRIX_MODE_NEXT", + "label": "LED Matrix Next", "aliases": [ "LM_NEXT" ] @@ -31,6 +35,7 @@ "0x7814": { "group": "led_matrix", "key": "QK_LED_MATRIX_MODE_PREVIOUS", + "label": "LED Matrix Previous", "aliases": [ "LM_PREV" ] @@ -38,6 +43,7 @@ "0x7815": { "group": "led_matrix", "key": "QK_LED_MATRIX_BRIGHTNESS_UP", + "label": "LED Matrix Brightness Up", "aliases": [ "LM_BRIU" ] @@ -45,6 +51,7 @@ "0x7816": { "group": "led_matrix", "key": "QK_LED_MATRIX_BRIGHTNESS_DOWN", + "label": "LED Matrix Brightness Down", "aliases": [ "LM_BRID" ] @@ -52,6 +59,7 @@ "0x7817": { "group": "led_matrix", "key": "QK_LED_MATRIX_SPEED_UP", + "label": "LED Matrix Speed Up", "aliases": [ "LM_SPDU" ] @@ -59,6 +67,7 @@ "0x7818": { "group": "led_matrix", "key": "QK_LED_MATRIX_SPEED_DOWN", + "label": "LED Matrix Speed Down", "aliases": [ "LM_SPDD" ] @@ -67,6 +76,7 @@ "0x7820": { "group": "underglow", "key": "QK_UNDERGLOW_TOGGLE", + "label": "Toggle RGB Underglow", "aliases": [ "UG_TOGG" ] @@ -74,6 +84,7 @@ "0x7821": { "group": "underglow", "key": "QK_UNDERGLOW_MODE_NEXT", + "label": "RGB Underglow Next", "aliases": [ "!reset!", "UG_NEXT" @@ -82,6 +93,7 @@ "0x7822": { "group": "underglow", "key": "QK_UNDERGLOW_MODE_PREVIOUS", + "label": "RGB Underglow Previous", "aliases": [ "!reset!", "UG_PREV" @@ -90,6 +102,7 @@ "0x7823": { "group": "underglow", "key": "QK_UNDERGLOW_HUE_UP", + "label": "RGB Underglow Hue Up", "aliases": [ "UG_HUEU" ] @@ -97,6 +110,7 @@ "0x7824": { "group": "underglow", "key": "QK_UNDERGLOW_HUE_DOWN", + "label": "RGB Underglow Hue Down", "aliases": [ "UG_HUED" ] @@ -104,6 +118,7 @@ "0x7825": { "group": "underglow", "key": "QK_UNDERGLOW_SATURATION_UP", + "label": "RGB Underglow Saturation Up", "aliases": [ "UG_SATU" ] @@ -111,6 +126,7 @@ "0x7826": { "group": "underglow", "key": "QK_UNDERGLOW_SATURATION_DOWN", + "label": "RGB Underglow Saturation Down", "aliases": [ "UG_SATD" ] @@ -118,6 +134,7 @@ "0x7827": { "group": "underglow", "key": "QK_UNDERGLOW_VALUE_UP", + "label": "RGB Underglow Value Up", "aliases": [ "UG_VALU" ] @@ -125,6 +142,7 @@ "0x7828": { "group": "underglow", "key": "QK_UNDERGLOW_VALUE_DOWN", + "label": "RGB Underglow Value Down", "aliases": [ "UG_VALD" ] @@ -132,6 +150,7 @@ "0x7829": { "group": "underglow", "key": "QK_UNDERGLOW_SPEED_UP", + "label": "RGB Underglow Speed Up", "aliases": [ "UG_SPDU" ] @@ -139,6 +158,7 @@ "0x782A": { "group": "underglow", "key": "QK_UNDERGLOW_SPEED_DOWN", + "label": "RGB Underglow Speed Down", "aliases": [ "UG_SPDD" ] @@ -147,6 +167,7 @@ "0x7840": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_ON", + "label": "RGB Matrix On", "aliases": [ "RM_ON" ] @@ -154,6 +175,7 @@ "0x7841": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_OFF", + "label": "RGB Matrix Off" "aliases": [ "RM_OFF" ] @@ -161,6 +183,7 @@ "0x7842": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_TOGGLE", + "label": "Toggle RGB Matrix", "aliases": [ "RM_TOGG" ] @@ -168,6 +191,7 @@ "0x7843": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_MODE_NEXT", + "label": "RGB Matrix Next", "aliases": [ "RM_NEXT" ] @@ -175,6 +199,7 @@ "0x7844": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_MODE_PREVIOUS", + "label": "RGB Matrix Previous", "aliases": [ "RM_PREV" ] @@ -182,6 +207,7 @@ "0x7845": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_HUE_UP", + "label": "RGB Matrix Hue Up", "aliases": [ "RM_HUEU" ] @@ -189,6 +215,7 @@ "0x7846": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_HUE_DOWN", + "label": "RGB Matrix Hue Down", "aliases": [ "RM_HUED" ] @@ -196,6 +223,7 @@ "0x7847": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SATURATION_UP", + "label": "RGB Matrix Saturation Up", "aliases": [ "RM_SATU" ] @@ -203,6 +231,7 @@ "0x7848": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SATURATION_DOWN", + "label": "RGB Matrix Saturation Down", "aliases": [ "RM_SATD" ] @@ -210,6 +239,7 @@ "0x7849": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_VALUE_UP", + "label": "RGB Matrix Value Up", "aliases": [ "RM_VALU" ] @@ -217,6 +247,7 @@ "0x784A": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_VALUE_DOWN", + "label": "RGB Matrix Value Down", "aliases": [ "RM_VALD" ] @@ -224,6 +255,7 @@ "0x784B": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SPEED_UP", + "label": "RGB Matrix Speed Up", "aliases": [ "RM_SPDU" ] @@ -231,6 +263,7 @@ "0x784C": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SPEED_DOWN", + "label": "RGB Matrix Speed Down", "aliases": [ "RM_SPDD" ] diff --git a/data/constants/keycodes/keycodes_0.0.5_basic.hjson b/data/constants/keycodes/keycodes_0.0.5_basic.hjson index 79b6bf6596..40ce772acf 100644 --- a/data/constants/keycodes/keycodes_0.0.5_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.5_basic.hjson @@ -3,7 +3,7 @@ "0x00CD": { "group": "mouse", "key": "QK_MOUSE_CURSOR_UP", - "label": "Mouse cursor up", + "label": "Mouse Up", "aliases": [ "!reset!", "MS_UP" @@ -12,7 +12,7 @@ "0x00CE": { "group": "mouse", "key": "QK_MOUSE_CURSOR_DOWN", - "label": "Mouse cursor down", + "label": "Mouse Down", "aliases": [ "!reset!", "MS_DOWN" @@ -21,7 +21,7 @@ "0x00CF": { "group": "mouse", "key": "QK_MOUSE_CURSOR_LEFT", - "label": "Mouse cursor left", + "label": "Mouse Left", "aliases": [ "!reset!", "MS_LEFT" @@ -30,7 +30,7 @@ "0x00D0": { "group": "mouse", "key": "QK_MOUSE_CURSOR_RIGHT", - "label": "Mouse cursor right", + "label": "Mouse Right", "aliases": [ "!reset!", "MS_RGHT" @@ -39,7 +39,7 @@ "0x00D1": { "group": "mouse", "key": "QK_MOUSE_BUTTON_1", - "label": "Mouse button 1", + "label": "Mouse Button 1", "aliases": [ "!reset!", "MS_BTN1" @@ -48,7 +48,7 @@ "0x00D2": { "group": "mouse", "key": "QK_MOUSE_BUTTON_2", - "label": "Mouse button 2", + "label": "Mouse Button 2", "aliases": [ "!reset!", "MS_BTN2" @@ -57,7 +57,7 @@ "0x00D3": { "group": "mouse", "key": "QK_MOUSE_BUTTON_3", - "label": "Mouse button 3", + "label": "Mouse Button 3", "aliases": [ "!reset!", "MS_BTN3" @@ -66,7 +66,7 @@ "0x00D4": { "group": "mouse", "key": "QK_MOUSE_BUTTON_4", - "label": "Mouse button 4", + "label": "Mouse Button 4", "aliases": [ "!reset!", "MS_BTN4" @@ -75,7 +75,7 @@ "0x00D5": { "group": "mouse", "key": "QK_MOUSE_BUTTON_5", - "label": "Mouse button 5", + "label": "Mouse Button 5", "aliases": [ "!reset!", "MS_BTN5" @@ -84,7 +84,7 @@ "0x00D6": { "group": "mouse", "key": "QK_MOUSE_BUTTON_6", - "label": "Mouse button 6", + "label": "Mouse Button 6", "aliases": [ "!reset!", "MS_BTN6" @@ -93,7 +93,7 @@ "0x00D7": { "group": "mouse", "key": "QK_MOUSE_BUTTON_7", - "label": "Mouse button 7", + "label": "Mouse Button 7", "aliases": [ "!reset!", "MS_BTN7" @@ -102,7 +102,7 @@ "0x00D8": { "group": "mouse", "key": "QK_MOUSE_BUTTON_8", - "label": "Mouse button 8", + "label": "Mouse Button 8", "aliases": [ "!reset!", "MS_BTN8" @@ -111,7 +111,7 @@ "0x00D9": { "group": "mouse", "key": "QK_MOUSE_WHEEL_UP", - "label": "Mouse wheel up", + "label": "Mouse Wheel Up", "aliases": [ "!reset!", "MS_WHLU" @@ -120,7 +120,7 @@ "0x00DA": { "group": "mouse", "key": "QK_MOUSE_WHEEL_DOWN", - "label": "Mouse wheel down", + "label": "Mouse Wheel Down", "aliases": [ "!reset!", "MS_WHLD" @@ -129,7 +129,7 @@ "0x00DB": { "group": "mouse", "key": "QK_MOUSE_WHEEL_LEFT", - "label": "Mouse wheel left", + "label": "Mouse Wheel Left", "aliases": [ "!reset!", "MS_WHLL" @@ -138,7 +138,7 @@ "0x00DC": { "group": "mouse", "key": "QK_MOUSE_WHEEL_RIGHT", - "label": "Mouse wheel right", + "label": "Mouse Wheel Right", "aliases": [ "!reset!", "MS_WHLR" @@ -147,7 +147,7 @@ "0x00DD": { "group": "mouse", "key": "QK_MOUSE_ACCELERATION_0", - "label": "Set mouse acceleration to 0", + "label": "Acceleration 0", "aliases": [ "!reset!", "MS_ACL0" @@ -156,7 +156,7 @@ "0x00DE": { "group": "mouse", "key": "QK_MOUSE_ACCELERATION_1", - "label": "Set mouse acceleration to 1", + "label": "Acceleration 1", "aliases": [ "!reset!", "MS_ACL1" @@ -165,7 +165,7 @@ "0x00DF": { "group": "mouse", "key": "QK_MOUSE_ACCELERATION_2", - "label": "Set mouse acceleration to 2", + "label": "Acceleration 2", "aliases": [ "!reset!", "MS_ACL2" diff --git a/data/constants/keycodes/keycodes_0.0.6_connection.hjson b/data/constants/keycodes/keycodes_0.0.6_connection.hjson index 9be1106825..e5fab9bd5a 100644 --- a/data/constants/keycodes/keycodes_0.0.6_connection.hjson +++ b/data/constants/keycodes/keycodes_0.0.6_connection.hjson @@ -8,6 +8,7 @@ "0x7780": { "group": "connection", "key": "QK_OUTPUT_AUTO", + "label": "Output Auto", "aliases": [ "OU_AUTO" ] @@ -15,6 +16,7 @@ "0x7781": { "group": "connection", "key": "QK_OUTPUT_NEXT", + "label": "Next Output", "aliases": [ "OU_NEXT" ] @@ -22,6 +24,7 @@ "0x7782": { "group": "connection", "key": "QK_OUTPUT_PREV", + "label": "Previous Output", "aliases": [ "OU_PREV" ] @@ -29,6 +32,7 @@ "0x7783": { "group": "connection", "key": "QK_OUTPUT_NONE", + "label": "None", "aliases": [ "OU_NONE" ] @@ -36,6 +40,7 @@ "0x7784": { "group": "connection", "key": "QK_OUTPUT_USB", + "label": "USB", "aliases": [ "OU_USB" ] @@ -43,6 +48,7 @@ "0x7785": { "group": "connection", "key": "QK_OUTPUT_2P4GHZ", + "label": "2.4GHz", "aliases": [ "OU_2P4G" ] @@ -50,6 +56,7 @@ "0x7786": { "group": "connection", "key": "QK_OUTPUT_BLUETOOTH", + "label": "Bluetooth", "aliases": [ "OU_BT" ] @@ -58,6 +65,7 @@ "0x7790": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE_NEXT", + "label": "Bluetooth Profile Next", "aliases": [ "BT_NEXT" ] @@ -65,6 +73,7 @@ "0x7791": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE_PREV", + "label": "Bluetooth Profile Previous", "aliases": [ "BT_PREV" ] @@ -72,6 +81,7 @@ "0x7792": { "group": "connection", "key": "QK_BLUETOOTH_UNPAIR", + "label": "Unpair", "aliases": [ "BT_UNPR" ] @@ -79,6 +89,7 @@ "0x7793": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE1", + "label": "Bluetooth Profile 1", "aliases": [ "BT_PRF1" ] @@ -86,6 +97,7 @@ "0x7794": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE2", + "label": "Bluetooth Profile 2", "aliases": [ "BT_PRF2" ] @@ -93,6 +105,7 @@ "0x7795": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE3", + "label": "Bluetooth Profile 3", "aliases": [ "BT_PRF3" ] @@ -100,6 +113,7 @@ "0x7796": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE4", + "label": "Bluetooth Profile 4", "aliases": [ "BT_PRF4" ] @@ -107,6 +121,7 @@ "0x7797": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE5", + "label": "Bluetooth Profile 5", "aliases": [ "BT_PRF5" ] diff --git a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson index be3285f9e4..1dead0588b 100644 --- a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson @@ -6,6 +6,7 @@ "0x7C7B": { "group": "quantum", "key": "QK_LAYER_LOCK", + "label": "Layer Lock", "aliases": [ "QK_LLCK" ] diff --git a/data/constants/keycodes/keycodes_0.0.8.hjson b/data/constants/keycodes/keycodes_0.0.8.hjson new file mode 100644 index 0000000000..e69de29bb2 diff --git a/data/constants/keycodes/keycodes_0.0.8_lighting.hjson b/data/constants/keycodes/keycodes_0.0.8_lighting.hjson new file mode 100644 index 0000000000..fa7227235e --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.8_lighting.hjson @@ -0,0 +1,37 @@ +{ + "keycodes": { + "0x7819": { + "group": "led_matrix", + "key": "QK_LED_MATRIX_FLAG_NEXT", + "label": "LED Matrix Flag Next", + "aliases": [ + "LM_FLGN" + ] + }, + "0x781A": { + "group": "led_matrix", + "key": "QK_LED_MATRIX_FLAG_PREVIOUS", + "label": "LED Matrix Flag Previous", + "aliases": [ + "LM_FLGP" + ] + }, + + "0x784D": { + "group": "rgb_matrix", + "key": "QK_RGB_MATRIX_FLAG_NEXT", + "label": "RGB Matrix Flag Next", + "aliases": [ + "RM_FLGN" + ] + }, + "0x784E": { + "group": "rgb_matrix", + "key": "QK_RGB_MATRIX_FLAG_PREVIOUS", + "label": "RGB Matrix Flag Previous", + "aliases": [ + "RM_FLGP" + ] + } + } +} diff --git a/data/constants/module_hooks/1.1.2.hjson b/data/constants/module_hooks/1.1.2.hjson new file mode 100644 index 0000000000..3d4d100f83 --- /dev/null +++ b/data/constants/module_hooks/1.1.2.hjson @@ -0,0 +1,3 @@ +{ + // This version exists to signify addition of split data sync support. +} diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 4c53aa4339..e86932e9dd 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -19,6 +19,8 @@ // Audio "AUDIO_DEFAULT_ON": {"info_key": "audio.default.on", "value_type": "bool"}, "AUDIO_DEFAULT_CLICKY_ON": {"info_key": "audio.default.clicky", "value_type": "bool"}, + "AUDIO_PIN": {"info_key": "audio.pins.0"}, + "AUDIO_PIN_ALT": {"info_key": "audio.pins.1"}, "AUDIO_POWER_CONTROL_PIN": {"info_key": "audio.power_control.pin"}, "AUDIO_POWER_CONTROL_PIN_ON_STATE": {"info_key": "audio.power_control.on_state", "value_type": "int" }, "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "flag"}, @@ -98,6 +100,7 @@ // LED Matrix "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, + "LED_MATRIX_FLAG_STEPS": {"info_key": "led_matrix.flag_steps", "value_type": "array.int"}, "LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "flag"}, "LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"}, "LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false}, @@ -111,6 +114,7 @@ "LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"}, "LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"}, "LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"}, + "LED_MATRIX_DEFAULT_FLAGS": {"info_key": "led_matrix.default.flags", "value_type": "int"}, // Locking Switch "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "flag"}, @@ -147,6 +151,7 @@ // RGB Matrix "RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, + "RGB_MATRIX_FLAG_STEPS": {"info_key": "rgb_matrix.flag_steps", "value_type": "array.int"}, "RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"}, "RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "flag"}, "RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"}, @@ -164,6 +169,7 @@ "RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"}, "RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"}, "RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"}, + "RGB_MATRIX_DEFAULT_FLAGS": {"info_key": "rgb_matrix.default.flags", "value_type": "int"}, // RGBLight "RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"}, @@ -192,7 +198,7 @@ // Split Keyboard "SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"}, - "SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed"}, + "SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed", "value_type": "int"}, "SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false}, "SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"}, @@ -220,6 +226,9 @@ "PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "flag"}, "RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "flag"}, "RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "flag"}, + "SPECULATIVE_HOLD": {"info_key": "tapping.speculative_hold", "value_type": "flag"}, + "SPECULATIVE_HOLD_FLOW_TERM": {"info_key": "tapping.speculative_hold_flow_term", "value_type": "int"}, + "SPECULATIVE_HOLD_ONE_KEY": {"info_key": "tapping.speculative_hold_one_key", "value_type": "flag"}, "TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"}, "TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"}, "TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"}, @@ -264,9 +273,9 @@ "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"}, "VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"}, - "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag", "deprecated": true, "replace_with": "`host.default.nkro` in info.json"}, // Items we want flagged in lint + "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag", "invalid": true, "replace_with": "`host.default.nkro` in info.json"}, "VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true}, "VIAL_UNLOCK_COMBO_COLS": {"info_key": "_invalid.vial_unlock_cols", "invalid": true}, "VIAL_UNLOCK_COMBO_ROWS": {"info_key": "_invalid.vial_unlock_rows", "invalid": true} diff --git a/data/mappings/info_defaults.hjson b/data/mappings/info_defaults.hjson index b33cb4fa1f..fd59dacac0 100644 --- a/data/mappings/info_defaults.hjson +++ b/data/mappings/info_defaults.hjson @@ -11,6 +11,9 @@ "on_state": 1 }, "debounce": 5, + "dynamic_keymap": { + "layer_count": 4 + }, "features": { "command": false, "console": false @@ -23,7 +26,8 @@ "animation": "solid", "on": true, "val": 255, - "speed": 128 + "speed": 128, + "flags": 255 }, "led_flush_limit": 16, "max_brightness": 255, @@ -53,7 +57,8 @@ "hue": 0, "sat": 255, "val": 255, - "speed": 128 + "speed": 128, + "flags": 255 }, "hue_steps": 8, "led_flush_limit": 16, diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 3978235e20..71a7e880a3 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1620,8 +1620,11 @@ "0_sixty": { "target": "0_sixty/base" }, - "0xcb/splaytoraid": { - "target": "0xcb/splaytoraid/rp2040_ce" + "0xcb/splaytoraid/32u4": { + "target": "0xcb/splaytoraid" + }, + "0xcb/splaytoraid/rp2040_ce": { + "target": "0xcb/splaytoraid" }, "1upkeyboards/pi40": { "target": "1upkeyboards/pi40/mit_v1_0" @@ -1632,12 +1635,24 @@ "1upkeyboards/sweet16": { "target": "1upkeyboards/sweet16/v1" }, + "1upkeyboards/sweet16v2/kb2040": { + "target": "1upkeyboards/sweet16v2" + }, + "1upkeyboards/sweet16v2/pro_micro": { + "target": "1upkeyboards/sweet16v2" + }, "25keys/aleth42": { "target": "25keys/aleth42/rev1" }, "25keys/zinc": { "target": "25keys/zinc/rev1" }, + "40percentclub/gherkin/kb2040": { + "target": "40percentclub/gherkin" + }, + "40percentclub/gherkin/pro_micro": { + "target": "40percentclub/gherkin" + }, "40percentclub/i75": { "target": "40percentclub/i75/promicro" }, @@ -1735,7 +1750,7 @@ "target": "durgod/dgk6x/galaxy" }, "durgod/venus": { - "target": "durgod/dgk6x/venus" + "target": "durgod/dgk6x/venus_ansi" }, "dztech/tofu/ii": { "target": "dztech/tofu/ii/v1" diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 93b1c82b1c..ef2b4802a4 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -46,7 +46,8 @@ "manufacturer": {"$ref": "./definitions.jsonschema#/text_identifier"}, "url": { "type": "string", - "format": "uri" + "format": "uri", + "minLength": 1 }, "development_board": { "type": "string", @@ -333,6 +334,17 @@ } } }, + "dynamic_keymap": { + "type": "object", + "properties": { + "eeprom_max_addr": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "layer_count": { + "type": "integer", + "minimum": 1, + "maximum": 32 + } + } + }, "eeprom": { "properties": { "driver": {"type": "string"}, @@ -543,7 +555,8 @@ "on": {"type": "boolean"}, "animation": {"type": "string"}, "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} } }, "driver": { @@ -571,6 +584,11 @@ "maxItems": 2, "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} }, + "flag_steps": { + "type": "array", + "minItems": 1, + "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + }, "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, @@ -626,7 +644,8 @@ "hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} } }, "driver": { @@ -656,6 +675,11 @@ "maxItems": 2, "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} }, + "flag_steps": { + "type": "array", + "minItems": 1, + "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + }, "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, @@ -969,6 +993,7 @@ "type": "object", "properties": { "chordal_hold": {"type": "boolean"}, + "flow_tap_term": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "force_hold": {"type": "boolean"}, "force_hold_per_key": {"type": "boolean"}, "ignore_mod_tap_interrupt": {"type": "boolean"}, @@ -978,6 +1003,9 @@ "permissive_hold_per_key": {"type": "boolean"}, "retro": {"type": "boolean"}, "retro_per_key": {"type": "boolean"}, + "speculative_hold": {"type": "boolean"}, + "speculative_hold_flow_term": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "speculative_hold_one_key": {"type": "boolean"}, "term": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "term_per_key": {"type": "boolean"}, "toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"} diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 99aeaa6b6c..71b39fc7c4 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -35,6 +35,17 @@ } } }, + "dip_switches": { + "type": "array", + "items": { + "type": "object", + "required": ["on", "off"], + "properties": { + "on": {"type": "string"}, + "off": {"type": "string"} + } + } + }, "macros": { "type": "array", "items": { diff --git a/docs/ChangeLog/20251130.md b/docs/ChangeLog/20251130.md new file mode 100644 index 0000000000..b86d630fa8 --- /dev/null +++ b/docs/ChangeLog/20251130.md @@ -0,0 +1,190 @@ +# QMK Breaking Changes - 2025 Nov 30 Changelog + +## Notable Features {#notable-features} + +### Speculative Hold option for mod-taps: hold mods instantly while unsettled [#25572](https://github.com/qmk/qmk_firmware/pull/25572) + +Speculative Hold makes mod-tap keys more responsive by applying the modifier instantly on keydown, before the tap-hold decision is made. This is especially useful for actions like Shift+click and Ctrl+scroll wheel with an external mouse, which can feel laggy with standard mod-taps. + +The firmware holds the modifier speculatively. Once the key's behavior is settled: + +* If held, the modifier remains active as expected until the key is released. +* If tapped, the speculative modifier is canceled just before the tapping keycode is sent. + +Speculative Hold applies the modifier early but does not change the underlying tap-hold decision logic. Speculative Hold is compatible to use in combination with any other tap-hold options. + +see the [Speculative Hold](../tap_hold#speculative-hold) documentation for more information. + +## Changes Requiring User Action + +### Updated Keyboard Codebases + +| Old Keyboard Name | New Keyboard Name | +|----------------------------------|-------------------------| +| 0xcb/splaytoraid/32u4 | 0xcb/splaytoraid | +| 0xcb/splaytoraid/rp2040_ce | 0xcb/splaytoraid | +| 1upkeyboards/sweet16v2/kb2040 | 1upkeyboards/sweet16v2 | +| 1upkeyboards/sweet16v2/pro_micro | 1upkeyboards/sweet16v2 | +| 40percentclub/gherkin/kb2040 | 40percentclub/gherkin | +| 40percentclub/gherkin/pro_micro | 40percentclub/gherkin | +| durgod/dgk6x/venus | durgod/dgk6x/venus_ansi | + +### Reduce tap dance memory usage, move state out of data [#25415](https://github.com/qmk/qmk_firmware/pull/25415) + +The tap dance state has been separated from the action structure. Custom tap dance functions now receive the state as a separate parameter instead of accessing it through `action->state`. + +If your keymap uses custom tap dance functions that access the tap dance state, you need to update your code. + +* You can't use `action->state`. Instead you need to call `tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx)` to get the state. +* You now get a pointer to the state, so use `->` notation rather than `.` notation to get fields from it. + +### Before: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + + switch (keycode) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + + } + return true; +} +``` +### After: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + tap_dance_state_t* state; + switch (keycode) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + } + return true; +} +``` + +## Deprecation Notices + +In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. + +### Remove override of QK_{LED,RGB}_MATRIX_TOGGLE keycode [#25672](https://github.com/qmk/qmk_firmware/pull/25672) + +[#24649](https://github.com/qmk/qmk_firmware/pull/24649) implemented genetic behavior, including keycodes, to cycle flags. + +Any overriding of existing keycodes that duplicate this behavior will be removed to ensure consistency with core functionality. + +## Full changelist + +Core: +* suspend: suppress wake up keypress ([#23389](https://github.com/qmk/qmk_firmware/pull/23389)) +* [Feature Improvement]add option to keep layer state when recording dynamic macros ([#24418](https://github.com/qmk/qmk_firmware/pull/24418)) +* Add generic handling to cycle LED/RGB Matrix flags ([#24649](https://github.com/qmk/qmk_firmware/pull/24649)) +* Implement `mod_t` packed struct ([#25168](https://github.com/qmk/qmk_firmware/pull/25168)) +* Implement minimal connection update logic ([#25334](https://github.com/qmk/qmk_firmware/pull/25334)) +* Reduce tap dance memory usage, move state out of data ([#25415](https://github.com/qmk/qmk_firmware/pull/25415)) +* Refactor debounce algorithm with static allocation ([#25515](https://github.com/qmk/qmk_firmware/pull/25515)) +* Restructure Pixel Rain interval code ([#25516](https://github.com/qmk/qmk_firmware/pull/25516)) +* Guard remapping logic with MAGIC_ENABLE ([#25537](https://github.com/qmk/qmk_firmware/pull/25537)) +* Update default OLED font ([#25565](https://github.com/qmk/qmk_firmware/pull/25565)) +* Speculative Hold option for mod-taps: hold mods instantly while unsettled. ([#25572](https://github.com/qmk/qmk_firmware/pull/25572)) +* Simplify hue calculation in raindrops animation ([#25587](https://github.com/qmk/qmk_firmware/pull/25587)) +* Simplify tap_code16_delay ([#25595](https://github.com/qmk/qmk_firmware/pull/25595)) +* Debounce: Deprecate num_rows parameter ([#25632](https://github.com/qmk/qmk_firmware/pull/25632)) +* Add I2C Transmit and Receive function ([#25637](https://github.com/qmk/qmk_firmware/pull/25637)) +* [QP] Minor cleanup and support for RGB888 surface ([#25706](https://github.com/qmk/qmk_firmware/pull/25706)) +* Restrict mouse timer activation to movement keycodes ([#25716](https://github.com/qmk/qmk_firmware/pull/25716)) +* Update STM32F446 default HSE to 8MHz ([#25717](https://github.com/qmk/qmk_firmware/pull/25717)) +* making flowtap timer public so it can be used easily with combos ([#25731](https://github.com/qmk/qmk_firmware/pull/25731)) +* Add PixArt PAW-3222 mouse sensor driver ([#25763](https://github.com/qmk/qmk_firmware/pull/25763)) +* Merge upstream uf2conv changes ([#25786](https://github.com/qmk/qmk_firmware/pull/25786)) +* Partially skip generating community modules when none enabled ([#25819](https://github.com/qmk/qmk_firmware/pull/25819)) + +CLI: +* Generate default encoder resolution for sparse config ([#25247](https://github.com/qmk/qmk_firmware/pull/25247)) +* Add DIP Switch map support to keymap.json ([#25431](https://github.com/qmk/qmk_firmware/pull/25431)) +* Add return code to `qmk userspace-doctor` ([#25775](https://github.com/qmk/qmk_firmware/pull/25775)) +* Better defaulting of `{RGB,LED}_MATRIX_DEFAULT_FLAGS` ([#25785](https://github.com/qmk/qmk_firmware/pull/25785)) +* add BCD versions of QMK Version ([#25804](https://github.com/qmk/qmk_firmware/pull/25804)) +* Lint error on missing keyboard readme ([#25814](https://github.com/qmk/qmk_firmware/pull/25814)) + +Submodule updates: +* Update ChibiOS-Contrib. ([#25751](https://github.com/qmk/qmk_firmware/pull/25751)) + +Keyboards: +* `atreus`: restore intended matrix implementations ([#24082](https://github.com/qmk/qmk_firmware/pull/24082)) +* add SteelSeries prime, a stripped down prime+ ([#24719](https://github.com/qmk/qmk_firmware/pull/24719)) +* Add new macropad Sharkropad ([#24961](https://github.com/qmk/qmk_firmware/pull/24961)) +* Addition of the D60B tsangan pcb ([#25245](https://github.com/qmk/qmk_firmware/pull/25245)) +* Migrate `eeconfig_init_kb` implementations to config ([#25422](https://github.com/qmk/qmk_firmware/pull/25422)) +* Generate `CUSTOM_MATRIX = lite` without `matrix_pins.custom` ([#25453](https://github.com/qmk/qmk_firmware/pull/25453)) +* Add classic48 keyboard ([#25492](https://github.com/qmk/qmk_firmware/pull/25492)) +* add durgod venus iso support ([#25526](https://github.com/qmk/qmk_firmware/pull/25526)) +* Migrate `g_led_config` to DD (0-9, A) ([#25558](https://github.com/qmk/qmk_firmware/pull/25558)) +* Migrate `g_led_config` to DD (B, C) ([#25559](https://github.com/qmk/qmk_firmware/pull/25559)) +* Migrate `g_led_config` to DD (D) ([#25560](https://github.com/qmk/qmk_firmware/pull/25560)) +* Migrate `g_led_config` to DD (E, F) ([#25561](https://github.com/qmk/qmk_firmware/pull/25561)) +* Remove duplication of RP2040 config defaults ([#25563](https://github.com/qmk/qmk_firmware/pull/25563)) +* Refactor 40percentclub/ut47 ([#25571](https://github.com/qmk/qmk_firmware/pull/25571)) +* E7-V2 Implementation ([#25594](https://github.com/qmk/qmk_firmware/pull/25594)) +* Migrate `g_led_config` to DD (G) ([#25598](https://github.com/qmk/qmk_firmware/pull/25598)) +* Migrate `g_led_config` to DD (H) ([#25599](https://github.com/qmk/qmk_firmware/pull/25599)) +* Migrate `g_led_config` to DD (I) ([#25600](https://github.com/qmk/qmk_firmware/pull/25600)) +* Migrate `g_led_config` to DD (JK1) ([#25601](https://github.com/qmk/qmk_firmware/pull/25601)) +* Migrate `g_led_config` to DD (K2) ([#25602](https://github.com/qmk/qmk_firmware/pull/25602)) +* Migrate `g_led_config` to DD (K3) ([#25603](https://github.com/qmk/qmk_firmware/pull/25603)) +* Migrate `g_led_config` to DD (K4) ([#25605](https://github.com/qmk/qmk_firmware/pull/25605)) +* Migrate `g_led_config` to DD (K5) ([#25606](https://github.com/qmk/qmk_firmware/pull/25606)) +* Migrate `g_led_config` to DD (K6) ([#25607](https://github.com/qmk/qmk_firmware/pull/25607)) +* Refactor `40percentclub/gherkin` ([#25608](https://github.com/qmk/qmk_firmware/pull/25608)) +* Refactor `0xcb/splaytoraid` ([#25609](https://github.com/qmk/qmk_firmware/pull/25609)) +* Refactor `1upkeyboards/sweet16v2` ([#25610](https://github.com/qmk/qmk_firmware/pull/25610)) +* Migrate `g_led_config` to DD (K7) ([#25616](https://github.com/qmk/qmk_firmware/pull/25616)) +* Migrate `g_led_config` to DD (L) ([#25617](https://github.com/qmk/qmk_firmware/pull/25617)) +* Migrate `g_led_config` to DD (M1) ([#25618](https://github.com/qmk/qmk_firmware/pull/25618)) +* Migrate `g_led_config` to DD (M2) ([#25619](https://github.com/qmk/qmk_firmware/pull/25619)) +* Migrate `g_led_config` to DD (M3) ([#25620](https://github.com/qmk/qmk_firmware/pull/25620)) +* Migrate `g_led_config` to DD (NO) ([#25621](https://github.com/qmk/qmk_firmware/pull/25621)) +* Migrate `g_led_config` to DD (P) ([#25622](https://github.com/qmk/qmk_firmware/pull/25622)) +* Migrate `g_led_config` to DD (QR) ([#25623](https://github.com/qmk/qmk_firmware/pull/25623)) +* Migrate `g_led_config` to DD (S) ([#25624](https://github.com/qmk/qmk_firmware/pull/25624)) +* Migrate `g_led_config` to DD (TUW) ([#25625](https://github.com/qmk/qmk_firmware/pull/25625)) +* Remove idobao *_DISABLE_UNDERGLOW behaviour ([#25638](https://github.com/qmk/qmk_firmware/pull/25638)) +* Migrate `g_led_config` to DD (YZ) ([#25650](https://github.com/qmk/qmk_firmware/pull/25650)) +* Tidy Keebio keyboards ([#25653](https://github.com/qmk/qmk_firmware/pull/25653)) +* Remove encoder resolution where duplicating defaults ([#25654](https://github.com/qmk/qmk_firmware/pull/25654)) +* Custom oled fonts cleanup ([#25665](https://github.com/qmk/qmk_firmware/pull/25665)) +* Binepad KnobX1 - refactor `x1_layer_led` function as weak ([#25668](https://github.com/qmk/qmk_firmware/pull/25668)) +* Add DD {LED,RGB}_MATRIX_DEFAULT_FLAGS support ([#25671](https://github.com/qmk/qmk_firmware/pull/25671)) +* keyboards: Add Royal Kludge RK61 ([#25694](https://github.com/qmk/qmk_firmware/pull/25694)) +* Add TRKeyboard TRK2 keyboard ([#25754](https://github.com/qmk/qmk_firmware/pull/25754)) + +Keyboard fixes: +* Fixup `kprepublic/bm60hsrgb/rev2` ([#25644](https://github.com/qmk/qmk_firmware/pull/25644)) +* Fixup `kprepublic/bm60hsrgb_iso/rev2` ([#25648](https://github.com/qmk/qmk_firmware/pull/25648)) +* Fixup `kprepublic/bm60hsrgb_poker/rev2` ([#25649](https://github.com/qmk/qmk_firmware/pull/25649)) +* Fixup `rgbkb/pan` ([#25678](https://github.com/qmk/qmk_firmware/pull/25678)) +* Align use of keymap level `_kb` callbacks ([#25774](https://github.com/qmk/qmk_firmware/pull/25774)) + +Others: +* Rework converter docs ([#18314](https://github.com/qmk/qmk_firmware/pull/18314)) +* Update USBaspLoader ISP instructions ([#25590](https://github.com/qmk/qmk_firmware/pull/25590)) +* Add LED/RGB Matrix flags API docs ([#25673](https://github.com/qmk/qmk_firmware/pull/25673)) + +Bugs: +* Fix single key combos activating only once ([#25198](https://github.com/qmk/qmk_firmware/pull/25198)) +* Fix RGB matrix not syncing and turning off properly on timeout ([#25467](https://github.com/qmk/qmk_firmware/pull/25467)) +* Fix drv haptics docs by using the correct function name ([#25733](https://github.com/qmk/qmk_firmware/pull/25733)) +* Fix Magic GUI masking logic ([#25780](https://github.com/qmk/qmk_firmware/pull/25780)) +* Fix Speculative Hold to enable also right-handed RSFT, RCTL by default. ([#25797](https://github.com/qmk/qmk_firmware/pull/25797)) +* Fix community layout keymap discovery ([#25802](https://github.com/qmk/qmk_firmware/pull/25802)) +* Fix preference of output file for 'qmk generate-autocorrect-data' ([#25818](https://github.com/qmk/qmk_firmware/pull/25818)) diff --git a/docs/ChangeLog/20260222.md b/docs/ChangeLog/20260222.md new file mode 100644 index 0000000000..462c9e6521 --- /dev/null +++ b/docs/ChangeLog/20260222.md @@ -0,0 +1,75 @@ +# QMK Breaking Changes - 2026 Feb 22 Changelog + +## Deprecation Notices + +### Removal of deprecated GPIO defines ([#26028](https://github.com/qmk/qmk_firmware/pull/26028)) + +QMK has long used Arduino-style GPIO naming conventions. This has been confusing for users, as over time they've had new variations added, as well as users mistakenly thinking that QMK supports the rest of the Arduino ecosystem. + +The decision was made to rename the GPIO manipulation functions with ones matching QMK Firmware's code styling. + +Previous backwards compatibility has now been removed. see the [GPIO Control](../drivers/gpio#macros) documentation for more information. + +### Removal of deprecated isLeftHand ([25897](https://github.com/qmk/qmk_firmware/pull/25897)) + +Users should migrate to `is_keyboard_left()` found in `split_util.h` instead. For example: + +```diff +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +- return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; ++ return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; +} +``` + +The deprecated variable `isLeftHand` will be removed in a future breaking changes cycle. + +## Full changelist + +Core: +* Refactor Makefile logic for locating keymaps ([#25808](https://github.com/qmk/qmk_firmware/pull/25808)) +* Move shutdown delay to audio feature ([#25859](https://github.com/qmk/qmk_firmware/pull/25859)) +* Refactor core use of deprecated `isLeftHand` ([#25888](https://github.com/qmk/qmk_firmware/pull/25888)) +* Allow custom data sync for community modules ([#25955](https://github.com/qmk/qmk_firmware/pull/25955)) +* Remove an unreachable break statement ([#26006](https://github.com/qmk/qmk_firmware/pull/26006)) +* Remove duplicate host.h ([#26007](https://github.com/qmk/qmk_firmware/pull/26007)) +* Remove redundant EEPROM update ([#26008](https://github.com/qmk/qmk_firmware/pull/26008)) +* Remove redundant unsigned comparison in apa102_set_brightness ([#26010](https://github.com/qmk/qmk_firmware/pull/26010)) +* Remove unused headers ([#26011](https://github.com/qmk/qmk_firmware/pull/26011)) +* Return INVALID_DEFERRED_TOKEN on allocation failure ([#26012](https://github.com/qmk/qmk_firmware/pull/26012)) +* Remove deprecated GPIO defines ([#26028](https://github.com/qmk/qmk_firmware/pull/26028)) + +CLI: +* Enforce EOL when formatting files ([#24989](https://github.com/qmk/qmk_firmware/pull/24989)) +* Allow keymap.json to disable config flags ([#25502](https://github.com/qmk/qmk_firmware/pull/25502)) +* Remove unused `qmk.keymap.write_file`/`qmk.keymap.write_json` ([#25854](https://github.com/qmk/qmk_firmware/pull/25854)) +* Include userspace version (QMK_USERSPACE_VERSION) in version.h ([#25882](https://github.com/qmk/qmk_firmware/pull/25882)) +* Lint out-of-bounds bootmagic config ([#25899](https://github.com/qmk/qmk_firmware/pull/25899)) +* Report permission issues in `qmk doctor` ([#25931](https://github.com/qmk/qmk_firmware/pull/25931)) +* Minor alignment of CLI formatting commands ([#25946](https://github.com/qmk/qmk_firmware/pull/25946)) +* Update lint to validate keymap names ([#25969](https://github.com/qmk/qmk_firmware/pull/25969)) +* Add 'none of the above' to `new-keyboard` dev board prompt ([#25998](https://github.com/qmk/qmk_firmware/pull/25998)) +* Remove `config_h_features` from generated `info.json` ([#26024](https://github.com/qmk/qmk_firmware/pull/26024)) +* Promote duplication of defaults check to error ([#26025](https://github.com/qmk/qmk_firmware/pull/26025)) + +Keyboards: +* Add Soldered Macro Pad ([#25834](https://github.com/qmk/qmk_firmware/pull/25834)) +* Remove redundant URLs from `.json` ([#25856](https://github.com/qmk/qmk_firmware/pull/25856)) +* Guard encoder behaviour on `projectcain/vault*` ([#25864](https://github.com/qmk/qmk_firmware/pull/25864)) +* Refactor keyboard/keymap use of deprecated `isLeftHand` ([#25891](https://github.com/qmk/qmk_firmware/pull/25891)) +* Remove some unnecessary matrix externs ([#25975](https://github.com/qmk/qmk_firmware/pull/25975)) +* Migrate ROW_SHIFTER to core MATRIX_ROW_SHIFTER ([#25977](https://github.com/qmk/qmk_firmware/pull/25977)) + +Keyboard fixes: +* Fix out-of-bounds bootmagic config ([#25898](https://github.com/qmk/qmk_firmware/pull/25898)) +* Fix incorrect `matrix_scan_custom` implementations ([#25999](https://github.com/qmk/qmk_firmware/pull/25999)) + +Others: +* Add missing labels to DD keycode definitions ([#25503](https://github.com/qmk/qmk_firmware/pull/25503)) +* Copilot instructions for pull requests ([#25857](https://github.com/qmk/qmk_firmware/pull/25857)) + +Bugs: +* Fix flash wear leveling sector calculation ([#24776](https://github.com/qmk/qmk_firmware/pull/24776)) +* [Bugfix] WS2812 indexing in split boards ([#25407](https://github.com/qmk/qmk_firmware/pull/25407)) +* Correctly resolve keyboard alias during 'qmk new-keymap' ([#25570](https://github.com/qmk/qmk_firmware/pull/25570)) +* Fixes for is31fl3729 LED matrix driver off-by-one errors ([#25902](https://github.com/qmk/qmk_firmware/pull/25902)) +* Match Key override index type to bounds type to prevent overflow ([#25939](https://github.com/qmk/qmk_firmware/pull/25939)) diff --git a/docs/ChangeLog/20260531.md b/docs/ChangeLog/20260531.md new file mode 100644 index 0000000000..fc173bf581 --- /dev/null +++ b/docs/ChangeLog/20260531.md @@ -0,0 +1,122 @@ +# QMK Breaking Changes - 2026 May 31 Changelog + +## Notable Changes {#notable-changes} + +## Deprecation Notices + +In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. + +### Removal of deprecated isLeftHand ([25897](https://github.com/qmk/qmk_firmware/pull/25897)) + +Users must migrate to `is_keyboard_left()` found in `split_util.h` instead. For example: + +```diff +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +- return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; ++ return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; +} +``` + +### Removal of `usb.force_nkro`/`FORCE_NKRO` ([#25262](https://github.com/qmk/qmk_firmware/pull/25262)) + +Unpicking the assumption that only USB can do NKRO, forcing of NKRO on every boot has been deprecated. As this setting persists, it produces unnecessary user confusion when the various NKRO keycodes (for example `NK_TOGG`) do not behave as expected. + +The new defaults can be configured in the following ways: + +:::::tabs + +==== keyboard.json + +```json [keyboard.json] +{ + "host": { // [!code focus] + "default": { // [!code focus] + "nkro": true // [!code focus] + } // [!code focus] + } // [!code focus] +} + +``` + +==== keymap.json + +```json [keymap.json] +{ + "config": { + "host": { // [!code focus] + "default": { // [!code focus] + "nkro": true // [!code focus] + } // [!code focus] + } // [!code focus] + } +} + +``` + +==== config.h + +```c [config.h] +#pragma once + +#define NKRO_DEFAULT_ON true // [!code focus] +``` + +::::: + +## Full changelist + +Core: +* Remove deprecated `isLeftHand` ([#25897](https://github.com/qmk/qmk_firmware/pull/25897)) +* Either output Unicode or insert in Leader sequence ([#25940](https://github.com/qmk/qmk_firmware/pull/25940)) +* Add resolution information to digitizer ([#25958](https://github.com/qmk/qmk_firmware/pull/25958)) +* Always generate .map files. ([#25961](https://github.com/qmk/qmk_firmware/pull/25961)) +* Add an `mcu_reset` impl for the kiibohd bootloader. ([#25963](https://github.com/qmk/qmk_firmware/pull/25963)) +* VIA v13 ([#26001](https://github.com/qmk/qmk_firmware/pull/26001)) +* Added PixArt PMW-3325 mouse sensor driver ([#26065](https://github.com/qmk/qmk_firmware/pull/26065)) +* Update WL backing store from 16 to 32-bit for AT32 ([#26066](https://github.com/qmk/qmk_firmware/pull/26066)) +* Refactor Pixel Fractal effect ([#26071](https://github.com/qmk/qmk_firmware/pull/26071)) +* Minor combo code optimisation ([#26073](https://github.com/qmk/qmk_firmware/pull/26073)) +* Options to constrain Speculative Hold: `SPECULATIVE_HOLD_ONE_KEY` and `SPECULATIVE_HOLD_FLOW_TERM`. ([#26099](https://github.com/qmk/qmk_firmware/pull/26099)) +* Add includes for std::setw ([#26153](https://github.com/qmk/qmk_firmware/pull/26153)) +* Bind gtest colour to QMKs 'COLOR' variable ([#26159](https://github.com/qmk/qmk_firmware/pull/26159)) +* Print correct test names ([#26160](https://github.com/qmk/qmk_firmware/pull/26160)) +* Ignore Uninteresting test warnings during test teardown ([#26161](https://github.com/qmk/qmk_firmware/pull/26161)) +* Remove FORCE_NKRO ([#26206](https://github.com/qmk/qmk_firmware/pull/26206)) + +CLI: +* Update lint to check all keymaps within the repo ([#25970](https://github.com/qmk/qmk_firmware/pull/25970)) +* Fail when a duplicate module name is detected ([#26238](https://github.com/qmk/qmk_firmware/pull/26238)) + +Submodule updates: +* Update ChibiOS, ChibiOS-Contrib. ([#25730](https://github.com/qmk/qmk_firmware/pull/25730)) +* Revert "Update ChibiOS, ChibiOS-Contrib." ([#26074](https://github.com/qmk/qmk_firmware/pull/26074)) +* ChibiOS, ChibiOS-Contrib updates (redux) ([#26079](https://github.com/qmk/qmk_firmware/pull/26079)) +* Bump googletest to v1.16.0 ([#26154](https://github.com/qmk/qmk_firmware/pull/26154)) + +Keyboards: +* Require "url" field to not be empty ([#25152](https://github.com/qmk/qmk_firmware/pull/25152)) +* Add nomis/rpi_pico_25x1 macropad ([#25346](https://github.com/qmk/qmk_firmware/pull/25346)) +* Remove override of QK_{LED,RGB}_MATRIX_TOGGLE keycode ([#25672](https://github.com/qmk/qmk_firmware/pull/25672)) +* Add reverse layout to SouthPad v2 ([#25707](https://github.com/qmk/qmk_firmware/pull/25707)) +* Adding Handwired Bouvet Macropad ([#26040](https://github.com/qmk/qmk_firmware/pull/26040)) +* Remove blockader user keymap ([#26075](https://github.com/qmk/qmk_firmware/pull/26075)) +* Remove deprecated audio pin defines ([#26111](https://github.com/qmk/qmk_firmware/pull/26111)) +* Remove `OLED_DISPLAY_128X32` config ([#26190](https://github.com/qmk/qmk_firmware/pull/26190)) +* Migrate SPLIT_OLED_ENABLE ([#26194](https://github.com/qmk/qmk_firmware/pull/26194)) +* Add API version assertion for split_data_sync module ([#26237](https://github.com/qmk/qmk_firmware/pull/26237)) + +Others: +* Bump vitepress to 1.6.4 ([#26067](https://github.com/qmk/qmk_firmware/pull/26067)) +* Add usage clarifications to docs/features/unicode.md ([#26156](https://github.com/qmk/qmk_firmware/pull/26156)) + +Bugs: +* Fix `USER_PRINT` stripping out `uprintf` ([#25919](https://github.com/qmk/qmk_firmware/pull/25919)) +* Fix possible repeat key infinite recursion ([#25926](https://github.com/qmk/qmk_firmware/pull/25926)) +* Fix `cc-option` on arm-none-eabi-gcc ([#26114](https://github.com/qmk/qmk_firmware/pull/26114)) +* Fix color diagnostics for arm-none-eabi-gcc ([#26115](https://github.com/qmk/qmk_firmware/pull/26115)) +* Mask out active mods when unregistering after retro tapping ([#26127](https://github.com/qmk/qmk_firmware/pull/26127)) +* fix `make test:all` failures seen on macOS Tahoe ([#26136](https://github.com/qmk/qmk_firmware/pull/26136)) +* Add workaround for undefined reference to weak function under mingw ([#26167](https://github.com/qmk/qmk_firmware/pull/26167)) +* fix(ws2812-pwm): allow WS2812_PWM_TICK_FREQUENCY override ([#26186](https://github.com/qmk/qmk_firmware/pull/26186)) +* Clip mouse report values to the logical range from the USB descriptor. ([#26195](https://github.com/qmk/qmk_firmware/pull/26195)) +* Align Mouse USB descriptor ([#26230](https://github.com/qmk/qmk_firmware/pull/26230)) diff --git a/docs/_sidebar.json b/docs/_sidebar.json index d237b0e1d0..357574fe7e 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -214,7 +214,7 @@ { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, { "text": "Most Recent ChangeLog", - "link": "/ChangeLog/20250831" + "link": "/ChangeLog/20260531" }, { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 1e9335d8bc..3b169498b8 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? -* [2025 Aug 31](ChangeLog/20250831) -* [2025 May 25](ChangeLog/20250525) -* [2025 Feb 23](ChangeLog/20250223) +* [2026 May 31](ChangeLog/20260531) +* [2026 Feb 22](ChangeLog/20260222) +* [2025 Nov 30](ChangeLog/20251130) * [Older Breaking Changes](breaking_changes_history) ## When is the next Breaking Change? -The next Breaking Change is scheduled for November 30, 2025. +The next Breaking Change is scheduled for Aug 30, 2026. ### Important Dates -* 2025 Aug 31 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2025 Nov 2 - `develop` closed to new PRs. -* 2025 Nov 2 - Call for testers. -* 2025 Nov 16 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2025 Nov 23 - `develop` is locked, only critical bugfix PRs merged. -* 2025 Nov 28 - `master` is locked, no PRs merged. -* 2025 Nov 30 - Merge `develop` to `master`. -* 2025 Nov 30 - `master` is unlocked. PRs can be merged again. +* 2025 May 31 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2026 Aug 2 - `develop` closed to new PRs. +* 2026 Aug 2 - Call for testers. +* 2026 Aug 16 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2026 Aug 23 - `develop` is locked, only critical bugfix PRs merged. +* 2026 Aug 28 - `master` is locked, no PRs merged. +* 2026 Aug 30 - Merge `develop` to `master`. +* 2026 Aug 30 - `master` is unlocked. PRs can be merged again. ## What changes will be included? diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index 29ceb09db7..f313ea6328 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,6 +2,9 @@ This page links to all previous changelogs from the QMK Breaking Changes process. +* [2026 May 31](ChangeLog/20260531) - version 0.33.0 +* [2026 Feb 22](ChangeLog/20260222) - version 0.32.0 +* [2025 Nov 30](ChangeLog/20251130) - version 0.31.0 * [2025 Aug 31](ChangeLog/20250831) - version 0.30.0 * [2025 May 25](ChangeLog/20250525) - version 0.29.0 * [2025 Feb 23](ChangeLog/20250223) - version 0.28.0 diff --git a/docs/cli.md b/docs/cli.md index ab25a480ab..9df83e7c92 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -4,47 +4,18 @@ The QMK CLI (command line interface) makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more. -### Requirements {#requirements} +### Installation {#installation} -QMK requires Python 3.9 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI. - -### Install Using Homebrew (macOS, some Linux) {#install-using-homebrew} - -If you have installed [Homebrew](https://brew.sh) you can tap and install QMK: +The recommended way to install the QMK CLI and all necessary dependencies (toolchains, flashing utilities, udev rules on Linux) is to use the bootstrapper script: ``` -brew install qmk/qmk/qmk -export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware` -qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment +curl -fsSL https://install.qmk.fm | sh ``` -### Install Using uv {#install-using-uv} - -If you have installed [uv](https://docs.astral.sh/uv/), the QMK CLI can be installed and managed as a uv tool: +For more options, run: ``` -uv tool install qmk -export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware` -qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment +curl -fsSL https://install.qmk.fm | sh -s -- --help ``` -This installation can be updated via `uv tool upgrade qmk`. See [Upgrading tools](https://docs.astral.sh/uv/guides/tools/#upgrading-tools) for more information. - -### Install Using pip {#install-using-easy_install-or-pip} - -If your system is not listed above you can install QMK manually. First ensure that you have Python 3.9 (or later) installed and have installed pip. Then install QMK with this command: - -``` -python3 -m pip install qmk -export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware` -qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment -``` - -### Packaging For Other Operating Systems {#packaging-for-other-operating-systems} - -We are looking for people to create and maintain a `qmk` package for more operating systems. If you would like to create a package for your OS please follow these guidelines: - -* Follow best practices for your OS when they conflict with these guidelines - * Document why in a comment when you do deviate -* Install using a virtualenv -* Instruct the user to set the environment variable `QMK_HOME` to have the firmware source checked out somewhere other than `~/qmk_firmware`. +For detailed setup instructions, see [Setting Up Your QMK Environment](newbs_getting_started#set-up-your-environment). diff --git a/docs/cli_development.md b/docs/cli_development.md index 74ac53d327..1328072a89 100644 --- a/docs/cli_development.md +++ b/docs/cli_development.md @@ -12,11 +12,11 @@ If you intend to maintain keyboards and/or contribute to QMK, you can enable the `qmk config user.developer=True` -This will allow you to see all available subcommands. -**Note:** You will have to install additional requirements: -``` -python3 -m pip install -r requirements-dev.txt -``` +This will allow you to see all available subcommands. + +::: tip +If you installed QMK using the bootstrapper (`curl -fsSL https://install.qmk.fm | sh`), the development requirements are already installed. +::: # Subcommands diff --git a/docs/config_options.md b/docs/config_options.md index 91c17cf09d..95cc89eaa7 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -74,24 +74,6 @@ This is a C header file that is one of the first things included, and will persi * pins mapped to rows and columns, from left to right. Defines a matrix where each switch is connected to a separate pin and ground. * `#define AUDIO_VOICES` * turns on the alternate audio voices (to cycle through) -* `#define C4_AUDIO` - * enables audio on pin C4 - * Deprecated. Use `#define AUDIO_PIN C4` -* `#define C5_AUDIO` - * enables audio on pin C5 - * Deprecated. Use `#define AUDIO_PIN C5` -* `#define C6_AUDIO` - * enables audio on pin C6 - * Deprecated. Use `#define AUDIO_PIN C6` -* `#define B5_AUDIO` - * enables audio on pin B5 (duophony is enabled if one of B pins is enabled along with one of C pins) - * Deprecated. Use `#define AUDIO_PIN B5`, or use `#define AUDIO_PIN_ALT B5` if a `C` pin is enabled with `AUDIO_PIN` -* `#define B6_AUDIO` - * enables audio on pin B6 (duophony is enabled if one of B pins is enabled along with one of C pins) - * Deprecated. Use `#define AUDIO_PIN B6`, or use `#define AUDIO_PIN_ALT B6` if a `C` pin is enabled with `AUDIO_PIN` -* `#define B7_AUDIO` - * enables audio on pin B7 (duophony is enabled if one of B pins is enabled along with one of C pins) - * Deprecated. Use `#define AUDIO_PIN B7`, or use `#define AUDIO_PIN_ALT B7` if a `C` pin is enabled with `AUDIO_PIN` * `#define BACKLIGHT_PIN B7` * pin of the backlight * `#define BACKLIGHT_LEVELS 3` diff --git a/docs/custom_matrix.md b/docs/custom_matrix.md index ef206944e1..294b88bb0b 100644 --- a/docs/custom_matrix.md +++ b/docs/custom_matrix.md @@ -74,7 +74,7 @@ void matrix_init(void) { // TODO: initialize hardware and global matrix state here // Unless hardware debouncing - Init the configured debounce routine - debounce_init(MATRIX_ROWS); + debounce_init(); // This *must* be called for correct keyboard behavior matrix_init_kb(); @@ -86,7 +86,7 @@ uint8_t matrix_scan(void) { // TODO: add matrix scanning routine here // Unless hardware debouncing - use the configured debounce routine - changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + changed = debounce(raw_matrix, matrix, changed); // This *must* be called for correct keyboard behavior matrix_scan_kb(); diff --git a/docs/documentation_best_practices.md b/docs/documentation_best_practices.md index bc64472e24..f84f106c61 100644 --- a/docs/documentation_best_practices.md +++ b/docs/documentation_best_practices.md @@ -14,6 +14,10 @@ Example: This page covers my super cool feature. You can use this feature to make coffee, squeeze fresh oj, and have an egg mcmuffin and hashbrowns delivered from your local macca's by drone. ``` +# Paragraphs + +Do not use hard line breaks within the raw Markdown for each paragraph. These are optional in Markdown, and have no effect on the rendered output. This means each raw paragraph will be a single long line in your editor (best viewed with line wrapping enabled). + # Headings Your page should generally have multiple "H1" headings. Only H1 and H2 headings will included in the Table of Contents, so plan them out appropriately. Excess width should be avoided in H1 and H2 headings to prevent the Table of Contents from getting too wide. diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 6fbcfa3bff..13b445b9b6 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -4,7 +4,7 @@ QMK presents itself to the host as a regular HID keyboard device, and as such re There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver. -We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the `qmk_install.sh` script will have already installed the drivers for you. +We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the QMK CLI installation script will have already installed the drivers for you. ## Installation diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index ad74d0e481..75823c682b 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -221,6 +221,31 @@ Receive multiple bytes from the selected I2C device. --- +### `i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout)` {#api-i2c-transmit-and-receive} + +Send and receive multiple bytes from the selected I2C device. + +#### Arguments {#api-i2c-transmit-and-receive-arguments} + + - `uint8_t address` + The 7-bit I2C address of the device. + - `const uint8_t* tx_data` + A pointer to the data to transmit. + - `uint16_t tx_length` + The number of bytes to write. Take care not to overrun the length of `tx_data`. + - `uint8_t* rx_data` + A pointer to a buffer to read into. + - `uint16_t rx_length` + The number of bytes to read. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value {#api-i2c-transmit-and-receive-return} + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + ### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} Write to a register with an 8-bit address on the I2C device. diff --git a/docs/drivers/ws2812.md b/docs/drivers/ws2812.md index 0c26ec6248..1d70113897 100644 --- a/docs/drivers/ws2812.md +++ b/docs/drivers/ws2812.md @@ -292,7 +292,7 @@ Set the color of a single LED. This function does not immediately update the LED --- -### `void ws812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all} +### `void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all} Set the color of all LEDs. diff --git a/docs/faq_build.md b/docs/faq_build.md index 54ed576c70..5348db1dca 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -19,13 +19,10 @@ Note that running `make` with `sudo` is generally ***not*** a good idea, and you ### Linux `udev` Rules {#linux-udev-rules} -On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`. - -Once added, run the following: +On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or install the udev rules from the [qmk_udev](https://github.com/qmk/qmk_udev) repository by running: ``` -sudo udevadm control --reload-rules -sudo udevadm trigger +util/install_udev.sh ``` **Note:** With older versions of ModemManager (< 1.12), filtering only works when not in strict mode. The following commands can update that setting: @@ -44,7 +41,7 @@ Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices m Issues encountered when flashing keyboards on Windows are most often due to having the wrong drivers installed for the bootloader, or none at all. -Re-running the QMK installation script (`./util/qmk_install.sh` from the `qmk_firmware` directory in MSYS2 or WSL) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package manually. +Re-running the QMK installation script (`curl -fsSL https://install.qmk.fm | sh`) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package manually. If that doesn't work, then you may need to download and run Zadig. See [Bootloader Driver Installation with Zadig](driver_installation_zadig) for more detailed information. diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 06cc7b3a11..4e0a23752c 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -2,8 +2,22 @@ This page documents the automated process for converting keyboards to use drop-in replacement controllers. This process is designed to be easy to use and can be completed in a few simple steps. +You can generate the firmware by appending `-e CONVERT_TO=` to your compile/flash command. For example: + +```sh +qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c +``` + +You can also configure this within your [keymap](#keymap) to accomplish the same thing. + +::: tip +If you get build errors, you will need to convert the keyboard's code to be [compatible](#keyboard-req) with the converter feature, or provide additional [keymap](#keymap-add) configuration. +::: + ## Supported Converters +Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. + The following converters are available at this time: | From | To | @@ -28,86 +42,56 @@ The following converters are available at this time: | `elite_c` | `helios` | | `elite_c` | `liatris` | +## Configuration -## Overview +Configuring a converter to use can be done by adding one of the following lines to your keymaps's configuration: -Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. You can generate the firmware by appending `-e CONVERT_TO=` to your compile/flash command. For example: +:::::tabs -```sh -qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c +==== keymap.json + +```json [keymap.json] +{ + "version": 1, + "keyboard": "keebio/bdn9/rev1", + "keymap": "keebio_bdn9_rev1_layout_2025-05-20", + "converter": "proton_c", // [!code focus] + "layout": "LAYOUT", +} ``` -You can also add the same `CONVERT_TO=` to your keymap's `rules.mk`, which will accomplish the same thing. - -::: tip -If you get errors about `PORTB/DDRB`, etc not being defined, you'll need to convert the keyboard's code to use the [GPIO Controls](drivers/gpio) that will work for both ARM and AVR. This shouldn't affect the AVR builds at all. -::: - -### Conditional Configuration - -Once a converter is enabled, it exposes the `CONVERT_TO_` flag that you can use in your code with `#ifdef`s, For example: - -```c -#ifdef CONVERT_TO_PROTON_C - // Proton C code -#else - // Pro Micro code -#endif -``` - -### Pin Compatibility - -To ensure compatibility, provide validation, and enable future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. The following pin compatibility interfaces are currently defined: - -| Pin Compatibility | Notes | -|-------------------|-----------------------------------| -| `promicro` | Includes RX/TX LEDs | -| `elite_c` | Includes bottom row pins, no LEDs | - -To declare the base for conversions, add this line to your keyboard's `rules.mk`: +==== rules.mk ```makefile -PIN_COMPATIBLE = elite_c +CONVERT_TO = proton_c ``` -## Pro Micro +::::: -If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are: +::: tip +If you get build errors, you will need to convert the keyboard's code to be [compatible](#keyboard-req) with the converter feature, or provide additional [keymap](#keymap-add) configuration. +::: -| Device | Target | -|------------------------------------------------------------------------------------------|-------------------| -| [Proton C](https://qmk.fm/proton-c/) | `proton_c` | -| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` | -| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `sparkfun_pm2040` | -| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` | -| [Bit-C PRO](https://nullbits.co/bit-c-pro) | `bit_c_pro` | -| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | -| [customMK Bonsai C4](https://shop.custommk.com/products/bonsai-c4-microcontroller-board) | `bonsai_c4` | -| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | -| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | -| [Liatris](https://splitkb.com/products/liatris) | `liatris` | -| [Imera](https://splitkb.com/products/imera) | `imera` | -| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` | -| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` | +## Pro Micro Converters -Converter summary: +If a board currently supported by QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are: -| Target | Argument | `rules.mk` | Condition | -|-------------------|---------------------------------|------------------------------|-------------------------------------| -| `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` | -| `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` | -| `sparkfun_pm2040` | `-e CONVERT_TO=sparkfun_pm2040` | `CONVERT_TO=sparkfun_pm2040` | `#ifdef CONVERT_TO_SPARKFUN_PM2040` | -| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` | -| `bit_c_pro` | `-e CONVERT_TO=bit_c_pro` | `CONVERT_TO=bit_c_pro` | `#ifdef CONVERT_TO_BIT_C_PRO` | -| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | -| `bonsai_c4` | `-e CONVERT_TO=bonsai_c4` | `CONVERT_TO=bonsai_c4` | `#ifdef CONVERT_TO_BONSAI_C4` | -| `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | -| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | -| `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | -| `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | -| `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` | -| `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` | -| `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` | +| Device | Target | CLI Argument | `rules.mk` | Condition | +|------------------------------------------------------------------------------------------|-------------------|---------------------------------|------------------------------|-------------------------------------| +| [Proton C](https://qmk.fm/proton-c/) | `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` | +| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` | +| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `sparkfun_pm2040` | `-e CONVERT_TO=sparkfun_pm2040` | `CONVERT_TO=sparkfun_pm2040` | `#ifdef CONVERT_TO_SPARKFUN_PM2040` | +| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` | +| [Bit-C PRO](https://nullbits.co/bit-c-pro) | `bit_c_pro` | `-e CONVERT_TO=bit_c_pro` | `CONVERT_TO=bit_c_pro` | `#ifdef CONVERT_TO_BIT_C_PRO` | +| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | +| [customMK Bonsai C4](https://shop.custommk.com/products/bonsai-c4-microcontroller-board) | `bonsai_c4` | `-e CONVERT_TO=bonsai_c4` | `CONVERT_TO=bonsai_c4` | `#ifdef CONVERT_TO_BONSAI_C4` | +| [RP2040 Community Edition](#rp2040_ce) | `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | +| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | +| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | +| [Liatris](https://splitkb.com/products/liatris) | `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | +| [Imera](https://splitkb.com/products/imera) | `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` | +| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` | +| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` | ### Proton C {#proton_c} @@ -119,26 +103,26 @@ The Proton C only has one on-board LED (C13), and by default, the TXLED (D5) is The following defaults are based on what has been implemented for STM32 boards. -| Feature | Notes | -|----------------------------------------------|------------------------------------------------------------------------------------------------------------------| -| [Audio](features/audio) | Enabled | -| [RGB Lighting](features/rgblight) | Disabled | +| Feature | Notes | +|--------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| [Audio](features/audio) | Enabled | +| [RGB Lighting](features/rgblight) | Disabled | | [Backlight](features/backlight) | Forces [task driven PWM](features/backlight#software-pwm-driver) until ARM can provide automatic configuration | -| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | -| [Split keyboards](features/split_keyboard) | Partial - heavily dependent on enabled features | +| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | +| [Split keyboards](features/split_keyboard) | Partial - heavily dependent on enabled features | ### Adafruit KB2040 {#kb2040} The following defaults are based on what has been implemented for [RP2040](platformdev_rp2040) boards. -| Feature | Notes | -|----------------------------------------------|------------------------------------------------------------------------------------------------------------------| -| [RGB Lighting](features/rgblight) | Enabled via `PIO` vendor driver | +| Feature | Notes | +|--------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| [RGB Lighting](features/rgblight) | Enabled via `PIO` vendor driver | | [Backlight](features/backlight) | Forces [task driven PWM](features/backlight#software-pwm-driver) until ARM can provide automatic configuration | -| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | -| [Split keyboards](features/split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features | +| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | +| [Split keyboards](features/split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features | -### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#sparkfun_pm2040 } +### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#sparkfun_pm2040} Feature set is identical to [Adafruit KB2040](#kb2040). @@ -177,31 +161,193 @@ Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enable Feature set is a pro micro equivalent of the [RP2040 Community Edition](#rp2040_ce), except that two of the analog GPIO have been replaced with digital only GPIO. These two were moved to the FPC connector to support the [VIK specification](https://github.com/sadekbaroudi/vik). This means that if you are expecting analog support on all 4 pins as provided on a RP2040 Community Edition pinout, you will not have that. Please see the [Svlinky github page](https://github.com/sadekbaroudi/svlinky) for more details. -## Elite-C +## Elite-C Converters -If a board currently supported in QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are: +If a board currently supported by QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are: -| Device | Target | -|----------------------------------------------------------------------------------|-------------------| -| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | -| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | -| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | -| [Liatris](https://splitkb.com/products/liatris) | `liatris` | +| Device | Target | CLI Argument | `rules.mk` | Condition | +|----------------------------------------------------------------------------------|-------------|---------------------------|------------------------|-------------------------------| +| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | +| [RP2040 Community Edition](#rp2040_ce_elite) | `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | +| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | +| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | +| [Liatris](https://splitkb.com/products/liatris) | `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | -Converter summary: - -| Target | Argument | `rules.mk` | Condition | -|-------------------|---------------------------------|------------------------------|-------------------------------------| -| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | -| `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | -| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | -| `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | -| `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | - -### STeMCell {#stemcell}_elite +### STeMCell {#stemcell_elite} Identical to [Pro Micro - STeMCell](#stemcell) with support for the additional bottom row of pins. ### RP2040 Community Edition {#rp2040_ce_elite} Identical to [Pro Micro - RP2040 Community Edition](#rp2040_ce) with support for the additional bottom row of pins. + +## Advanced Topics + +### Keyboard Configuration + +To configure a keyboard to allow the converter feature, add the following line to your keyboard's `.json` configuration: + +```json [keyboard.json] +{ + "maintainer": "QMK", + "development_board": "promicro", // [!code focus] + "diode_direction": "COL2ROW", +} +``` + +See the [pin compatibility](#pin_compatible) for more information. + +#### Additional Requirements {#keyboard-req} + +Keyboards must use the platform agnostic abstractions provided by QMK. This includes: + +* Use of [GPIO Controls](drivers/gpio). + +### Additional Keymap Configuration {#keymap-add} + +While effort has been made to make converters as compatible as possible, sometimes additional platform specific configuration is required. + +For example, enabling hardware peripherals by adding a keymap level `mcuconf.h` with something like the following: +```c +#pragma once + +#include_next + +#undef RP_SIO_USE_UART0 +#define RP_SIO_USE_UART0 TRUE +``` + +You can find details on how to configure drivers on their respective pages. + +Alternatively, you may have to disable incompatible features. For example: + +:::::tabs + +==== keymap.json + +```json [keymap.json] +{ + "version": 1, + "keyboard": "keebio/bdn9/rev1", + "keymap": "keebio_bdn9_rev1_layout_2025-05-20", + "converter": "proton_c", + "config": { // [!code focus] + "features": { // [!code focus] + "audio": false // [!code focus] + } + } + "layout": "LAYOUT", +} +``` + +==== rules.mk + +```makefile +AUDIO_ENABLE = no +``` + +::::: + +### Conditional Configuration + +Once a converter is enabled, it exposes the `CONVERT_TO_` flag that you can use in your code with `#ifdef`s, For example: + +```c +#ifdef CONVERT_TO_PROTON_C + // Proton C code +#else + // Pro Micro code +#endif +``` + +### Pin Compatibility {#pin_compatible} + +To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. This ensures that only valid combinations are attempted. + +::: tip Note +This will already be configured for you if are using the `promicro` development board preset. +::: + +To declare the base interface for conversions, add the following line to your keyboard's configuration: + +```json [keyboard.json] +{ + "maintainer": "QMK", + "development_board": "elite_c", // [!code focus] + "pin_compatible": "elite_c", // [!code focus] + "diode_direction": "COL2ROW", +} +``` + +The above example, configures a keyboard for a default of `elite_c` while allowing any of the `elite_c` converter targets. + +The framework then allows mapping of pins from `` to converter ``. + +::: warning +Mapped pins should adhere strictly to the defined interface, any extras present on the hardware should be ignored. +::: + +#### Available Pin Compatibility + +:::::tabs + +==== promicro + +![promicro](/pin_compatible_promicro.svg) + + + +::: info Notes: +Includes LEDs - these may be mapped to unused/unavailable pins when not present. +::: + +==== elite_c + +![elite_c](/pin_compatible_elite_c.svg) + + + +::: info Notes: +Includes bottom row pins, no LEDs. +::: + +::::: diff --git a/docs/feature_eeprom.md b/docs/feature_eeprom.md index 7d40e81f5a..5cdd6d9981 100644 --- a/docs/feature_eeprom.md +++ b/docs/feature_eeprom.md @@ -1,14 +1,20 @@ # Persistent Configuration (EEPROM) -This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM. - -The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function. +This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. Keep in mind that EEPROM has a limited number of writes. While this is very high, it's not the only thing writing to the EEPROM, and if you write too often, you can potentially drastically shorten the life of your MCU. -* If you don't understand the example, then you may want to avoid using this feature, as it is rather complicated. +::: tip +If you don't understand the examples, then you may want to avoid using this feature, as it is rather complicated. +::: -## Example Implementation +## Basic + +The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM. + +The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function. + +### Example Implementation This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. This is a complex function, and has a lot going on. In fact, it uses a lot of the above functions to work! @@ -126,9 +132,111 @@ void eeconfig_init_user(void) { // EEPROM is getting reset! And you're done. The RGB layer indication will only work if you want it to. And it will be saved, even after unplugging the board. And if you use any of the RGB codes, it will disable the layer indication, so that it stays on the mode and color that you set it to. -## 'EECONFIG' Function Documentation +### Basic API * Keyboard/Revision: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)` and `void eeconfig_update_kb(uint32_t val)` * Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)` The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM. + +## Datablock {#datablock} + +An extended form exists that allows larger blocks of data to be allocated. + +::: info +When using datablock, the [basic API](#eeconfig-function-documentation) is unavailable. +::: + +:::::tabs + +==== keyboard + +In `config.h`, define the size required, and optionally a version number: + +| Define | Default | Description | +|------------------------------|---------------------------|------------------------------------------------------------------| +| `EECONFIG_KB_DATA_SIZE` | `0` | Size in bytes for the persistent block of data | +| `EECONFIG_KB_DATA_VERSION` | `EECONFIG_KB_DATA_SIZE` | Version number that can be incremented to invalidate stored data | + +Which exposes the following API: + +```c +bool eeconfig_is_kb_datablock_valid(void); +uint32_t eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +uint32_t eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +void eeconfig_init_kb_datablock(void); +# define eeconfig_read_kb_datablock_field(__object, __field) eeconfig_read_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +# define eeconfig_update_kb_datablock_field(__object, __field) eeconfig_update_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +``` + +==== keymap + +In `config.h`, define the size required, and optionally a version number: + +| Define | Default | Description | +|------------------------------|---------------------------|------------------------------------------------------------------| +| `EECONFIG_USER_DATA_SIZE` | `0` | Size in bytes for the persistent block of data | +| `EECONFIG_USER_DATA_VERSION` | `EECONFIG_USER_DATA_SIZE` | Version number that can be incremented to invalidate stored data | + +Which exposes the following API: + +```c +bool eeconfig_is_user_datablock_valid(void); +uint32_t eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +uint32_t eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull)); +void eeconfig_init_user_datablock(void); +# define eeconfig_read_user_datablock_field(__object, __field) eeconfig_read_user_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +# define eeconfig_update_user_datablock_field(__object, __field) eeconfig_update_user_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field)) +``` + +::::: + +### Example + +This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. + +In your `config.h` add: + +```c +#define EECONFIG_USER_DATA_SIZE 8 +``` + +In your keymap.c file, add: + +```c +#include "debug.h" +#include "timer.h" +#include "eeconfig.h" + +typedef struct my_config_t { + uint64_t data; +} my_config_t; + +static my_config_t config; + +void keyboard_post_init_user(void) { + if (!eeconfig_is_user_datablock_valid()) { + eeconfig_init_user_datablock(); + } + + eeconfig_read_user_datablock(&config, 0, sizeof(my_config_t)); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!record->event.pressed) { + config.data += 1; + eeconfig_update_user_datablock(&config, 0, sizeof(my_config_t)); + } + + return true; +} + +void housekeeping_task_user(void) { + static uint32_t last_sync = 0; + if (timer_elapsed32(last_sync) > 1000) { + last_sync = timer_read32(); + + dprintf("Config: %ld\n", config.data); + } +} +``` diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 8e6510ca2a..9aa453c763 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -51,7 +51,7 @@ Sometimes you need more than one base layer. For example, if you want to switch ### Advanced Users {#advanced-users} -Once you have a good feel for how layers work and what you can do, you can get more creative. The rules listed in the beginner section will help you be successful by avoiding some of the tricker details but they can be constraining, especially for ultra-compact keyboard users. Understanding how layers work will allow you to use them in more advanced ways. +Once you have a good feel for how layers work and what you can do, you can get more creative. The rules listed in the beginner section will help you be successful by avoiding some of the trickier details but they can be constraining, especially for ultra-compact keyboard users. Understanding how layers work will allow you to use them in more advanced ways. Layers stack on top of each other in numerical order. When determining what a keypress does, QMK scans the layers from the top down, stopping when it reaches the first active layer that is not set to `KC_TRNS`. As a result if you activate a layer that is numerically lower than your current layer, and your current layer (or another layer that is active and higher than your target layer) has something other than `KC_TRNS`, that is the key that will be sent, not the key on the layer you just activated. This is the cause of most people's "why doesn't my layer get switched" problem. diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md index eff07c939a..2b0086134b 100644 --- a/docs/features/community_modules.md +++ b/docs/features/community_modules.md @@ -95,6 +95,10 @@ The use of `features` matches the definition normally provided within `keyboard. The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap. +### `config.h` + +This file will be automatically added to the build as if it were present in the keyboard or keymap. + ### `rules.mk` / `post_rules.mk` These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap. @@ -131,6 +135,10 @@ This file defines LED matrix effects in the same form as used with `led_matrix_k This file defines RGB matrix effects in the same form as used with `rgb_matrix_kb.inc` and `rgb_matrix_user.inc` (see [Custom RGB Matrix Effects](rgb_matrix#custom-rgb-matrix-effects)). Effect mode names are prepended with `RGB_MATRIX_COMMUNITY_MODULE_`. +### Custom split keyboard data sync + +Defines follow the convention, `SPLIT_TRANSACTION_IDS_MODULE_` (see [Custom data sync](split_keyboard#custom-data-sync)). + ### Compatible APIs Community Modules may provide specializations for the following APIs: diff --git a/docs/features/dynamic_macros.md b/docs/features/dynamic_macros.md index a642ced43e..fa7373a4bd 100644 --- a/docs/features/dynamic_macros.md +++ b/docs/features/dynamic_macros.md @@ -32,12 +32,13 @@ For the details about the internals of the dynamic macros, please read the comme There are a number of options added that should allow some additional degree of customization -|Define |Default |Description | -|----------------------------|----------------|-----------------------------------------------------------------------------------------------------------------| -|`DYNAMIC_MACRO_SIZE` |128 |Sets the amount of memory that Dynamic Macros can use. This is a limited resource, dependent on the controller. | -|`DYNAMIC_MACRO_USER_CALL` |*Not defined* |Defining this falls back to using the user `keymap.c` file to trigger the macro behavior. | -|`DYNAMIC_MACRO_NO_NESTING` |*Not Defined* |Defining this disables the ability to call a macro from another macro (nested macros). | -|`DYNAMIC_MACRO_DELAY` |*Not Defined* |Sets the waiting time (ms unit) when sending each key. | +|Define |Default |Description | +|------------------------------------------|----------------|-----------------------------------------------------------------------------------------------------------------| +|`DYNAMIC_MACRO_SIZE` |128 |Sets the amount of memory that Dynamic Macros can use. This is a limited resource, dependent on the controller. | +|`DYNAMIC_MACRO_USER_CALL` |*Not defined* |Defining this falls back to using the user `keymap.c` file to trigger the macro behavior. | +|`DYNAMIC_MACRO_NO_NESTING` |*Not Defined* |Defining this disables the ability to call a macro from another macro (nested macros). | +|`DYNAMIC_MACRO_DELAY` |*Not Defined* |Sets the waiting time (ms unit) when sending each key. | +|`DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE` |*Not Defined* |Defining this keeps the layer state when starting to record a macro | If the LEDs start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by adding the `DYNAMIC_MACRO_SIZE` define in your `config.h` (default value: 128; please read the comments for it in the header). diff --git a/docs/features/haptic_feedback.md b/docs/features/haptic_feedback.md index 08e66ea8e1..d380b1b999 100644 --- a/docs/features/haptic_feedback.md +++ b/docs/features/haptic_feedback.md @@ -121,7 +121,7 @@ Linear resonant actuators (LRA, also know as a linear vibrator) works different #### DRV2605L waveform library -DRV2605L comes with preloaded library of various waveform sequences that can be called and played. If writing a macro, these waveforms can be played using `DRV_pulse(*sequence name or number*)` +DRV2605L comes with preloaded library of various waveform sequences that can be called and played. If writing a macro, these waveforms can be played using `drv2605l_pulse(*sequence name or number*)` after adding `#include "drv2605l.h"`. List of waveform sequences from the datasheet: diff --git a/docs/features/key_overrides.md b/docs/features/key_overrides.md index e83f0295ab..a4c9ed98e9 100644 --- a/docs/features/key_overrides.md +++ b/docs/features/key_overrides.md @@ -14,7 +14,7 @@ You can use key overrides in a similar way to momentary layer/fn keys to activat To enable this feature, you need to add `KEY_OVERRIDE_ENABLE = yes` to your `rules.mk`. -Then, in your `keymap.c` file, you'll need to define the array `key_overrides`, which defines all key overrides to be used. Each override is a value of type `key_override_t`. The array `key_overrides`contains pointers to `key_override_t` values (`const key_override_t **`). +Then, in your `keymap.c` file, you'll need to define the `key_overrides` config. See below for more details. ## Creating Key Overrides {#creating-key-overrides} @@ -47,6 +47,17 @@ const key_override_t *key_overrides[] = { }; ``` +This second example inverts or swaps semicolon and colon on ANSI and many other layouts. That means pressing the key alone sends `shift` + `semicolon` giving `colon` (`S(KP_SCLN)` aka `KC_COLN`), but when pressing the key with shift, the shift modifier is suppressed (see `suppressed_mods` below), sending only `semicolon` (`KC_SCLN`): + +```c +const key_override_t semicolon_colon_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_COLN, KC_SCLN); + +// This globally defines all key overrides to be used +const key_override_t *key_overrides[] = { + &semicolon_colon_key_override +}; +``` + ## Intermediate Difficulty Examples {#intermediate-difficulty-examples} ### Media Controls & Screen Brightness {#media-controls-amp-screen-brightness} diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index 28d24bc400..f14fb47d62 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -88,6 +88,8 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{ |`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level | |`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed | |`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed | +|`QK_LED_MATRIX_FLAG_NEXT` |`LM_FLGN`|Cycle through flags | +|`QK_LED_MATRIX_FLAG_PREVIOUS` |`LM_FLGP`|Cycle through flags in reverse | ## LED Matrix Effects {#led-matrix-effects} @@ -253,6 +255,7 @@ const char* effect_name = led_matrix_get_mode_name(led_matrix_get_mode()); #define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set #define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR +#define LED_MATRIX_FLAG_STEPS { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE } // Sets the flags which can be cycled through. ``` ## EEPROM storage {#eeprom-storage} @@ -505,6 +508,62 @@ The current effect speed, from 0 to 255. --- +### `void led_matrix_set_flags(led_flags_t flags)` {#api-led-matrix-set-flags} + +Set the global effect flags. + +#### Arguments {#api-led-matrix-set-flags-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void led_matrix_set_flags_noeeprom(led_flags_t flags)` {#api-led-matrix-set-flags-noeeprom} + +Set the global effect flags. New state is not written to EEPROM. + +#### Arguments {#api-led-matrix-set-flags-noeeprom-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void led_matrix_flags_step(void)` {#api-led-matrix-flags-step} + +Move to the next flag combination. + +--- + +### `void led_matrix_flags_step_noeeprom(void)` {#api-led-matrix-flags-step-noeeprom} + +Move to the next flag combination. New state is not written to EEPROM. + +--- + +### `void led_matrix_flags_step_reverse(void)` {#api-led-matrix-flags-step-reverse} + +Move to the previous flag combination. + +--- + +### `void led_matrix_flags_step_reverse_noeeprom(void)` {#api-led-matrix-flags-step-reverse-noeeprom} + +Move to the previous flag combination. New state is not written to EEPROM. + +--- + +### `uint8_t led_matrix_get_flags(void)` {#api-led-matrix-get-flags} + +Get the current global effect flags. + +#### Return Value {#api-led-matrix-get-flags-return} + +The current effect [flags](#flags). + +--- + ### `void led_matrix_reload_from_eeprom(void)` {#api-led-matrix-reload-from-eeprom} Reload the effect configuration (enabled, mode and brightness) from EEPROM. diff --git a/docs/features/mouse_keys.md b/docs/features/mouse_keys.md index 86b50fa9c8..bb340f58e6 100644 --- a/docs/features/mouse_keys.md +++ b/docs/features/mouse_keys.md @@ -77,6 +77,7 @@ Tips: * For smoother cursor movements, lower the value of `MOUSEKEY_INTERVAL`. If the refresh rate of your display is 60Hz, you could set it to `16` (1/60). As this raises the cursor speed significantly, you may want to lower `MOUSEKEY_MAX_SPEED`. * Setting `MOUSEKEY_TIME_TO_MAX` or `MOUSEKEY_WHEEL_TIME_TO_MAX` to `0` will disable acceleration for the cursor or scrolling respectively. This way you can make one of them constant while keeping the other accelerated, which is not possible in constant speed mode. * Setting `MOUSEKEY_WHEEL_INTERVAL` too low will make scrolling too fast. Setting it too high will make scrolling too slow when the wheel key is held down. +* `MS_ACL0`, `MS_ACL1` and `MS_ACL2` change the cursor and scroll speed to 1/4, 1/2, and the maximum speed, respectively. Cursor acceleration uses the same algorithm as the X Window System MouseKeysAccel feature. You can read more about it [on Wikipedia](https://en.wikipedia.org/wiki/Mouse_keys). diff --git a/docs/features/os_detection.md b/docs/features/os_detection.md index 880e88d4b9..ee85d83bc2 100644 --- a/docs/features/os_detection.md +++ b/docs/features/os_detection.md @@ -136,12 +136,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { print_stored_setups(); } return false; + default: + return true; // Process all other keycodes normally } } ``` -Then please open an issue on Github with this information and tell what OS was not detected correctly and if you have any intermediate devices between keyboard and your computer. +Add both `STORE_SETUPS` and `PRINT_SETUPS` to your keyboard's keymap. Connect the keyboard to the device where the OS was not recognised, and press the `STORE_SETUPS` key to capture and store the fingerprint. On your development computer, run one of the suggested [console debugging tools](/faq_debug#debugging-tools), connect the keyboard, and press the `PRINT_SETUPS` key. The console should display multiple lines of data from the most recent `STORE_SETUPS` run. +Open an issue on GitHub and paste the console output into the issue. Also tell us which OS (including the version, if possible) was not detected correctly and whether any intermediate devices, such as a USB hub, were used between the keyboard and the target device. + +::: tip +If `STORE_SETUPS` has not been used previously, `PRINT_SETUPS` will report whatever values are already present in the controller's EEPROM. These may appear as random numbers. +::: ## Credits diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md index d6dcddcdf0..8319db7823 100644 --- a/docs/features/pointing_device.md +++ b/docs/features/pointing_device.md @@ -267,6 +267,23 @@ The paw 3204 sensor uses a serial type protocol for communication, and requires The CPI range is 400-1600, with supported values of (400, 500, 600, 800, 1000, 1200 and 1600). Defaults to 1000 CPI. +### PAW-3222 Sensor + +To use the PAW-3222 sensor, add this to your `rules.mk`: + +```make +POINTING_DEVICE_DRIVER = paw3222 +``` + +The following pins must be defined in `config.h`: + +| Setting (`config.h`) | Description | Default | +| --------------------- | ------------------------------------------------------------------ | ---------------------------- | +| `PAW3222_CS_PIN` | (Required) The pin connected to the chip select pin of the sensor. | `POINTING_DEVICE_CS_PIN` | +| `PAW3222_SPI_DIVISOR` | (Required) The SPI clock divisor. This is dependent on your MCU. | _not defined_ | + +The CPI range is up to 4,000. Defaults to 1,000 CPI. + ### Pimoroni Trackball To use the Pimoroni Trackball module, add this to your `rules.mk`: @@ -303,6 +320,23 @@ The PMW3320 sensor uses a serial type protocol for communication, and requires a The CPI range is 500-3500, in increments of 250. Defaults to 1000 CPI. +### PMW-3325 Sensor + +To use the PMW-3325 sensor, add this to your `rules.mk`: + +```make +POINTING_DEVICE_DRIVER = pmw3325 +``` + +The following pins must be defined in `config.h`: + +| Setting (`config.h`) | Description | Default | +| --------------------- | ------------------------------------------------------------------ | ---------------------------- | +| `PMW3325_CS_PIN` | (Required) The pin connected to the chip select pin of the sensor. | `POINTING_DEVICE_CS_PIN` | +| `PMW3325_SPI_DIVISOR` | (Required) The SPI clock divisor. This is dependent on your MCU. | _not defined_ | + +The CPI range is 100-5000, in increments of 100. Defaults to 2000 CPI. + ### PMW 3360 and PMW 3389 Sensor This drivers supports both the PMW 3360 and PMW 3389 sensor as well as multiple sensors of the same type _per_ controller, so 2 can be attached at the same side for split keyboards (or unsplit keyboards). diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index 95ee4c4896..36680f24a2 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -96,6 +96,8 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{ |`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level | |`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed | |`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed | +|`QK_RGB_MATRIX_FLAG_NEXT` |`RM_FLGN`|Cycle through flags | +|`QK_RGB_MATRIX_FLAG_PREVIOUS` |`RM_FLGP`|Cycle through flags in reverse | ## RGB Matrix Effects {#rgb-matrix-effects} @@ -409,6 +411,7 @@ const char* effect_name = rgb_matrix_get_mode_name(rgb_matrix_get_mode()); #define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR #define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards +#define RGB_MATRIX_FLAG_STEPS { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE } // Sets the flags which can be cycled through. ``` ## EEPROM storage {#eeprom-storage} @@ -852,6 +855,62 @@ The current effect speed, from 0 to 255. --- +### `void rgb_matrix_set_flags(led_flags_t flags)` {#api-rgb-matrix-set-flags} + +Set the global effect flags. + +#### Arguments {#api-rgb-matrix-set-flags-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void rgb_matrix_set_flags_noeeprom(led_flags_t flags)` {#api-rgb-matrix-set-flags-noeeprom} + +Set the global effect flags. New state is not written to EEPROM. + +#### Arguments {#api-rgb-matrix-set-flags-noeeprom-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void rgb_matrix_flags_step(void)` {#api-rgb-matrix-flags-step} + +Move to the next flag combination. + +--- + +### `void rgb_matrix_flags_step_noeeprom(void)` {#api-rgb-matrix-flags-step-noeeprom} + +Move to the next flag combination. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_flags_step_reverse(void)` {#api-rgb-matrix-flags-step-reverse} + +Move to the previous flag combination. + +--- + +### `void rgb_matrix_flags_step_reverse_noeeprom(void)` {#api-rgb-matrix-flags-step-reverse-noeeprom} + +Move to the previous flag combination. New state is not written to EEPROM. + +--- + +### `uint8_t rgb_matrix_get_flags(void)` {#api-rgb-matrix-get-flags} + +Get the current global effect flags. + +#### Return Value {#api-rgb-matrix-get-flags-return} + +The current effect [flags](#flags). + +--- + ### `void rgb_matrix_sethsv(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv} Set the global effect hue, saturation, and value (brightness). diff --git a/docs/features/tap_dance.md b/docs/features/tap_dance.md index d533e41aaa..688241a16b 100644 --- a/docs/features/tap_dance.md +++ b/docs/features/tap_dance.md @@ -40,6 +40,10 @@ Similar to the first option, the second and third option are good for simple lay For more complicated cases, like blink the LEDs, fiddle with the backlighting, and so on, use the fourth or fifth option. Examples of each are listed below. +::: tip +If too many tap dances are active at the same time, later ones won't have any effect. You need to increase `TAP_DANCE_MAX_SIMULTANEOUS` by adding `#define TAP_DANCE_MAX_SIMULTANEOUS 5` (or higher) to your keymap's `config.h` file if you expect that users may hold down many tap dance keys simultaneously. By default, only 3 tap dance keys can be used together at the same time. +::: + ## Implementation Details {#implementation} Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works! @@ -209,11 +213,13 @@ tap_dance_action_t tap_dance_actions[] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; + tap_dance_state_t* state; switch (keycode) { - case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations - action = &tap_dance_actions[QK_TAP_DANCE_GET_INDEX(keycode)]; - if (!record->event.pressed && action->state.count && !action->state.finished) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; tap_code16(tap_hold->tap); } diff --git a/docs/features/unicode.md b/docs/features/unicode.md index 7ed178c30d..a19f11a52e 100644 --- a/docs/features/unicode.md +++ b/docs/features/unicode.md @@ -8,9 +8,9 @@ There are some limitations to this feature. Because there is no "standard" metho ## Usage {#usage} -The core Unicode API can be used purely programmatically. However, there are also additional subsystems which build on top of it and come with keycodes to make things easier. See below for more details. +The core Unicode API can be used purely programmatically. However, there are also additional subsystems which build on top of it and come with keycodes to make things easier. See [below](#input-subsystems) for more details. -Add the following to your keymap's `rules.mk`: +To start, add the following to your keymap's `rules.mk`: ```make UNICODE_COMMON = yes @@ -18,22 +18,25 @@ UNICODE_COMMON = yes ## Basic Configuration {#basic-configuration} -Add the following to your `config.h`: +The following options can be set or overridden in your `config.h`: |Define |Default |Description | |------------------------|------------------|--------------------------------------------------------------------------------| |`UNICODE_KEY_MAC` |`KC_LEFT_ALT` |The key to hold when beginning a Unicode sequence with the macOS input mode | |`UNICODE_KEY_LNX` |`LCTL(LSFT(KC_U))`|The key to tap when beginning a Unicode sequence with the Linux input mode | |`UNICODE_KEY_WINC` |`KC_RIGHT_ALT` |The key to hold when beginning a Unicode sequence with the WinCompose input mode| -|`UNICODE_SELECTED_MODES`|`-1` |A comma separated list of input modes for cycling through | +|`UNICODE_SELECTED_MODES`|*n/a* |A comma separated list of input modes for cycling through | |`UNICODE_CYCLE_PERSIST` |`true` |Whether to persist the current Unicode input mode to EEPROM | |`UNICODE_TYPE_DELAY` |`10` |The amount of time to wait, in milliseconds, between Unicode sequence keystrokes| +The default values work well for most use cases, so users usually only need to define `UNICODE_SELECTED_MODES` to set their desired input modes. +However, if you plan on switching input modes manually (see [keycodes](#keycodes) below) and don't plan on cycling through them, this definition can be omitted. + ### Audio Feedback {#audio-feedback} If you have the [Audio](audio) feature enabled on your board, you can configure it to play sounds when the input mode is changed. -Add the following to your `config.h`: +Add one or more of the following definitions to your `config.h`: |Define |Default|Description | |-------------------|-------|-----------------------------------------------------------| diff --git a/docs/flashing.md b/docs/flashing.md index 29dc780aaf..35c7911ec8 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -217,8 +217,8 @@ To generate this bootloader, use the `bootloader` target, eg. `make planck/rev4: Compatible flashers: -* TBD - * Currently, you need to either use the [Python script](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp_python), or compile [`hid_bootloader_cli`](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp), from the LUFA repo. Homebrew may (will) have support for this directly (via `brew install qmk/qmk/hid_bootloader_cli`). +* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI) +* [hid_bootloader_cli](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp) / `:qmk-hid` target in QMK (recommended command line) Flashing sequence: diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md index 54f915e444..c615b6ecab 100644 --- a/docs/getting_started_make_guide.md +++ b/docs/getting_started_make_guide.md @@ -91,7 +91,7 @@ Enables your LED to breath while your computer is sleeping. Timer1 is being used `NKRO_ENABLE` -This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if `NKRO_ENABLE` is set. NKRO can be forced by adding `#define FORCE_NKRO` to your config.h or by binding `MAGIC_TOGGLE_NKRO` to a key and then hitting the key. +This allows the keyboard to tell the host OS that up to 248 keys are held down at once (default without NKRO is 6). NKRO is off by default, even if `NKRO_ENABLE` is set. NKRO can be toggled by binding `NK_TOGG` to a key and then hitting the key. `BACKLIGHT_ENABLE` diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md index 6f3f0a8f7d..1eaec3b59d 100644 --- a/docs/isp_flashing_guide.md +++ b/docs/isp_flashing_guide.md @@ -220,14 +220,18 @@ This bootloader is primarily for keyboards originally designed for the PS2AVRGB USBaspLoader is a bootloader based on V-USB that emulates a hardware USBasp device. It runs on ATmega32A and ATmega328P MCUs. -Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and following Coseyfannitutti's guide for the appropriate MCU: +Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and cloning the appropriate branch of Coseyfannitutti's USBaspLoader fork: -|MCU |Low |High |Extended|USB ID | -|-------------------------------------------------------------------------------------|------|------|--------|-----------| -|[ATmega32A](https://github.com/coseyfannitutti/discipline/tree/master/doc/bootloader)|`0x1F`|`0xC0`|*n/a* |`16C0:05DC`| -|[ATmega328P](https://github.com/coseyfannitutti/discipad/tree/master/doc/bootloader) |`0xD7`|`0xD0`|`0x04` |`16C0:05DC`| +|MCU |Low |High |Extended|USB ID | +|-----------------------------------------------------------------------------|------|------|--------|-----------| +|[ATmega32A](https://github.com/coseyfannitutti/USBaspLoader/tree/atmega32a) |`0x1F`|`0xC0`|*n/a* |`16C0:05DC`| +|[ATmega328P](https://github.com/coseyfannitutti/USBaspLoader/tree/atmega328p)|`0xD7`|`0xD0`|`0x04` |`16C0:05DC`| -Note that some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme. +From there, simply `cd` to the `firmware/` directory and run `make`, which should produce a file called `main.hex`. + +:::tip +Some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme. +::: ## Flashing the Bootloader diff --git a/docs/keycodes.md b/docs/keycodes.md index c540a7ce7f..9c918b7676 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -433,6 +433,8 @@ See also: [LED Matrix](features/led_matrix) |`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level | |`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed | |`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed | +|`QK_LED_MATRIX_FLAG_NEXT` |`LM_FLGN`|Cycle through flags | +|`QK_LED_MATRIX_FLAG_PREVIOUS` |`LM_FLGP`|Cycle through flags in reverse | ## Magic Keycodes {#magic-keycodes} @@ -783,6 +785,8 @@ See also: [RGB Matrix](features/rgb_matrix) |`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level | |`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed | |`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed | +|`QK_RGB_MATRIX_FLAG_NEXT` |`RM_FLGN`|Cycle through flags | +|`QK_RGB_MATRIX_FLAG_PREVIOUS` |`RM_FLGP`|Cycle through flags in reverse | ## US ANSI Shifted Symbols {#us-ansi-shifted-symbols} diff --git a/docs/license_violations.md b/docs/license_violations.md index 0b152f6960..390280dfe9 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -33,11 +33,13 @@ If you own a board from one of the following vendors already, consider asking th | iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | | KiiBOOM | Seems to use the same OEM as Epomaker, same problems. | | kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. | +| Lofree | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | | MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. | | owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. | +| PMO Lab | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided | | qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | | Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 1d2b60781b..f86da40af6 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -50,90 +50,66 @@ You will need to install [MSYS2](https://www.msys2.org). Once installed, close a Install the QMK CLI by running: ```sh -pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-python-qmk +curl -fsSL https://install.qmk.fm | sh ``` :::: ==== macOS -QMK maintains a Homebrew tap and formula which will automatically install the CLI and all necessary dependencies. - #### Prerequisites You will need to install Homebrew. Follow the instructions on https://brew.sh. -::: tip -If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains. -::: - #### Installation Install the QMK CLI by running: ```sh -brew install qmk/qmk/qmk +curl -fsSL https://install.qmk.fm | sh ``` ==== Linux/WSL +#### Installation + +::: info +Many Linux distributions are supported, but not all. Mainstream distributions will have best success -- if possible, choose either Debian or its derivatives (such as Ubuntu, or Mint), CentOS or its derivatives (such as Fedora, or Rocky Linux), and Arch or its derivatives (such as Manjaro, or CachyOS). + +**The standard QMK build environment installed below does not support `musl`-based Linux distributions.** +::: + +Install the QMK CLI by running: + +```sh +curl -fsSL https://install.qmk.fm | sh +``` + ::: tip **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197). ::: -#### Prerequisites - -You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them: - -* Debian / Ubuntu / Devuan: `sudo apt install -y git python3-pip` -* Fedora / Red Hat / CentOS: `sudo yum -y install git python3-pip` -* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git python-pip libffi` -* Void: `sudo xbps-install -y git python3-pip` -* Solus: `sudo eopkg -y install git python3` -* Sabayon: `sudo equo install dev-vcs/git dev-python/pip` -* Gentoo: `sudo emerge dev-vcs/git dev-python/pip` - -#### Installation - -Install the QMK CLI by running: - -```sh -python3 -m pip install --user qmk -``` - -Alternatively, install the QMK CLI as a [uv](https://docs.astral.sh/uv/) managed tool, kept isolated in a virtual environment (requires uv to be installed): - -```sh -uv tool install qmk -``` - -#### Community Packages - -These packages are maintained by community members, so may not be up to date or completely functional. If you encounter problems, please report them to their respective maintainers. - -On Arch-based distros you can install the CLI from the official repositories (NOTE: at the time of writing this package marks some dependencies as optional that should not be): - -```sh -sudo pacman -S qmk -``` - -You can also try the `qmk-git` package from AUR: - -```sh -yay -S qmk-git -``` +::: warning +Any QMK packages provided by your distribution's package manager are almost certainly out of date. It is strongly suggested the installation script above is used instead. +::: ==== FreeBSD #### Installation +::: warning +FreeBSD support is provided on a best-effort basis by the community instead of the QMK maintainers. It is strongly suggested that you use either Windows, macOS, or a supported distribution of Linux instead. +::: + Install the FreeBSD package for QMK CLI by running: ```sh pkg install -g "py*-qmk" ``` -NOTE: remember to follow the instructions printed at the end of installation (use `pkg info -Dg "py*-qmk"` to show them again). +::: info NOTE +Remember to follow the instructions printed at the end of installation (use `pkg info -Dg "py*-qmk"` to show them again). +::: ::::: diff --git a/docs/public/pin_compatible_elite_c.svg b/docs/public/pin_compatible_elite_c.svg new file mode 100644 index 0000000000..cf85449dab --- /dev/null +++ b/docs/public/pin_compatible_elite_c.svg @@ -0,0 +1,61 @@ +pinsBDCFF75710D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 diff --git a/docs/public/pin_compatible_promicro.svg b/docs/public/pin_compatible_promicro.svg new file mode 100644 index 0000000000..46299f4f60 --- /dev/null +++ b/docs/public/pin_compatible_promicro.svg @@ -0,0 +1,61 @@ +pinsLEDsB0D5D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index bbe8944516..fbc72cb053 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -534,6 +534,8 @@ QUANTUM_PAINTER_DRIVERS += surface Creating a surface in firmware can then be done with the following APIs: ```c +// 24bpp RGB888 surface: +painter_device_t qp_make_rgb888_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); // 16bpp RGB565 surface: painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); // 1bpp monochrome surface: diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 84377ef36c..301e4b12dd 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -327,6 +327,21 @@ Configures the [LED Indicators](features/led_indicators) feature. * `scroll_lock` Pin * The GPIO pin connected to the Scroll Lock LED. +## (Custom) Keycodes {#keycodes} + +Defines [custom keycodes](custom_quantum_functions#definining-a-new-keycode) for use within keymaps. + +* `keycodes` Array: Object + * A list of keycode objects. + * `key` String Required + * The enum name of the custom keycode. + * Example: `LAYER_CHANGE_BEEP_ON` + * `label` String + * A short description of the custom keycode. + * `aliases` Array: String + * A list of shortened names for the custom keycode. + * Example: `["LCBON", "LCB_ON"]` + ## Layouts {#layouts} The `layouts` portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout names, for example `LAYOUT_60_ansi` or `LAYOUT_60_iso`. @@ -415,6 +430,9 @@ Configures the [LED Matrix](features/led_matrix) feature. * `center_point` Array: Number * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` + * `flag_steps` Array: Number + * A list of flag bitfields that can be cycled through. + * Default: `[255, 5, 0]` * `default` * `animation` String * The default effect. Must be one of `led_matrix.animations` @@ -428,6 +446,9 @@ Configures the [LED Matrix](features/led_matrix) feature. * `speed` Number * The default animation speed. * Default: `128` + * `flags` Number + * The default LED flags. + * Default: `255` * `driver` String Required * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`. * `layout` Array: Object Required @@ -507,7 +528,7 @@ Configures the [LED Matrix](features/led_matrix) feature. * The amount of time to wait between row/col selection and col/row pin reading, in microseconds. * Default: `30` (30 µs) * `masked` Boolean - * Whether configured intersections should be ignored. + * Whether unconfigured intersections should be ignored. * Default: `false` * `rows` Array: Pin * A list of GPIO pins connected to the matrix rows. @@ -660,6 +681,9 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * `center_point` Array: Number * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` + * `flag_steps` Array: Number + * A list of flag bitfields that can be cycled through. + * Default: `[255, 5, 2, 0]` * `default` * `animation` String * The default effect. Must be one of `rgb_matrix.animations` @@ -679,6 +703,9 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * `speed` Number * The default animation speed. * Default: `128` + * `flags` Number + * The default LED flags. + * Default: `255` * `driver` String Required * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. * `hue_steps` Number diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md index 458b442d59..3eed847f07 100644 --- a/docs/squeezing_avr.md +++ b/docs/squeezing_avr.md @@ -87,26 +87,6 @@ Or if you're not using layers at all, you can outright remove the functionality #define NO_ACTION_LAYER ``` -## Magic Functions - -There are two `__attribute__ ((weak))` placeholder functions available to customize magic keycodes. If you are not using that feature to swap keycodes, such as backslash with backspace, add the following to your `keymap.c` or user space code: -```c -#ifndef MAGIC_ENABLE -uint16_t keycode_config(uint16_t keycode) { - return keycode; -} -#endif -``` -Likewise, if you are not using magic keycodes to swap modifiers, such as Control with GUI, add the following to your `keymap.c` or user space code: -```c -#ifndef MAGIC_ENABLE -uint8_t mod_config(uint8_t mod) { - return mod; -} -#endif -``` -Both of them will overwrite the placeholder functions with a simple return statement to reduce firmware size. - ## OLED tweaks One place you can save a bunch of space here is by not using `sprintf` or `snprintf`. This function call takes up ~1.5kB of firmware space, and can be rewritten. For instance, WPM uses this a lot. diff --git a/docs/tap_hold.md b/docs/tap_hold.md index bc2c505040..8fe81cfe1d 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -604,6 +604,20 @@ Or if the two keys are on opposite hands and the `PERMISSIVE_HOLD` option is enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when that `KC_C` is released. +As an exception to the opposite hands rule, Chordal Hold supports combining +multiple same-side modifiers within the tapping term. This is useful for +multi-mod hotkeys like Ctrl + Shift + V. For instance with Chordal Hold together +with either Permissive Hold or Hold On Other Key Press, the following input +results in Ctrl + Shift + V being sent, supposing `J` and `K` are on the right +hand side and `V` is on the left hand side: + +- `SFT_T(KC_J)` Down +- `CTL_T(KC_K)` Down +- `KC_V` Down +- `KC_V` Up +- `SFT_T(KC_J)` Up +- `CTL_T(KC_K)` Up + ### Chordal Hold Handedness Determining whether keys are on the same or opposite hands involves defining the @@ -779,6 +793,62 @@ Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bi [Auto Shift](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information. +## Speculative Hold + +Speculative Hold makes mod-tap keys more responsive by applying the modifier instantly on keydown, before the tap-hold decision is made. This is especially useful for actions like Shift+Click with a mouse, which can feel laggy with standard mod-taps. + +The firmware holds the modifier speculatively. Once the key's behavior is settled: + +* If held, the modifier remains active as expected until the key is released. +* If tapped, the speculative modifier is canceled just before the tapping keycode is sent. + +Speculative Hold applies the modifier early but does not change the underlying tap-hold decision logic. Speculative Hold is compatible to use in combination with any other tap-hold options. + +To enable Speculative Hold, add the following to your `config.h`: + +```c +#define SPECULATIVE_HOLD +``` + +By default, Speculative Hold applies to mod-taps using Shift, Ctrl, or Shift + Ctrl. You can override this behavior by defining the `get_speculative_hold()` callback in your keymap, for instance: + +```c +bool get_speculative_hold(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { // These keys may be speculatively held. + case LCTL_T(KC_ESC): + case LSFT_T(KC_Z): + case RSFT_T(KC_SLSH): + return true; + } + return false; // Disable otherwise. +} +``` + +Some operating systems or applications assign actions to tapping a modifier key by itself, e.g., tapping GUI to open a start menu. Because Speculative Hold sometimes sends a lone modifier key press, it can falsely trigger these actions (known as the "flashing mods" problem). How such an input is handled depends on the OS and application, so unfortunately, there is no universal solution. + +To mitigate this issue, you can set `DUMMY_MOD_NEUTRALIZER_KEYCODE` (and optionally `MODS_TO_NEUTRALIZE`) in your `config.h`, as described above for [Retro Tapping](#retro-tapping). + +You can further prevent flashing mods by restricting when Speculative Hold is allowed to trigger. There are several options for this: + +* Constrain Speculative Hold to one key at a time. Add to your config.h: + + ```c + #define SPECULATIVE_HOLD_ONE_KEY + ``` + + With this option, Speculative Hold does not apply when any mods are already active. Mod combinations across multiple keys can still be made after the mod-tap keys settle. + +* Disable Speculative Hold during the flow of fast typing. Add to your config.h: + + ```c + #define SPECULATIVE_HOLD_FLOW_TERM 200 + ``` + + This value specifies a duration in milliseconds. Speculative Hold does not apply if a key is pressed within this threshold of the previous key. The effect is similar to [Flow Tap](#flow-tap); however, `SPECULATIVE_HOLD_FLOW_TERM` only restricts when speculation is allowed, without affecting how the key settles. + +* Use the Flow Tap option. In the fast flow of typing, the mod-tap key is immediately settled, and therefore no speculation occurs. See [Flow Tap](#flow-tap) for details. + + ## Why do we include the key record for the per key functions? One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that. @@ -787,4 +857,4 @@ Well, it's simple really: customization. But specifically, it depends on how you ## Why are there no `*_kb` or `*_user` functions?! -Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum- or keyboard-level function. Only user-level functions are useful here, so there is no need to mark them as such. \ No newline at end of file +Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum- or keyboard-level function. Only user-level functions are useful here, so there is no need to mark them as such. diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp index 5fdd104dcf..bb5014360c 100644 --- a/drivers/bluetooth/bluefruit_le.cpp +++ b/drivers/bluetooth/bluefruit_le.cpp @@ -364,7 +364,7 @@ static bool read_response(char *resp, uint16_t resplen, bool verbose) { } static bool at_command(const char *cmd, char *resp, uint16_t resplen, bool verbose, uint16_t timeout) { - const char * end = cmd + strlen(cmd); + const char *end = cmd + strlen(cmd); struct sdep_msg msg; if (verbose) { diff --git a/drivers/bluetooth/ringbuffer.hpp b/drivers/bluetooth/ringbuffer.hpp index 70a3c4881d..ea0c564ec9 100644 --- a/drivers/bluetooth/ringbuffer.hpp +++ b/drivers/bluetooth/ringbuffer.hpp @@ -2,65 +2,68 @@ // A simple ringbuffer holding Size elements of type T template class RingBuffer { - protected: - T buf_[Size]; - uint8_t head_{0}, tail_{0}; - public: - inline uint8_t nextPosition(uint8_t position) { - return (position + 1) % Size; - } + protected: + T buf_[Size]; + uint8_t head_{0}, tail_{0}; - inline uint8_t prevPosition(uint8_t position) { - if (position == 0) { - return Size - 1; - } - return position - 1; - } - - inline bool enqueue(const T &item) { - static_assert(Size > 1, "RingBuffer size must be > 1"); - uint8_t next = nextPosition(head_); - if (next == tail_) { - // Full - return false; + public: + inline uint8_t nextPosition(uint8_t position) { + return (position + 1) % Size; } - buf_[head_] = item; - head_ = next; - return true; - } - - inline bool get(T &dest, bool commit = true) { - auto tail = tail_; - if (tail == head_) { - // No more data - return false; + inline uint8_t prevPosition(uint8_t position) { + if (position == 0) { + return Size - 1; + } + return position - 1; } - dest = buf_[tail]; - tail = nextPosition(tail); + inline bool enqueue(const T &item) { + static_assert(Size > 1, "RingBuffer size must be > 1"); + uint8_t next = nextPosition(head_); + if (next == tail_) { + // Full + return false; + } - if (commit) { - tail_ = tail; + buf_[head_] = item; + head_ = next; + return true; } - return true; - } - inline bool empty() const { return head_ == tail_; } + inline bool get(T &dest, bool commit = true) { + auto tail = tail_; + if (tail == head_) { + // No more data + return false; + } - inline uint8_t size() const { - int diff = head_ - tail_; - if (diff >= 0) { - return diff; + dest = buf_[tail]; + tail = nextPosition(tail); + + if (commit) { + tail_ = tail; + } + return true; } - return Size + diff; - } - inline T& front() { - return buf_[tail_]; - } + inline bool empty() const { + return head_ == tail_; + } - inline bool peek(T &item) { - return get(item, false); - } + inline uint8_t size() const { + int diff = head_ - tail_; + if (diff >= 0) { + return diff; + } + return Size + diff; + } + + inline T &front() { + return buf_[tail_]; + } + + inline bool peek(T &item) { + return get(item, false); + } }; diff --git a/drivers/eeprom/eeprom_i2c.c b/drivers/eeprom/eeprom_i2c.c index d29aff5f85..8c6c16d810 100644 --- a/drivers/eeprom/eeprom_i2c.c +++ b/drivers/eeprom/eeprom_i2c.c @@ -104,7 +104,7 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { void eeprom_write_block(const void *buf, void *addr, size_t len) { uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE + EXTERNAL_EEPROM_PAGE_SIZE]; - uint8_t * read_buf = (uint8_t *)buf; + uint8_t *read_buf = (uint8_t *)buf; uintptr_t target_addr = (uintptr_t)addr; #if defined(EXTERNAL_EEPROM_WP_PIN) diff --git a/drivers/eeprom/eeprom_spi.c b/drivers/eeprom/eeprom_spi.c index 14f0afa68b..9e85286403 100644 --- a/drivers/eeprom/eeprom_spi.c +++ b/drivers/eeprom/eeprom_spi.c @@ -154,7 +154,7 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { void eeprom_write_block(const void *buf, void *addr, size_t len) { bool res; - uint8_t * read_buf = (uint8_t *)buf; + uint8_t *read_buf = (uint8_t *)buf; uintptr_t target_addr = (uintptr_t)addr; while (len > 0) { diff --git a/drivers/encoder/encoder_quadrature.c b/drivers/encoder/encoder_quadrature.c index 086f500391..b3aeb136b2 100644 --- a/drivers/encoder/encoder_quadrature.c +++ b/drivers/encoder/encoder_quadrature.c @@ -27,8 +27,6 @@ # define ENCODER_DEFAULT_PIN_API_IMPL #endif -extern volatile bool isLeftHand; - __attribute__((weak)) void encoder_quadrature_init_pin(uint8_t index, bool pad_b); __attribute__((weak)) uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b); @@ -108,12 +106,12 @@ void encoder_quadrature_post_init(void) { void encoder_driver_init(void) { #ifdef SPLIT_KEYBOARD - thisHand = isLeftHand ? 0 : NUM_ENCODERS_LEFT; + thisHand = is_keyboard_left() ? 0 : NUM_ENCODERS_LEFT; thatHand = NUM_ENCODERS_LEFT - thisHand; - thisCount = isLeftHand ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT; - thatCount = isLeftHand ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT; + thisCount = is_keyboard_left() ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT; + thatCount = is_keyboard_left() ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT; #else // SPLIT_KEYBOARD - thisCount = NUM_ENCODERS; + thisCount = NUM_ENCODERS; #endif #ifdef ENCODER_TESTS @@ -133,7 +131,7 @@ void encoder_driver_init(void) { #if defined(SPLIT_KEYBOARD) && defined(ENCODER_A_PINS_RIGHT) && defined(ENCODER_B_PINS_RIGHT) // Re-initialise the pads if it's the right-hand side - if (!isLeftHand) { + if (!is_keyboard_left()) { const pin_t encoders_pad_a_right[] = ENCODER_A_PINS_RIGHT; const pin_t encoders_pad_b_right[] = ENCODER_B_PINS_RIGHT; for (uint8_t i = 0; i < thisCount; i++) { diff --git a/drivers/flash/flash_spi.c b/drivers/flash/flash_spi.c index 7226773ff4..5816a896fe 100644 --- a/drivers/flash/flash_spi.c +++ b/drivers/flash/flash_spi.c @@ -291,7 +291,7 @@ flash_status_t flash_erase_block(uint32_t addr) { flash_status_t flash_read_range(uint32_t addr, void *buf, size_t len) { flash_status_t response = FLASH_STATUS_SUCCESS; - uint8_t * read_buf = (uint8_t *)buf; + uint8_t *read_buf = (uint8_t *)buf; /* Wait for the write-in-progress bit to be cleared. */ response = spi_flash_wait_while_busy(); @@ -322,7 +322,7 @@ flash_status_t flash_read_range(uint32_t addr, void *buf, size_t len) { flash_status_t flash_write_range(uint32_t addr, const void *buf, size_t len) { flash_status_t response = FLASH_STATUS_SUCCESS; - uint8_t * write_buf = (uint8_t *)buf; + uint8_t *write_buf = (uint8_t *)buf; while (len > 0) { uint32_t page_offset = addr % EXTERNAL_FLASH_PAGE_SIZE; diff --git a/drivers/haptic/solenoid.h b/drivers/haptic/solenoid.h index 17f5345bc6..3d8a4c732d 100644 --- a/drivers/haptic/solenoid.h +++ b/drivers/haptic/solenoid.h @@ -47,8 +47,7 @@ #ifndef SOLENOID_PINS # ifdef SOLENOID_PIN -# define SOLENOID_PINS \ - { SOLENOID_PIN } +# define SOLENOID_PINS {SOLENOID_PIN} # else # error SOLENOID_PINS array not defined # endif diff --git a/drivers/i2c_master.h b/drivers/i2c_master.h index dbe1cd42fa..5f6094bc81 100644 --- a/drivers/i2c_master.h +++ b/drivers/i2c_master.h @@ -72,6 +72,21 @@ i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t lengt */ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); +/** + * \brief Send multiple bytes and then receive multiple bytes from the selected I2C device. + * + * \param address The 7-bit I2C address of the device. + * \param tx_data A pointer to the data to transmit. + * \param tx_length The number of bytes to write. Take care not to overrun the length of `tx_data`. + * \param rx_data A pointer to a buffer to read into. + * \param rx_length The number of bytes to read. Take care not to overrun the length of `rx_data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ + +i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout); + /** * \brief Write to a register with an 8-bit address on the I2C device. * diff --git a/drivers/lcd/st7565.c b/drivers/lcd/st7565.c index f24bb78048..3ce40bc852 100644 --- a/drivers/lcd/st7565.c +++ b/drivers/lcd/st7565.c @@ -70,7 +70,7 @@ along with this program. If not, see . // parts of the display unusable or don't get cleared correctly // and also allows for drawing & inverting uint8_t st7565_buffer[ST7565_MATRIX_SIZE]; -uint8_t * st7565_cursor; +uint8_t *st7565_cursor; ST7565_BLOCK_TYPE st7565_dirty = 0; bool st7565_initialized = false; bool st7565_active = false; diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 6a13153374..ead8a11afc 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -145,8 +145,6 @@ void apa102_flush(void) { void apa102_set_brightness(uint8_t brightness) { if (brightness > APA102_MAX_BRIGHTNESS) { apa102_led_brightness = APA102_MAX_BRIGHTNESS; - } else if (brightness < 0) { - apa102_led_brightness = 0; } else { apa102_led_brightness = brightness; } diff --git a/drivers/led/issi/is31fl3729-mono.c b/drivers/led/issi/is31fl3729-mono.c index 13d5146877..668a5b3ca2 100644 --- a/drivers/led/issi/is31fl3729-mono.c +++ b/drivers/led/issi/is31fl3729-mono.c @@ -107,7 +107,7 @@ void is31fl3729_write_pwm_buffer(uint8_t index) { // Transmit PWM registers in 11 transfers of 13 bytes. // Iterate over the pwm_buffer contents at 13 byte intervals. - for (uint8_t i = 0; i <= IS31FL3729_PWM_REGISTER_COUNT; i += 13) { + for (uint8_t i = 0; i < IS31FL3729_PWM_REGISTER_COUNT; i += 13) { #if IS31FL3729_I2C_PERSISTENCE > 0 for (uint8_t j = 0; j < IS31FL3729_I2C_PERSISTENCE; j++) { if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3729_REG_PWM + i, driver_buffers[index].pwm_buffer + i, 13, IS31FL3729_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break; @@ -182,7 +182,7 @@ void is31fl3729_set_scaling_register(uint8_t index, uint8_t value) { // need to do a bit of checking here since 3729 scaling is per CS pin. // not the usual per single LED key as per other ISSI drivers // only enable them, since they should be default disabled - int cs_value = (led.v & 0x0F) - 1; + int cs_value = (led.v & 0x0F); driver_buffers[led.driver].scaling_buffer[cs_value] = value; driver_buffers[led.driver].scaling_buffer_dirty = true; diff --git a/drivers/led/issi/is31fl3729.c b/drivers/led/issi/is31fl3729.c index 80acb22fa2..231d2b00c3 100644 --- a/drivers/led/issi/is31fl3729.c +++ b/drivers/led/issi/is31fl3729.c @@ -107,7 +107,7 @@ void is31fl3729_write_pwm_buffer(uint8_t index) { // Transmit PWM registers in 11 transfers of 13 bytes. // Iterate over the pwm_buffer contents at 13 byte intervals. - for (uint8_t i = 0; i <= IS31FL3729_PWM_REGISTER_COUNT; i += 13) { + for (uint8_t i = 0; i < IS31FL3729_PWM_REGISTER_COUNT; i += 13) { #if IS31FL3729_I2C_PERSISTENCE > 0 for (uint8_t j = 0; j < IS31FL3729_I2C_PERSISTENCE; j++) { if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3729_REG_PWM + i, driver_buffers[index].pwm_buffer + i, 13, IS31FL3729_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break; @@ -184,9 +184,9 @@ void is31fl3729_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, // need to do a bit of checking here since 3729 scaling is per CS pin. // not the usual per RGB key as per other ISSI drivers // only enable them, since they should be default disabled - int cs_red = (led.r & 0x0F) - 1; - int cs_green = (led.g & 0x0F) - 1; - int cs_blue = (led.b & 0x0F) - 1; + int cs_red = (led.r & 0x0F); + int cs_green = (led.g & 0x0F); + int cs_blue = (led.b & 0x0F); driver_buffers[led.driver].scaling_buffer[cs_red] = red; driver_buffers[led.driver].scaling_buffer[cs_green] = green; diff --git a/drivers/led/snled27351-mono.c b/drivers/led/snled27351-mono.c index d87b856db6..723e5d138e 100644 --- a/drivers/led/snled27351-mono.c +++ b/drivers/led/snled27351-mono.c @@ -34,8 +34,7 @@ #endif #ifndef SNLED27351_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +# define SNLED27351_CURRENT_TUNE {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} #endif const uint8_t i2c_addresses[SNLED27351_DRIVER_COUNT] = { diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index 8ebf681bdb..f446cca97f 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -34,8 +34,7 @@ #endif #ifndef SNLED27351_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +# define SNLED27351_CURRENT_TUNE {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} #endif const uint8_t i2c_addresses[SNLED27351_DRIVER_COUNT] = { diff --git a/drivers/oled/glcdfont.c b/drivers/oled/glcdfont.c index 0e201d71ee..4099389691 100644 --- a/drivers/oled/glcdfont.c +++ b/drivers/oled/glcdfont.c @@ -1,16 +1,256 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later WITH BSD-2-Clause + #include "progmem.h" -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ - +/** + * QMK 6x8 Font for LCD and OLED displays + * + * Derived from the first half of the Adafruit GFX Library font: + * https://github.com/adafruit/Adafruit-GFX-Library + * + * The first 128 characters match that of code page 437, the character set used by the original IBM PC, which includes all printable ASCII characters. + * Each byte represents a column of 8 pixels, with the least significant bit being the top of the glyph. + * + * A large 21x3 character QMK Firmware logo is encoded from 0x80-0x94, 0xA0-0xB4, and 0xC0-0xD4. + * 2x2 character OS logos for Apple, Windows, Linux and Android are encoded from 0x95-0x9C and 0xB5-0xBC. + */ static const unsigned char font[] PROGMEM = { - 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, - 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E, 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, - 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 NUL / Ψ + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x01 SOH / ☺︎ + 0xC1, 0x94, 0xB0, 0x94, 0xC1, 0x00, // 0x02 STX / ☻ + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 ETX / ♥︎ + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 EOT / ♦︎ + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 ENQ / ♣︎ + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 ACK / ♠︎ + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 BEL / • + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 BS / ◘ + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 HT / ○ + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A LF / ◙ + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B VT / ♂︎ + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C FF / ♀︎ + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D CR / ♪ + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E SO / ♫ + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F SI / ☼ + + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 DLE / ► + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 DC1 / ◄ + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 DC2 / ↕︎ + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 DC3 / ‼︎ + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 DC4 / ¶ + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 NAK / § + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 SYN / ▬ + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 ETB / ↨ + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 CAN / ↑ + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 EM / ↓ + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A SUB / → + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B ESC / ← + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C FS / ∟ + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D GS / ↔︎ + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E RS / ▲ + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F US / ▼ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 Space + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 ! + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 " + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 # + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 $ + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 % + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 & + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 ' + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 ( + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 ) + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A * + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B + + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C , + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D - + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E . + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F / + + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 0 + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 1 + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 2 + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 3 + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 4 + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 5 + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 6 + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 7 + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 8 + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 9 + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A : + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B ; + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C < + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D = + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E > + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F ? + + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 @ + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 A + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 B + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 C + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 D + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 E + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 F + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 G + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 H + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 I + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A J + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B K + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C L + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D M + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E N + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F O + + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 P + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 Q + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 R + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 S + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 T + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 U + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 V + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 W + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 X + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 Y + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A Z + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B [ + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C Backslash + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D ] + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E ^ + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F _ + + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 ` + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 a + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 b + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 c + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 d + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 e + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 f + 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, // 0x67 g + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 h + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 i + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A j + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B k + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C l + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D m + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E n + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F o + + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 p + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, // 0x71 q + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 r + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 s + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 t + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 u + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 v + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 w + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 x + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, // 0x79 y + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A z + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B { + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C | + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D } + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E ~ + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F DEL / ⌂ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 QMK Logo Top 1 + 0x00, 0x00, 0x80, 0x80, 0xE0, 0xF0, // 0x81 QMK Logo Top 2 + 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0x7C, // 0x82 QMK Logo Top 3 + 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0xF0, // 0x83 QMK Logo Top 4 + 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x84 QMK Logo Top 5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x85 QMK Logo Top 6 + 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x86 QMK Logo Top 7 + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x87 QMK Logo Top 8 + 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x88 QMK Logo Top 9 + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, // 0x89 QMK Logo Top 10 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x8A QMK Logo Top 11 + 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x8B QMK Logo Top 12 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8C QMK Logo Top 13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8D QMK Logo Top 14 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E QMK Logo Top 15 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F QMK Logo Top 16 + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 QMK Logo Top 17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 QMK Logo Top 18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x92 QMK Logo Top 19 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x93 QMK Logo Top 20 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 QMK Logo Top 21 + 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, // 0x95 Apple Logo TL + 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, // 0x96 Apple Logo TR + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x97 Windows Logo TL + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x98 Windows Logo TR + 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, // 0x99 Linux Logo TL + 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, // 0x9A Linux Logo TR + 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, // 0x9B Android Logo TL + 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, // 0x9C Android Logo TR + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 QMK Logo Middle 1 + 0x00, 0x00, 0xAA, 0xAA, 0xFF, 0xFF, // 0xA1 QMK Logo Middle 2 + 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0x00, // 0xA2 QMK Logo Middle 3 + 0xDF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, // 0xA3 QMK Logo Middle 4 + 0xFF, 0xAA, 0xAA, 0x00, 0x00, 0x00, // 0xA4 QMK Logo Middle 5 + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, // 0xA5 QMK Logo Middle 6 + 0xC1, 0xC1, 0xC1, 0x7F, 0x3E, 0x00, // 0xA6 QMK Logo Middle 7 + 0xFF, 0xFF, 0x0F, 0x3C, 0x78, 0x3C, // 0xA7 QMK Logo Middle 8 + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, // 0xA8 QMK Logo Middle 9 + 0x1C, 0x3E, 0x77, 0xE3, 0xC1, 0x00, // 0xA9 QMK Logo Middle 10 + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0xAA QMK Logo Middle 11 + 0x19, 0x19, 0x19, 0x00, 0xFD, 0xFD, // 0xAB QMK Logo Middle 12 + 0x00, 0xFE, 0xFC, 0x06, 0x06, 0x00, // 0xAC QMK Logo Middle 13 + 0xFE, 0xFC, 0x06, 0x06, 0xFC, 0xFC, // 0xAD QMK Logo Middle 14 + 0x06, 0x06, 0xFE, 0xFC, 0x00, 0x1E, // 0xAE QMK Logo Middle 15 + 0x7C, 0xE0, 0x78, 0x0C, 0x78, 0xE0, // 0xAF QMK Logo Middle 16 + + 0x7C, 0x1E, 0x00, 0x64, 0xF6, 0x92, // 0xB0 QMK Logo Middle 17 + 0x92, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, // 0xB1 QMK Logo Middle 18 + 0x06, 0x06, 0x00, 0x3C, 0x7E, 0xD2, // 0xB2 QMK Logo Middle 19 + 0xD2, 0xDE, 0x4C, 0x00, 0x00, 0x00, // 0xB3 QMK Logo Middle 20 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB4 QMK Logo Middle 21 + 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, // 0xB5 Apple Logo BL + 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, // 0xB6 Apple Logo BR + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB7 Windows Logo BL + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB8 Windows Logo BR + 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, // 0xB9 Linux Logo BL + 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, // 0xBA Linux Logo BR + 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, // 0xBB Android Logo BL + 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, // 0xBC Android Logo BR + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 QMK Logo Bottom 1 + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xC1 QMK Logo Bottom 2 + 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x1F, // 0xC2 QMK Logo Bottom 3 + 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x07, // 0xC3 QMK Logo Bottom 4 + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC4 QMK Logo Bottom 5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC5 QMK Logo Bottom 6 + 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, // 0xC6 QMK Logo Bottom 7 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC7 QMK Logo Bottom 8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC8 QMK Logo Bottom 9 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC9 QMK Logo Bottom 10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA QMK Logo Bottom 11 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCB QMK Logo Bottom 12 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCC QMK Logo Bottom 13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCD QMK Logo Bottom 14 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCE QMK Logo Bottom 15 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCF QMK Logo Bottom 16 + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 QMK Logo Bottom 17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD1 QMK Logo Bottom 18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD2 QMK Logo Bottom 19 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD3 QMK Logo Bottom 10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD4 QMK Logo Bottom 21 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 0xDF }; diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 7e46bcb3f7..a7a78bf3c1 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -146,7 +146,7 @@ along with this program. If not, see . // parts of the display unusable or don't get cleared correctly // and also allows for drawing & inverting uint8_t oled_buffer[OLED_MATRIX_SIZE]; -uint8_t * oled_cursor; +uint8_t *oled_cursor; OLED_BLOCK_TYPE oled_dirty = 0; bool oled_initialized = false; bool oled_active = false; @@ -301,24 +301,18 @@ bool oled_init(oled_rotation_t rotation) { oled_driver_init(); static const uint8_t PROGMEM display_setup1[] = { - I2C_CMD, - DISPLAY_OFF, - DISPLAY_CLOCK, - OLED_DISPLAY_CLOCK, - MULTIPLEX_RATIO, + I2C_CMD, DISPLAY_OFF, DISPLAY_CLOCK, OLED_DISPLAY_CLOCK, MULTIPLEX_RATIO, #if OLED_IC_COM_PINS_ARE_COLUMNS OLED_DISPLAY_WIDTH - 1, #else OLED_DISPLAY_HEIGHT - 1, #endif #if OLED_IC == OLED_IC_SH1107 - SH1107_DISPLAY_START_LINE, - 0x00, + SH1107_DISPLAY_START_LINE, 0x00, #else DISPLAY_START_LINE | 0x00, #endif - CHARGE_PUMP, - 0x14, + CHARGE_PUMP, 0x14, #if OLED_IC_HAS_HORIZONTAL_MODE // MEMORY_MODE is unsupported on SH1106 (Page Addressing only) MEMORY_MODE, diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index c3db7e6d97..36fe8c195c 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -53,12 +53,10 @@ along with this program. If not, see . // For 90 degree rotation, we map our internal matrix to oled matrix using fixed arrays // The OLED writes to it's memory horizontally, starting top left, but our memory starts bottom left in this mode # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24, 32, 40, 48, 56 } +# define OLED_SOURCE_MAP {0, 8, 16, 24, 32, 40, 48, 56} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 56, 48, 40, 32, 24, 16, 8, 0 } +# define OLED_TARGET_MAP {56, 48, 40, 32, 24, 16, 8, 0} # endif // If OLED_BLOCK_TYPE is uint32_t, these tables would look like: // #define OLED_SOURCE_MAP { 32, 40, 48, 56 } @@ -97,12 +95,10 @@ along with this program. If not, see . # endif # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24 } +# define OLED_SOURCE_MAP {0, 8, 16, 24} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 24, 16, 8, 0 } +# define OLED_TARGET_MAP {24, 16, 8, 0} # endif #elif defined(OLED_DISPLAY_64X48) @@ -132,12 +128,10 @@ along with this program. If not, see . # endif # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8 } +# define OLED_SOURCE_MAP {0, 8} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 8, 0 } +# define OLED_TARGET_MAP {8, 0} # endif #elif defined(OLED_DISPLAY_64X128) @@ -170,12 +164,10 @@ along with this program. If not, see . # endif # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24, 32, 40, 48, 56 } +# define OLED_SOURCE_MAP {0, 8, 16, 24, 32, 40, 48, 56} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 56, 48, 40, 32, 24, 16, 8, 0 } +# define OLED_TARGET_MAP {56, 48, 40, 32, 24, 16, 8, 0} # endif #elif defined(OLED_DISPLAY_128X128) @@ -208,12 +200,10 @@ along with this program. If not, see . // For 90 degree rotation, we map our internal matrix to oled matrix using fixed arrays // The OLED writes to it's memory horizontally, starting top left, but our memory starts bottom left in this mode # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24, 32, 40, 48, 56 } +# define OLED_SOURCE_MAP {0, 8, 16, 24, 32, 40, 48, 56} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 56, 48, 40, 32, 24, 16, 8, 0 } +# define OLED_TARGET_MAP {56, 48, 40, 32, 24, 16, 8, 0} # endif #else // defined(OLED_DISPLAY_128X64) // Default 128x32 @@ -242,12 +232,10 @@ along with this program. If not, see . // For 90 degree rotation, we map our internal matrix to oled matrix using fixed arrays // The OLED writes to it's memory horizontally, starting top left, but our memory starts bottom left in this mode # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24 } +# define OLED_SOURCE_MAP {0, 8, 16, 24} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 24, 16, 8, 0 } +# define OLED_TARGET_MAP {24, 16, 8, 0} # endif // If OLED_BLOCK_TYPE is uint8_t, these tables would look like: // #define OLED_SOURCE_MAP { 0, 8, 16, 24, 32, 40, 48, 56 } diff --git a/drivers/painter/comms/qp_comms_i2c.c b/drivers/painter/comms/qp_comms_i2c.c index f093c87ee4..f4b8fd833e 100644 --- a/drivers/painter/comms/qp_comms_i2c.c +++ b/drivers/painter/comms/qp_comms_i2c.c @@ -10,7 +10,7 @@ // Helpers static uint32_t qp_comms_i2c_send_raw(painter_device_t device, const void *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_i2c_config_t *comms_config = (qp_comms_i2c_config_t *)driver->comms_config; i2c_status_t res = i2c_transmit(comms_config->chip_address << 1, data, byte_count, I2C_TIMEOUT); if (res < 0) { diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c index 31b68dfdf6..6227d7d656 100644 --- a/drivers/painter/comms/qp_comms_spi.c +++ b/drivers/painter/comms/qp_comms_spi.c @@ -10,7 +10,7 @@ // Base SPI support bool qp_comms_spi_init(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; // Initialize the SPI peripheral @@ -24,7 +24,7 @@ bool qp_comms_spi_init(painter_device_t device) { } bool qp_comms_spi_start(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; return spi_start(comms_config->chip_select_pin, comms_config->lsb_first, comms_config->mode, comms_config->divisor); @@ -36,7 +36,7 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3 const uint32_t max_msg_length = 1024; while (bytes_remaining > 0) { - uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length); + uint32_t bytes_this_loop = MIN(bytes_remaining, max_msg_length); spi_transmit(p, bytes_this_loop); p += bytes_this_loop; bytes_remaining -= bytes_this_loop; @@ -46,7 +46,7 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3 } bool qp_comms_spi_stop(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; spi_stop(); gpio_write_pin_high(comms_config->chip_select_pin); @@ -70,7 +70,7 @@ bool qp_comms_spi_dc_reset_init(painter_device_t device) { return false; } - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; // Set up D/C as output low, if specified @@ -92,14 +92,14 @@ bool qp_comms_spi_dc_reset_init(painter_device_t device) { } uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_high(comms_config->dc_pin); return qp_comms_spi_send_data(device, data, byte_count); } bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_low(comms_config->dc_pin); spi_write(cmd); @@ -107,7 +107,7 @@ bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { } bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; for (size_t i = 0; i < sequence_len;) { uint8_t command = sequence[i]; diff --git a/drivers/painter/generic/qp_surface.h b/drivers/painter/generic/qp_surface.h index a291793649..f602a8770b 100644 --- a/drivers/painter/generic/qp_surface.h +++ b/drivers/painter/generic/qp_surface.h @@ -50,6 +50,16 @@ painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_hei */ painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); +/** + * Factory method for an RGB888 surface (aka framebuffer). + * + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_make_rgb888_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); + /** * Helper method to draw the contents of the framebuffer to the target device. * diff --git a/drivers/painter/generic/qp_surface_common.c b/drivers/painter/generic/qp_surface_common.c index 2da96c73ac..5eb84616e6 100644 --- a/drivers/painter/generic/qp_surface_common.c +++ b/drivers/painter/generic/qp_surface_common.c @@ -53,7 +53,7 @@ void qp_surface_update_dirty(surface_dirty_data_t *dirty, uint16_t x, uint16_t y // Driver vtable bool qp_surface_init(painter_device_t device, painter_rotation_t rotation) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; memset(surface->buffer, 0, SURFACE_REQUIRED_BUFFER_BYTE_SIZE(driver->panel_width, driver->panel_height, driver->native_bits_per_pixel)); @@ -78,7 +78,7 @@ bool qp_surface_clear(painter_device_t device) { } bool qp_surface_flush(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; surface->dirty.l = surface->dirty.t = UINT16_MAX; surface->dirty.r = surface->dirty.b = 0; @@ -87,7 +87,7 @@ bool qp_surface_flush(painter_device_t device) { } bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; // Set the viewport locations @@ -106,9 +106,9 @@ bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, u // Drawing routine to copy out the dirty region and send it to another device bool qp_surface_draw(painter_device_t surface, painter_device_t target, uint16_t x, uint16_t y, bool entire_surface) { - painter_driver_t * surface_driver = (painter_driver_t *)surface; + painter_driver_t *surface_driver = (painter_driver_t *)surface; surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver; - painter_driver_t * target_driver = (painter_driver_t *)target; + painter_driver_t *target_driver = (painter_driver_t *)target; // If we're not dirty... we're done. if (!surface_handle->dirty.is_dirty) { diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h index 71f82e924d..0b4d32fa34 100644 --- a/drivers/painter/generic/qp_surface_internal.h +++ b/drivers/painter/generic/qp_surface_internal.h @@ -42,9 +42,10 @@ typedef struct surface_painter_device_t { // The target buffer union { - void * buffer; - uint8_t * u8buffer; + void *buffer; + uint8_t *u8buffer; uint16_t *u16buffer; + rgb_t *rgbbuffer; }; // Manually manage the viewport for streaming pixel data to the display diff --git a/drivers/painter/generic/qp_surface_mono1bpp.c b/drivers/painter/generic/qp_surface_mono1bpp.c index c66b56519d..e8011163e4 100644 --- a/drivers/painter/generic/qp_surface_mono1bpp.c +++ b/drivers/painter/generic/qp_surface_mono1bpp.c @@ -55,7 +55,7 @@ static inline void stream_pixdata_mono1bpp(surface_painter_device_t *surface, co // Stream pixel data to the current write position in GRAM static bool qp_surface_pixdata_mono1bpp(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; stream_pixdata_mono1bpp(surface, (const uint8_t *)pixel_data, native_pixel_count); return true; diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c index c5b351311a..8da63b14b3 100644 --- a/drivers/painter/generic/qp_surface_rgb565.c +++ b/drivers/painter/generic/qp_surface_rgb565.c @@ -43,7 +43,7 @@ static inline void stream_pixdata_rgb565(surface_painter_device_t *surface, cons // Stream pixel data to the current write position in GRAM static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; stream_pixdata_rgb565(surface, (const uint16_t *)pixel_data, native_pixel_count); return true; @@ -52,7 +52,7 @@ static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel // Pixel colour conversion static bool qp_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + rgb_t rgb = hsv_to_rgb_nocie(palette[i].hsv888); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); palette[i].rgb565 = __builtin_bswap16(rgb565); } diff --git a/drivers/painter/generic/qp_surface_rgb888.c b/drivers/painter/generic/qp_surface_rgb888.c new file mode 100644 index 0000000000..2c04136c36 --- /dev/null +++ b/drivers/painter/generic/qp_surface_rgb888.c @@ -0,0 +1,143 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef QUANTUM_PAINTER_SURFACE_ENABLE + +# include "color.h" +# include "qp_draw.h" +# include "qp_surface_internal.h" +# include "qp_comms_dummy.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Surface driver impl: rgb888 + +static inline void setpixel_rgb888(surface_painter_device_t *surface, uint16_t x, uint16_t y, rgb_t rgb888) { + uint16_t w = surface->base.panel_width; + uint16_t h = surface->base.panel_height; + + // Drop out if it's off-screen + if (x >= w || y >= h) { + return; + } + + // Skip messing with the dirty info if the original value already matches + if (memcmp(&surface->rgbbuffer[y * w + x], &rgb888, sizeof(rgb_t)) != 0) { + // Update the dirty region + qp_surface_update_dirty(&surface->dirty, x, y); + + // Update the pixel data in the buffer + surface->rgbbuffer[y * w + x] = rgb888; + } +} + +static inline void append_pixel_rgb888(surface_painter_device_t *surface, rgb_t rgb888) { + setpixel_rgb888(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, rgb888); + qp_surface_increment_pixdata_location(&surface->viewport); +} + +static inline void stream_pixdata_rgb888(surface_painter_device_t *surface, const rgb_t *data, uint32_t native_pixel_count) { + for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) { + append_pixel_rgb888(surface, data[pixel_counter]); + } +} + +// Stream pixel data to the current write position in GRAM +static bool qp_surface_pixdata_rgb888(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { + painter_driver_t *driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + stream_pixdata_rgb888(surface, (const rgb_t *)pixel_data, native_pixel_count); + return true; +} + +// Pixel colour conversion +static bool qp_surface_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { + for (int16_t i = 0; i < palette_size; ++i) { + palette[i].rgb888 = hsv_to_rgb_nocie(palette[i].hsv888); + } + return true; +} + +// Append pixels to the target location, keyed by the pixel index +static bool qp_surface_append_pixels_rgb888(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { + rgb_t *buf = (rgb_t *)target_buffer; + for (uint32_t i = 0; i < pixel_count; ++i) { + buf[pixel_offset + i] = palette[palette_indices[i]].rgb888; + } + return true; +} + +static bool rgb888_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) { + surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver; + + uint16_t l = entire_surface ? 0 : surface_handle->dirty.l; + uint16_t t = entire_surface ? 0 : surface_handle->dirty.t; + uint16_t r = entire_surface ? (surface_handle->base.panel_width - 1) : surface_handle->dirty.r; + uint16_t b = entire_surface ? (surface_handle->base.panel_height - 1) : surface_handle->dirty.b; + + // Set the target drawing area + bool ok = qp_viewport((painter_device_t)target_driver, x + l, y + t, x + r, y + b); + if (!ok) { + qp_dprintf("rgb888_target_pixdata_transfer: fail (could not set target viewport)\n"); + return false; + } + + // Housekeeping of the amount of pixels to transfer + uint32_t total_pixel_count = (8 * QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE) / surface_driver->native_bits_per_pixel; + uint32_t pixel_counter = 0; + rgb_t *target_buffer = (rgb_t *)qp_internal_global_pixdata_buffer; + + // Fill the global pixdata area so that we can start transferring to the panel + for (uint16_t y = t; y <= b; ++y) { + for (uint16_t x = l; x <= r; ++x) { + // Update the target buffer + target_buffer[pixel_counter++] = surface_handle->rgbbuffer[y * surface_handle->base.panel_width + x]; + + // If we've accumulated enough data, send it + if (pixel_counter == total_pixel_count) { + ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + qp_dprintf("rgb888_target_pixdata_transfer: fail (could not stream pixdata to target)\n"); + return false; + } + // Reset the counter + pixel_counter = 0; + } + } + } + + // If there's any leftover data, send it + if (pixel_counter > 0) { + ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + qp_dprintf("rgb888_target_pixdata_transfer: fail (could not stream pixdata to target)\n"); + return false; + } + } + + return true; +} + +static bool qp_surface_append_pixdata_rgb888(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) { + target_buffer[pixdata_offset] = pixdata_byte; + return true; +} + +const surface_painter_driver_vtable_t rgb888_surface_driver_vtable = { + .base = + { + .init = qp_surface_init, + .power = qp_surface_power, + .clear = qp_surface_clear, + .flush = qp_surface_flush, + .pixdata = qp_surface_pixdata_rgb888, + .viewport = qp_surface_viewport, + .palette_convert = qp_surface_palette_convert_rgb888, + .append_pixels = qp_surface_append_pixels_rgb888, + .append_pixdata = qp_surface_append_pixdata_rgb888, + }, + .target_pixdata_transfer = rgb888_target_pixdata_transfer, +}; + +SURFACE_FACTORY_FUNCTION_IMPL(qp_make_rgb888_surface, rgb888_surface_driver_vtable, 24); + +#endif // QUANTUM_PAINTER_SURFACE_ENABLE diff --git a/drivers/painter/ili9xxx/qp_ili9486.c b/drivers/painter/ili9xxx/qp_ili9486.c index df2d084aa3..27fcd49873 100644 --- a/drivers/painter/ili9xxx/qp_ili9486.c +++ b/drivers/painter/ili9xxx/qp_ili9486.c @@ -72,7 +72,7 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) { // waveshare variant needs some tweaks due to shift registers static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_low(comms_config->spi_config.chip_select_pin); @@ -83,7 +83,7 @@ static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t dev } static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, const void *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; uint32_t bytes_remaining = byte_count; @@ -92,7 +92,7 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con gpio_write_pin_high(comms_config->dc_pin); while (bytes_remaining > 0) { - uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length); + uint32_t bytes_this_loop = MIN(bytes_remaining, max_msg_length); bool odd_bytes = bytes_this_loop & 1; // send data @@ -113,7 +113,7 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con } static uint32_t qp_ili9486_send_data_toggling(painter_device_t device, const uint8_t *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; uint32_t ret; @@ -147,7 +147,7 @@ static bool qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t dev } static bool qp_ili9486_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; tft_panel_dc_reset_painter_driver_vtable_t *vtable = (tft_panel_dc_reset_painter_driver_vtable_t *)driver->driver_vtable; // Fix up the drawing location if required diff --git a/drivers/painter/ld7032/qp_ld7032.c b/drivers/painter/ld7032/qp_ld7032.c index d73430cc75..e0f3af5efb 100644 --- a/drivers/painter/ld7032/qp_ld7032.c +++ b/drivers/painter/ld7032/qp_ld7032.c @@ -62,7 +62,7 @@ uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint // Power control bool qp_ld7032_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; comms_vtable->send_command_data(device, LD7032_DISP_ON_OFF, power_on ? 0x01 : 0x00); @@ -83,7 +83,7 @@ bool qp_ld7032_clear(painter_device_t device) { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ld7032_flush_0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; int x_start = dirty->l >> 3; @@ -115,7 +115,7 @@ void ld7032_flush_0(painter_device_t device, surface_dirty_data_t *dirty, const } void ld7032_flush_90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; int x_start = dirty->t >> 3; @@ -252,7 +252,7 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat break; } - painter_driver_t * pdriver = (painter_driver_t *)device; + painter_driver_t *pdriver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)pdriver->comms_vtable; if (!comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction)) { diff --git a/drivers/painter/oled_panel/qp_oled_panel.c b/drivers/painter/oled_panel/qp_oled_panel.c index eefee3f13f..4fd2c5bd80 100644 --- a/drivers/painter/oled_panel/qp_oled_panel.c +++ b/drivers/painter/oled_panel/qp_oled_panel.c @@ -12,7 +12,7 @@ // Power control bool qp_oled_panel_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; qp_comms_command(device, power_on ? vtable->opcodes.display_on : vtable->opcodes.display_off); return true; @@ -59,7 +59,7 @@ bool qp_oled_panel_passthru_append_pixdata(painter_device_t device, uint8_t *tar //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver @@ -92,7 +92,7 @@ void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty } void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver @@ -126,7 +126,7 @@ void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirt } void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver @@ -161,7 +161,7 @@ void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dir } void qp_oled_panel_page_column_flush_rot270(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c index c8e33343d4..3de0d62c72 100644 --- a/drivers/painter/tft_panel/qp_tft_panel.c +++ b/drivers/painter/tft_panel/qp_tft_panel.c @@ -12,7 +12,7 @@ // Power control bool qp_tft_panel_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; tft_panel_dc_reset_painter_driver_vtable_t *vtable = (tft_panel_dc_reset_painter_driver_vtable_t *)driver->driver_vtable; qp_comms_command(device, power_on ? vtable->opcodes.display_on : vtable->opcodes.display_off); return true; @@ -33,7 +33,7 @@ bool qp_tft_panel_flush(painter_device_t device) { // Viewport to draw to bool qp_tft_panel_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; tft_panel_dc_reset_painter_driver_vtable_t *vtable = (tft_panel_dc_reset_painter_driver_vtable_t *)driver->driver_vtable; // Fix up the drawing location if required @@ -90,7 +90,7 @@ bool qp_tft_panel_pixdata(painter_device_t device, const void *pixel_data, uint3 bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + rgb_t rgb = hsv_to_rgb_nocie(palette[i].hsv888); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); palette[i].rgb565 = __builtin_bswap16(rgb565); } @@ -99,10 +99,7 @@ bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_ bool qp_tft_panel_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); - palette[i].rgb888.r = rgb.r; - palette[i].rgb888.g = rgb.g; - palette[i].rgb888.b = rgb.b; + palette[i].rgb888 = hsv_to_rgb_nocie(palette[i].hsv888); } return true; } diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c index ef1a0e26f9..65a8a4f4d0 100644 --- a/drivers/ps2/ps2_mouse.c +++ b/drivers/ps2/ps2_mouse.c @@ -97,12 +97,11 @@ void ps2_mouse_task(void) { mouse_report.x = ps2_host_recv_response(); mouse_report.y = ps2_host_recv_response(); # ifdef PS2_MOUSE_ENABLE_SCROLLING - mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK); + mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK); # endif } else { if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); - /* return here to avoid updating the mouse button state */ - return; + // Continue processing anyway to ensure mouse button state is still updated } #endif diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c index 45072ae874..113f1231e3 100644 --- a/drivers/sensors/cirque_pinnacle.c +++ b/drivers/sensors/cirque_pinnacle.c @@ -477,9 +477,9 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { if (touchData.valid) { mouse_report.buttons = touchData.buttons; - mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); - mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); - mouse_report.v = touchData.wheelCount; + mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); + mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); + mouse_report.v = touchData.wheelCount; } return mouse_report; } diff --git a/drivers/sensors/paw3222.c b/drivers/sensors/paw3222.c new file mode 100644 index 0000000000..57f89a12d6 --- /dev/null +++ b/drivers/sensors/paw3222.c @@ -0,0 +1,174 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * + * 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 "paw3222.h" +#include "wait.h" +#include "gpio.h" +#include "spi_master.h" +#include "pointing_device_internal.h" + +#define MSB1 0x80 +#define MSB0 0x7F + +const pointing_device_driver_t paw3222_pointing_device_driver = { + .init = paw3222_init, + .get_report = paw3222_get_report, + .set_cpi = paw3222_set_cpi, + .get_cpi = paw3222_get_cpi, +}; + +// Convert a 12-bit twos complement binary-represented number into a +// signed 12-bit integer. +static int16_t convert_twoscomp_12(uint16_t data) { + if ((data & 0x800) == 0x800) + return -2048 + (data & 0x7FF); + else + return data; +} + +void paw3222_write(uint8_t reg_addr, uint8_t data) { + spi_start(PAW3222_CS_PIN, false, 3, PAW3222_SPI_DIVISOR); + wait_us(1); // Tncs_lead + spi_write(reg_addr | MSB1); + spi_write(data); + wait_us(1); // Tncs_lag + spi_stop(); +} + +uint8_t paw3222_read(uint8_t reg_addr) { + spi_start(PAW3222_CS_PIN, false, 3, PAW3222_SPI_DIVISOR); + wait_us(1); // Tncs_lead + spi_write(reg_addr & MSB0); + wait_us(10); // Tprep_rd + uint8_t data = spi_read(); + wait_us(1); // Tncs_lag + spi_stop(); + + return data; +} + +bool paw3222_init(void) { + gpio_set_pin_output(PAW3222_CS_PIN); + + // CS must be kept low at power-up stage for at least 1ms + gpio_write_pin_low(PAW3222_CS_PIN); + wait_ms(10); + gpio_write_pin_high(PAW3222_CS_PIN); + + spi_init(); + + // reboot + paw3222_write(0x06, 0x80); + wait_ms(50); + + if (!paw3222_check_signature()) { + return false; + } + + // initialize + paw3222_write(0x09, 0x5A); + paw3222_write(0x0D, 0x23); + paw3222_write(0x0E, 0x24); + paw3222_write(0x19, 0x1C); + paw3222_write(0x05, 0xA1); + paw3222_write(0x2B, 0x6D); + paw3222_write(0x30, 0x2E); + paw3222_write(0x5C, 0xDF); + paw3222_write(0x7F, 0x01); + paw3222_write(0x06, 0x14); + paw3222_write(0x31, 0x25); + paw3222_write(0x34, 0xC4); + paw3222_write(0x36, 0xCC); + paw3222_write(0x37, 0x42); + paw3222_write(0x38, 0x01); + paw3222_write(0x3A, 0x76); + paw3222_write(0x3B, 0x34); + paw3222_write(0x42, 0x39); + paw3222_write(0x43, 0xF2); + paw3222_write(0x44, 0x39); + paw3222_write(0x45, 0xF0); + paw3222_write(0x46, 0x12); + paw3222_write(0x47, 0x39); + paw3222_write(0x48, 0xE3); + paw3222_write(0x49, 0x48); + paw3222_write(0x4A, 0xD3); + paw3222_write(0x4B, 0x98); + paw3222_write(0x64, 0x46); + paw3222_write(0x71, 0x28); + paw3222_write(0x72, 0x28); + paw3222_write(0x7F, 0x00); + paw3222_write(0x09, 0x00); + + // read a burst, then discard + paw3222_read_burst(); + + return true; +} + +report_paw3222_t paw3222_read_burst(void) { + report_paw3222_t report = {0}; + + uint8_t motion = paw3222_read(0x02); + if ((motion & MSB1) == MSB1) { + // Motion detected + uint16_t dx = (uint16_t)paw3222_read(0x03); + uint16_t dy = (uint16_t)paw3222_read(0x04); + uint16_t dxy_hi = (uint16_t)paw3222_read(0x12); + + dx = dx | ((dxy_hi & 0xF0) << 4); + dy = dy | ((dxy_hi & 0x0F) << 8); + + report.dx = convert_twoscomp_12(dx); + report.dy = convert_twoscomp_12(dy); + } + + return report; +} + +void paw3222_set_cpi(uint16_t cpi) { + uint16_t cpival = (cpi) < (480) ? (480) : ((cpi) > (4020) ? (4020) : (cpi)); + uint8_t cpival_x = (cpival + (30 / 2)) / 30; + uint8_t cpival_y = (cpival + (29 / 2)) / 29; + + paw3222_write(0x09, 0x5A); + paw3222_write(0x0D, cpival_x); + paw3222_write(0x0E, cpival_y); + paw3222_write(0x09, 0x00); +} + +uint16_t paw3222_get_cpi(void) { + uint8_t cpival = paw3222_read(0x0D); + return (uint16_t)(cpival * 30); +} + +report_mouse_t paw3222_get_report(report_mouse_t mouse_report) { + report_paw3222_t data = paw3222_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = CONSTRAIN_HID_XY(data.dx); + mouse_report.y = CONSTRAIN_HID_XY(data.dy); + } + + return mouse_report; +} + +bool paw3222_check_signature(void) { + uint8_t checkval_1 = paw3222_read(0x00); + uint8_t checkval_2 = paw3222_read(0x01); + + return (checkval_1 == 0x30 && checkval_2 == 0x02); +} diff --git a/drivers/sensors/paw3222.h b/drivers/sensors/paw3222.h new file mode 100644 index 0000000000..8dbf6a38bb --- /dev/null +++ b/drivers/sensors/paw3222.h @@ -0,0 +1,47 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * + * 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 +#include +#include "pointing_device.h" + +#ifndef PAW3222_CS_PIN +# ifdef POINTING_DEVICE_CS_PIN +# define PAW3222_CS_PIN POINTING_DEVICE_CS_PIN +# else +# error "No chip select pin defined -- missing POINTING_DEVICE_CS_PIN or PAW3222_CS_PIN define" +# endif +#endif + +#ifndef PAW3222_SPI_DIVISOR +# error "No PAW3222 SPI divisor defined -- missing PAW3222_SPI_DIVISOR" +#endif + +typedef struct { + int16_t dx; + int16_t dy; +} report_paw3222_t; + +extern const pointing_device_driver_t paw3222_pointing_device_driver; + +bool paw3222_init(void); +report_paw3222_t paw3222_read_burst(void); +void paw3222_set_cpi(uint16_t cpi); +uint16_t paw3222_get_cpi(void); +report_mouse_t paw3222_get_report(report_mouse_t mouse_report); +bool paw3222_check_signature(void); diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c index db74540ec1..22fb5a2b9f 100644 --- a/drivers/sensors/pmw3320.c +++ b/drivers/sensors/pmw3320.c @@ -23,7 +23,7 @@ #include "gpio.h" #include "pointing_device_internal.h" -const pointing_device_driver_t pmw3320_pointing_device_drivera = { +const pointing_device_driver_t pmw3320_pointing_device_driver = { .init = pmw3320_init, .get_report = pmw3320_get_report, .set_cpi = pmw3320_set_cpi, diff --git a/drivers/sensors/pmw3325.c b/drivers/sensors/pmw3325.c new file mode 100644 index 0000000000..96f2288824 --- /dev/null +++ b/drivers/sensors/pmw3325.c @@ -0,0 +1,173 @@ +// Copyright 2024 Colin Lam (Ploopy Corporation) +// Copyright 2026 HorrorTroll +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "pmw3325.h" +#include "wait.h" +#include "gpio.h" +#include "spi_master.h" +#include "pointing_device_internal.h" + +#define MSB1 0x80 +#define MSB0 0x7F + +const pointing_device_driver_t pmw3325_pointing_device_driver = { + .init = pmw3325_init, + .get_report = pmw3325_get_report, + .set_cpi = pmw3325_set_cpi, + .get_cpi = pmw3325_get_cpi, +}; + +// Convert a 16-bit twos complement binary-represented number into a +// signed 16-bit integer. +static int16_t convert_twoscomp_16(uint8_t high, uint8_t low) { + uint16_t data = (high << 8) | low; + + if ((data & 0x8000) == 0x8000) { + return -32768 + (data & 0x7FFF); + } else { + return data; + } +} + +void pmw3325_write(uint8_t reg_addr, uint8_t data) { + spi_start(PMW3325_CS_PIN, false, 3, PMW3325_SPI_DIVISOR); + wait_us(1); // tNCS_SCLK + spi_write(reg_addr | MSB1); + wait_us(180); // tSRAD + spi_write(data); + wait_us(1); // tSCLK_NCS + spi_stop(); + wait_us(20); // tSRR +} + +uint8_t pmw3325_read(uint8_t reg_addr) { + spi_start(PMW3325_CS_PIN, false, 3, PMW3325_SPI_DIVISOR); + wait_us(1); // tNCS_SCLK + spi_write(reg_addr & MSB0); + wait_us(180); // tSRAD + uint8_t data = spi_read(); + wait_us(1); // tSCLK_NCS + spi_stop(); + wait_us(20); // tSRR + + return data; +} + +bool pmw3325_init(void) { + wait_ms(50); + gpio_set_pin_output(PMW3325_CS_PIN); + + // CS must be kept high at power-up stage for at least 1ms + gpio_write_pin_low(PMW3325_CS_PIN); + wait_ms(10); + gpio_write_pin_high(PMW3325_CS_PIN); + + spi_init(); + + // reboot + pmw3325_write(0x3A, 0x5A); + wait_ms(10); + + pmw3325_write(0x18, 0x39); + + if (!pmw3325_check_signature()) { + return false; + } + + // read a burst, then discard + pmw3325_read(0x02); + pmw3325_read(0x03); + pmw3325_read(0x04); + pmw3325_read(0x05); + pmw3325_read(0x06); + + // initialize + pmw3325_write(0x78, 0x80); + pmw3325_write(0x79, 0x80); + pmw3325_write(0x14, 0x80); + pmw3325_write(0x20, 0x40); + pmw3325_write(0x1A, 0x40); + pmw3325_write(0x47, 0x00); + pmw3325_write(0x48, 0x01); + pmw3325_write(0x60, 0x01); + pmw3325_write(0x69, 0x03); + pmw3325_write(0x1D, 0x90); + pmw3325_write(0x1B, 0x2E); + pmw3325_write(0x24, 0x05); + pmw3325_write(0x56, 0x00); + pmw3325_write(0x2C, 0x8A); + pmw3325_write(0x2D, 0x58); + pmw3325_write(0x40, 0x80); + pmw3325_write(0x7F, 0x01); + pmw3325_write(0x7A, 0x32); + pmw3325_write(0x6A, 0x93); + pmw3325_write(0x6B, 0x68); + pmw3325_write(0x6C, 0x71); + pmw3325_write(0x6D, 0x50); + pmw3325_write(0x7F, 0x00); + pmw3325_write(0x7F, 0x02); + pmw3325_write(0x29, 0x1C); + pmw3325_write(0x2A, 0x1A); + pmw3325_write(0x2B, 0x90); + pmw3325_write(0x40, 0x80); + pmw3325_write(0x7F, 0x00); + return true; +} + +report_pmw3325_t pmw3325_read_burst(void) { + report_pmw3325_t report = {0}; + + uint8_t motion = pmw3325_read(0x02); + if ((motion & MSB1) == MSB1) { + // Motion detected + uint8_t dx_l = pmw3325_read(0x03); + uint8_t dx_h = pmw3325_read(0x04); + uint8_t dy_l = pmw3325_read(0x05); + uint8_t dy_h = pmw3325_read(0x06); + + report.dx = convert_twoscomp_16(dx_h, dx_l); + report.dy = convert_twoscomp_16(dy_h, dy_l); + } + + return report; +} + +static const uint8_t pmw3325_cpi_lut[50] = {0x02, 0x04, 0x06, 0x08, 0x0B, 0x0D, 0x0F, 0x12, 0x14, 0x16, 0x19, 0x1B, 0x1D, 0x20, 0x22, 0x24, 0x27, 0x29, 0x2B, 0x2E, 0x30, 0x32, 0x34, 0x37, 0x39, 0x3B, 0x3E, 0x40, 0x42, 0x45, 0x47, 0x49, 0x4C, 0x4E, 0x50, 0x53, 0x55, 0x57, 0x5A, 0x5C, 0x5E, 0x61, 0x63, 0x65, 0x68, 0x6A, 0x6C, 0x6F, 0x71, 0x73}; + +void pmw3325_set_cpi(uint16_t cpi) { + uint8_t cpival = CONSTRAIN((cpi / PMW3325_CPI_STEP), (PMW3325_CPI_MIN / PMW3325_CPI_STEP), (PMW3325_CPI_MAX / PMW3325_CPI_STEP)) - 1U; + + pmw3325_write(0x1B, pmw3325_cpi_lut[cpival]); +} + +uint16_t pmw3325_get_cpi(void) { + uint8_t cpival = pmw3325_read(0x1B); + + for (uint8_t cpi = 0; cpi < 50; cpi++) { + if (pmw3325_cpi_lut[cpi] == cpival) { + return (cpi + 1) * PMW3325_CPI_STEP; + } + } + + return 0; +} + +report_mouse_t pmw3325_get_report(report_mouse_t mouse_report) { + report_pmw3325_t data = pmw3325_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = CONSTRAIN_HID_XY(data.dx); + mouse_report.y = CONSTRAIN_HID_XY(data.dy); + } + + return mouse_report; +} + +bool pmw3325_check_signature(void) { + uint8_t checkval_1 = pmw3325_read(0x00); + uint8_t checkval_2 = pmw3325_read(0x3F); + + return (checkval_1 == 0x43 && checkval_2 == 0xBC); +} diff --git a/drivers/sensors/pmw3325.h b/drivers/sensors/pmw3325.h new file mode 100644 index 0000000000..17a965aa19 --- /dev/null +++ b/drivers/sensors/pmw3325.h @@ -0,0 +1,44 @@ +// Copyright 2021 Colin Lam (Ploopy Corporation) +// Copyright 2026 HorrorTroll +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include "pointing_device.h" + +#ifndef PMW3325_CS_PIN +# ifdef POINTING_DEVICE_CS_PIN +# define PMW3325_CS_PIN POINTING_DEVICE_CS_PIN +# else +# error "No chip select pin defined -- missing POINTING_DEVICE_CS_PIN or PMW3325_CS_PIN define" +# endif +#endif + +#ifndef PMW3325_SPI_DIVISOR +# error "No PMW3325 SPI divisor defined -- missing PMW3325_SPI_DIVISOR" +#endif + +typedef struct { + int16_t dx; + int16_t dy; +} report_pmw3325_t; + +extern const pointing_device_driver_t pmw3325_pointing_device_driver; + +bool pmw3325_init(void); +report_pmw3325_t pmw3325_read_burst(void); +void pmw3325_set_cpi(uint16_t cpi); +uint16_t pmw3325_get_cpi(void); +report_mouse_t pmw3325_get_report(report_mouse_t mouse_report); +bool pmw3325_check_signature(void); + +#if !defined(PMW3325_CPI) +# define PMW3325_CPI 2000 +#endif + +#define PMW3325_CPI_MIN 100 +#define PMW3325_CPI_MAX 5000 +#define PMW3325_CPI_STEP 100 +#define CONSTRAIN(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h index ff890f49a9..9433c7811f 100644 --- a/drivers/sensors/pmw33xx_common.h +++ b/drivers/sensors/pmw33xx_common.h @@ -72,14 +72,12 @@ STATIC_ASSERT(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motio # ifndef PMW33XX_CS_PIN # ifdef POINTING_DEVICE_CS_PIN # define PMW33XX_CS_PIN POINTING_DEVICE_CS_PIN -# define PMW33XX_CS_PINS \ - { PMW33XX_CS_PIN } +# define PMW33XX_CS_PINS {PMW33XX_CS_PIN} # else # error "No chip select pin defined -- missing PMW33XX_CS_PIN or PMW33XX_CS_PINS" # endif # else -# define PMW33XX_CS_PINS \ - { PMW33XX_CS_PIN } +# define PMW33XX_CS_PINS {PMW33XX_CS_PIN} # endif #endif @@ -88,8 +86,7 @@ STATIC_ASSERT(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motio # if !defined(PMW33XX_CS_PIN_RIGHT) # define PMW33XX_CS_PIN_RIGHT PMW33XX_CS_PIN # endif -# define PMW33XX_CS_PINS_RIGHT \ - { PMW33XX_CS_PIN_RIGHT } +# define PMW33XX_CS_PINS_RIGHT {PMW33XX_CS_PIN_RIGHT} #endif // Defines so the old variable names are swapped by the appropiate value on each half diff --git a/keyboards/0xc7/61key/keymaps/default/keymap.c b/keyboards/0xc7/61key/keymaps/default/keymap.c index 06e39c1baa..8fc3c57ac3 100644 --- a/keyboards/0xc7/61key/keymaps/default/keymap.c +++ b/keyboards/0xc7/61key/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, QK_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(A(KC_DEL)) ) -}; \ No newline at end of file +}; diff --git a/keyboards/0xcb/splaytoraid/32u4/keyboard.json b/keyboards/0xcb/splaytoraid/32u4/keyboard.json deleted file mode 100644 index 7c3f0590a6..0000000000 --- a/keyboards/0xcb/splaytoraid/32u4/keyboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "development_board": "promicro", - "bootloader": "qmk-dfu", - "matrix_pins": { - "cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"], - "rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"] - }, - "diode_direction": "COL2ROW", - "rgb_matrix": { - "animations": { - "band_sat": true, - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "raindrops": true - } - }, - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B6"} - ] - }, - "ws2812": { - "pin": "D0" - } -} diff --git a/keyboards/0xcb/splaytoraid/info.json b/keyboards/0xcb/splaytoraid/keyboard.json similarity index 72% rename from keyboards/0xcb/splaytoraid/info.json rename to keyboards/0xcb/splaytoraid/keyboard.json index 8c32b0dc11..457cc7a23a 100644 --- a/keyboards/0xcb/splaytoraid/info.json +++ b/keyboards/0xcb/splaytoraid/keyboard.json @@ -2,28 +2,58 @@ "manufacturer": "Freya", "keyboard_name": "splaytoraid", "maintainer": "freya-irl", - "url": "https://github.com/freya-irl/splaytoraid40", - "usb": { - "device_version": "1.0.0", - "pid": "0xCB00", - "vid": "0x2004" - }, - "features": { - "extrakey": true, - "rgb_matrix": true, - "bootmagic": true, - "console": true, - "mousekey": true, - "nkro": true, - "encoder": true - }, + "bootloader": "qmk-dfu", "bootmagic": { "matrix": [1, 0] }, "build": { "lto": true }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B6"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"], + "rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"] + }, "rgb_matrix": { + "animations": { + "band_sat": true, + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "hue_breathing": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_moving_chevron": true, + "raindrops": true, + "solid_reactive": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, "default": { "animation": "breathing", "hue": 152, @@ -32,27 +62,36 @@ }, "driver": "ws2812", "layout": [ - {"flags": 4, "matrix": [0, 2], "x": 0, "y": 0}, - {"flags": 4, "matrix": [1, 0], "x": 20, "y": 0}, - {"flags": 4, "matrix": [7, 0], "x": 61, "y": 0}, - {"flags": 4, "matrix": [7, 1], "x": 163, "y": 0}, - {"flags": 4, "matrix": [5, 0], "x": 203, "y": 0}, - {"flags": 4, "matrix": [4, 2], "x": 224, "y": 0}, - {"flags": 4, "matrix": [6, 2], "x": 0, "y": 21}, - {"flags": 4, "matrix": [6, 1], "x": 224, "y": 21}, - {"flags": 4, "matrix": [3, 3], "x": 20, "y": 43}, - {"flags": 4, "matrix": [7, 3], "x": 61, "y": 43}, - {"flags": 4, "matrix": [6, 4], "x": 163, "y": 43}, - {"flags": 4, "matrix": [6, 3], "x": 203, "y": 43}, - {"flags": 4, "matrix": [4, 3], "x": 61, "y": 64}, - {"flags": 4, "matrix": [5, 5], "x": 81, "y": 64}, - {"flags": 4, "matrix": [7, 4], "x": 101, "y": 64}, - {"flags": 4, "matrix": [7, 5], "x": 122, "y": 64}, - {"flags": 4, "matrix": [1, 5], "x": 142, "y": 64}, - {"flags": 4, "matrix": [0, 3], "x": 163, "y": 64} + {"matrix": [0, 2], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 20, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 61, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 163, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 203, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 0, "y": 21, "flags": 4}, + {"matrix": [6, 1], "x": 224, "y": 21, "flags": 4}, + {"matrix": [3, 3], "x": 20, "y": 43, "flags": 4}, + {"matrix": [7, 3], "x": 61, "y": 43, "flags": 4}, + {"matrix": [6, 4], "x": 163, "y": 43, "flags": 4}, + {"matrix": [6, 3], "x": 203, "y": 43, "flags": 4}, + {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 81, "y": 64, "flags": 4}, + {"matrix": [7, 4], "x": 101, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 122, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 142, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 163, "y": 64, "flags": 4} ], "max_brightness": 200 }, + "url": "https://github.com/freya-irl/splaytoraid40", + "usb": { + "device_version": "1.0.0", + "pid": "0xCB00", + "vid": "0x2004" + }, + "ws2812": { + "pin": "D0" + }, "layouts": { "LAYOUT_36": { "layout": [ diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c deleted file mode 100644 index 6a82f2ca74..0000000000 --- a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2023 Conor Burns (@Conor-Burns) -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _LOWER, - _RAISE, - _ADJUST -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_40( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LSFT, KC_ESC, KC_ENT, KC_MPLY, KC_SPC, KC_DEL, KC_RSFT - ), - - [_LOWER] = LAYOUT_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) -}; - - -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, - [_RAISE] = { ENCODER_CCW_CW(UG_VALD, UG_VALU) }, - [_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) } -}; diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json new file mode 100644 index 0000000000..42bcaf28a1 --- /dev/null +++ b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "0xcb/splaytoraid", + "keymap": "default", + "config": { + "features": { + "encoder_map": true + } + }, + "layout": "LAYOUT_40", + "layers": [ + [ + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSPC", + "KC_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_LSFT", "KC_ESC", "KC_ENT", "KC_MPLY", "KC_SPC", "KC_DEL", "KC_RSFT" + ] + ], + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}] + ] +} diff --git a/keyboards/0xcb/splaytoraid/readme.md b/keyboards/0xcb/splaytoraid/readme.md index ab53696c95..4fe04c8abd 100644 --- a/keyboards/0xcb/splaytoraid/readme.md +++ b/keyboards/0xcb/splaytoraid/readme.md @@ -11,13 +11,10 @@ A 40% ergonomic keyboard with a stacked acrylic case and RGB underglow. Make example for this keyboard (after setting up your build environment): make 0xcb/splaytoraid:default - make 0xcb/splaytoraid/32u4:default Flashing example for this keyboard: make 0xcb/splaytoraid:default:flash - make 0xcb/splaytoraid/32u4: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). @@ -29,8 +26,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press the button on the controller (Helios) for more than 500ms or just press it (Pluto) * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -Please note that the default bootloader for the `32u4` version is QMK DFU, for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). Generic Pro Micros often use a different bootloader, such as `caterina`. - -If the incorrect bootloader is specified, bootmagic reset and the `QK_BOOT` keycode will not work. - -To avoid this problem, set the correct bootloader in your custom keymap's `rules.mk` file before compiling, or flash using an appropriate target (ex: `make 0xcb/splaytoraid/32u4:default:avrdude`). See [flashing instructions and bootloader information](https://docs.qmk.fm/#/flashing) for more details. +When using an AVR microcontroller with this keyboard, the bootloader is configured to be QMK DFU for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). If your microcontroller does not use this bootloader, ensure to set this parameter appropriately in your keymap's `rules.mk` file. diff --git a/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json b/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json deleted file mode 100644 index b5a4f95c69..0000000000 --- a/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "development_board": "promicro_rp2040", - "matrix_pins": { - "cols": ["GP28", "GP27", "GP26", "GP29", "GP20", "GP22", "GP23"], - "rows": ["GP0", "GP1", "GP2", "GP4", "GP6", "GP7", "GP8", "GP5"] - }, - "diode_direction": "COL2ROW", - "rgb_matrix": { - "animations": { - "band_sat": true, - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_up_down": true, - "digital_rain": true, - "dual_beacon": true, - "hue_breathing": true, - "jellybean_raindrops": true, - "multisplash": true, - "pixel_fractal": true, - "pixel_rain": true, - "rainbow_moving_chevron": true, - "raindrops": true, - "solid_reactive": true, - "solid_reactive_simple": true, - "solid_splash": true, - "splash": true, - "typing_heatmap": true - } - }, - "encoder": { - "rotary": [ - {"pin_a": "GP9", "pin_b": "GP21"} - ] - }, - "ws2812": { - "pin": "GP3", - "driver": "vendor" - } -} diff --git a/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md b/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md deleted file mode 100644 index f6ff200ac3..0000000000 --- a/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# rp2040_ce - -This folder is set as default in the parent rules.mk - it will build firmware compatible with the RP2040 Community Edition. See [here](https://docs.qmk.fm/#/platformdev_rp2040?id=rp2040_ce) for a list. diff --git a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c index 513e7d9f33..708982c68c 100644 --- a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c +++ b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ) -}; \ No newline at end of file +}; diff --git a/keyboards/0xcb/tutelpad/tutelpad.c b/keyboards/0xcb/tutelpad/tutelpad.c index 36671d5bd1..2e9fb4a0b8 100644 --- a/keyboards/0xcb/tutelpad/tutelpad.c +++ b/keyboards/0xcb/tutelpad/tutelpad.c @@ -103,4 +103,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk b/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi40/config.h b/keyboards/1upkeyboards/pi40/config.h index 627c0c5ddb..c906bf30b1 100644 --- a/keyboards/1upkeyboards/pi40/config.h +++ b/keyboards/1upkeyboards/pi40/config.h @@ -3,7 +3,6 @@ #pragma once -#define OLED_DISPLAY_128X32 #define I2C1_SCL_PIN GP17 #define I2C1_SDA_PIN GP16 #define I2C_DRIVER I2CD0 diff --git a/keyboards/1upkeyboards/pi40/halconf.h b/keyboards/1upkeyboards/pi40/halconf.h index 39fbe3e88c..a9ea8f9480 100644 --- a/keyboards/1upkeyboards/pi40/halconf.h +++ b/keyboards/1upkeyboards/pi40/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi40/mcuconf.h b/keyboards/1upkeyboards/pi40/mcuconf.h index df94cb0346..98b9a28ab4 100644 --- a/keyboards/1upkeyboards/pi40/mcuconf.h +++ b/keyboards/1upkeyboards/pi40/mcuconf.h @@ -7,4 +7,4 @@ #undef RP_I2C_USE_I2C0 #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C0 TRUE -#define RP_I2C_USE_I2C1 FALSE \ No newline at end of file +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/1upkeyboards/pi40/pi40.c b/keyboards/1upkeyboards/pi40/pi40.c index 085f0da8f8..20ef8a76cd 100644 --- a/keyboards/1upkeyboards/pi40/pi40.c +++ b/keyboards/1upkeyboards/pi40/pi40.c @@ -287,4 +287,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/1upkeyboards/pi50/grid/keyboard.json b/keyboards/1upkeyboards/pi50/grid/keyboard.json index 5b23f27277..57f8ea241a 100644 --- a/keyboards/1upkeyboards/pi50/grid/keyboard.json +++ b/keyboards/1upkeyboards/pi50/grid/keyboard.json @@ -139,4 +139,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/1upkeyboards/pi50/halconf.h b/keyboards/1upkeyboards/pi50/halconf.h index d1bdcabdf1..4546b99f1c 100644 --- a/keyboards/1upkeyboards/pi50/halconf.h +++ b/keyboards/1upkeyboards/pi50/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi50/mcuconf.h b/keyboards/1upkeyboards/pi50/mcuconf.h index 71e344bf24..22ca8794dc 100644 --- a/keyboards/1upkeyboards/pi50/mcuconf.h +++ b/keyboards/1upkeyboards/pi50/mcuconf.h @@ -7,4 +7,4 @@ #undef RP_I2C_USE_I2C0 #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C0 FALSE -#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/readme.md b/keyboards/1upkeyboards/readme.md index de8ae36acb..d39565636e 100644 --- a/keyboards/1upkeyboards/readme.md +++ b/keyboards/1upkeyboards/readme.md @@ -4,4 +4,4 @@ Website: [1UP Keyboards](https://www.1upkeyboards.com/) Discord: [Server Invite](https://discordapp.com/invite/c6SYn8) -YouTube: [skiwithpete](https://www.youtube.com/user/skiwithpete) \ No newline at end of file +YouTube: [skiwithpete](https://www.youtube.com/user/skiwithpete) diff --git a/keyboards/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json index 3b5859474a..bd8c8fe00d 100644 --- a/keyboards/1upkeyboards/super16/keyboard.json +++ b/keyboards/1upkeyboards/super16/keyboard.json @@ -74,7 +74,25 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 43, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/1upkeyboards/super16/super16.c b/keyboards/1upkeyboards/super16/super16.c deleted file mode 100644 index a9946c7525..0000000000 --- a/keyboards/1upkeyboards/super16/super16.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2019 MechMerlin - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3 }, - { 7, 6, 5, 4 }, - { 8, 9, 10, 11 }, - { 15, 14, 13, 12 } -}, { - // LED Index to Physical Position - { 0, 0 }, { 75, 0 }, { 150, 0 }, { 224, 0 }, - { 224, 21 }, { 150, 21 }, { 75, 21 }, { 0, 21 }, - { 0, 43 }, { 75, 43 }, { 150, 43 }, { 224, 43 }, - { 224, 64 }, { 150, 64 }, { 75, 64 }, { 0, 64 }, - -}, { - // LED Index to Flag - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/1upkeyboards/super16v2/keyboard.json b/keyboards/1upkeyboards/super16v2/keyboard.json index 5c5123453c..1fb14d86da 100644 --- a/keyboards/1upkeyboards/super16v2/keyboard.json +++ b/keyboards/1upkeyboards/super16v2/keyboard.json @@ -46,6 +46,28 @@ "splash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 3], "x": 28, "y": 12, "flags": 4}, + {"matrix": [0, 2], "x": 84, "y": 12, "flags": 4}, + {"matrix": [0, 1], "x": 140, "y": 12, "flags": 4}, + {"matrix": [0, 0], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 28, "y": 28, "flags": 4}, + {"matrix": [1, 2], "x": 84, "y": 28, "flags": 4}, + {"matrix": [1, 1], "x": 140, "y": 28, "flags": 4}, + {"matrix": [1, 0], "x": 196, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 28, "y": 44, "flags": 4}, + {"matrix": [2, 2], "x": 84, "y": 44, "flags": 4}, + {"matrix": [2, 1], "x": 140, "y": 44, "flags": 4}, + {"matrix": [2, 0], "x": 196, "y": 44, "flags": 4}, + {"matrix": [3, 3], "x": 28, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 84, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 140, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 196, "y": 60, "flags": 4}, + {"x": 168, "y": 48, "flags": 2}, + {"x": 168, "y": 16, "flags": 2}, + {"x": 58, "y": 16, "flags": 2}, + {"x": 56, "y": 48, "flags": 2} + ], "sleep": true }, "features": { diff --git a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c index ac30909566..408ea72ea6 100644 --- a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c @@ -47,4 +47,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } return false; -} \ No newline at end of file +} diff --git a/keyboards/1upkeyboards/super16v2/super16v2.c b/keyboards/1upkeyboards/super16v2/super16v2.c deleted file mode 100644 index 56e5fe7e7f..0000000000 --- a/keyboards/1upkeyboards/super16v2/super16v2.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2022 MechMerlin - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 3, 2, 1, 0 }, - { 7, 6, 5, 4 }, - { 11, 10, 9, 8 }, - { 15, 14, 13, 12 } -}, { - // LED Index to Physical Position - { 28, 12 }, { 84, 12 }, { 140, 12 }, { 196, 12 }, - { 28, 28 }, { 84, 28 }, { 140, 28 }, { 196, 28 }, - { 28, 44 }, { 84, 44 }, { 140, 44 }, { 196, 44 }, - { 28, 60 }, { 84, 60 }, { 140, 60 }, { 196, 60 }, - { 168, 48 }, { 168, 16 }, { 58, 16 }, { 56, 48 } -}, { - // LED Index to Flag - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, -} }; -#endif diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json b/keyboards/1upkeyboards/sweet16v2/keyboard.json similarity index 97% rename from keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json rename to keyboards/1upkeyboards/sweet16v2/keyboard.json index d8ff291e69..b84a43ff40 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json +++ b/keyboards/1upkeyboards/sweet16v2/keyboard.json @@ -3,8 +3,7 @@ "keyboard_name": "sweet16v2", "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/", "maintainer": "ziptyze", - "bootloader": "atmel-dfu", - "processor": "atmega32u4", + "development_board": "elite_c", "usb": { "device_version": "1.0.0", "pid": "0x5518", @@ -15,7 +14,6 @@ "encoder": true, "extrakey": true, "mousekey": true, - "nkro": false, "rgb_matrix": true }, "qmk": { @@ -36,7 +34,6 @@ "layer_count": 10 }, "encoder": { - "enabled": true, "rotary": [ {"pin_a": "F6", "pin_b": "F5"}, {"pin_a": "D4", "pin_b": "D0"} diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json new file mode 100644 index 0000000000..fd2a0dc766 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json @@ -0,0 +1,28 @@ +{ + "keyboard": "1upkeyboards/sweet16v2", + "keymap": "default", + "coonfig": { + "features": { + "encoder_map": true + } + }, + "layout": "LAYOUT_ortho_4x4", + "layers": [ + [ + "KC_P7", "KC_P8", "KC_P8", "KC_PMNS", + "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", + "KC_P1", "KC_P2", "KC_P3", "KC_PSLS", + "MO(1)", "KC_P0", "KC_PDOT", "KC_PENT" + ], + [ + "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", + "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", + "RM_SPDD", "RM_SPDU", "_______", "_______", + "_______", "_______", "_______", "QK_BOOT" + ] + ], + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "RM_VALD", "cw": "RM_VALU"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] + ] +} diff --git a/keyboards/1upkeyboards/sweet16v2/readme.md b/keyboards/1upkeyboards/sweet16v2/readme.md index e3f5859f96..eacaf0d0ce 100644 --- a/keyboards/1upkeyboards/sweet16v2/readme.md +++ b/keyboards/1upkeyboards/sweet16v2/readme.md @@ -1,26 +1,18 @@ # sweet16v2 -A 4x4 macropad with RGB inswitch lighting and underglow. +A 4x4 macropad with per-key RGB lighting and underglow. * Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) * Hardware Supported: 1upkeyboards Sweet 16 v2 * Hardware Availability: [1upkeyboards](https://1upkeyboards.com/) -Make example for this keyboard using an atmel-based controller (after setting up your build environment): +Make example for this keyboard (after setting up your build environment): - make 1upkeyboards/sweet16v2/promicro:default + make 1upkeyboards/sweet16v2:default -Flashing example for this keyboard using an atmel-based controller: +Flashing example for this keyboard: - make 1upkeyboards/sweet16v2/promicro:default:flash - -Make example for this keyboard using an rp2040-based controller (after setting up your build environment): - - make 1upkeyboards/sweet16v2/kb2040:default - -Flashing example for this keyboard using an rp2040-based controller: - - make 1upkeyboards/sweet16v2/kb2040:default:flash + make 1upkeyboards/sweet16v2: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). @@ -30,10 +22,10 @@ Enter the bootloader in 3 ways for atmel-based controllers: * **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 `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available Enter the bootloader in 2 ways for rp2040-based controllers: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard \ No newline at end of file +* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard diff --git a/keyboards/30wer/readme.md b/keyboards/30wer/readme.md index c9184f726b..3759b0e2ce 100644 --- a/keyboards/30wer/readme.md +++ b/keyboards/30wer/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make 30wer:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c index 0fe7cdc247..4964f59217 100644 --- a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c @@ -72,14 +72,7 @@ __attribute__((weak)) void trackball_check_click(bool pressed, report_mouse_t* m } } -bool process_record_kb(uint16_t keycode, keyrecord_t* record) { - if (true) { - xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); - } - - - if (!process_record_user(keycode, record)) { return false; } - +bool process_record_user(uint16_t keycode, keyrecord_t* record) { /* If Mousekeys is disabled, then use handle the mouse button * keycodes. This makes things simpler, and allows usage of * the keycodes in a consistent manner. But only do this if @@ -95,6 +88,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { } pointing_device_set_report(currentReport); pointing_device_send(); + return false; } #endif diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h index d85d4e60a9..e06c1deb24 100644 --- a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h @@ -32,4 +32,4 @@ void trackball_register_button(bool pressed, enum mouse_buttons button); float trackball_get_precision(void); void trackball_set_precision(float precision); bool trackball_is_scrolling(void); -void trackball_set_scrolling(bool scroll); \ No newline at end of file +void trackball_set_scrolling(bool scroll); diff --git a/keyboards/40percentclub/gherkin/info.json b/keyboards/40percentclub/gherkin/info.json deleted file mode 100644 index 644001bc05..0000000000 --- a/keyboards/40percentclub/gherkin/info.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "keyboard_name": "Gherkin", - "manufacturer": "40 Percent Club", - "maintainer": "qmk", - "usb": { - "vid": "0x4025", - "pid": "0x6060", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true, - "backlight": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "community_layouts": ["ortho_3x10"], - "layouts": { - "LAYOUT_ortho_3x10": { - "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": 6, "y": 0}, - {"matrix": [1, 1], "x": 7, "y": 0}, - {"matrix": [1, 2], "x": 8, "y": 0}, - {"matrix": [1, 3], "x": 9, "y": 0}, - - {"matrix": [1, 4], "x": 0, "y": 1}, - {"matrix": [1, 5], "x": 1, "y": 1}, - {"matrix": [2, 0], "x": 2, "y": 1}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [2, 2], "x": 4, "y": 1}, - {"matrix": [2, 3], "x": 5, "y": 1}, - {"matrix": [2, 4], "x": 6, "y": 1}, - {"matrix": [2, 5], "x": 7, "y": 1}, - {"matrix": [3, 0], "x": 8, "y": 1}, - {"matrix": [3, 1], "x": 9, "y": 1}, - - {"matrix": [3, 2], "x": 0, "y": 2}, - {"matrix": [3, 3], "x": 1, "y": 2}, - {"matrix": [3, 4], "x": 2, "y": 2}, - {"matrix": [3, 5], "x": 3, "y": 2}, - {"matrix": [4, 0], "x": 4, "y": 2}, - {"matrix": [4, 1], "x": 5, "y": 2}, - {"matrix": [4, 2], "x": 6, "y": 2}, - {"matrix": [4, 3], "x": 7, "y": 2}, - {"matrix": [4, 4], "x": 8, "y": 2}, - {"matrix": [4, 5], "x": 9, "y": 2} - ] - } - } -} diff --git a/keyboards/40percentclub/gherkin/kb2040/keyboard.json b/keyboards/40percentclub/gherkin/kb2040/keyboard.json deleted file mode 100644 index 431ac371ee..0000000000 --- a/keyboards/40percentclub/gherkin/kb2040/keyboard.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "development_board": "kb2040", - "matrix_pins": { - "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"], - "rows": ["GP26", "GP18", "GP20", "GP19", "GP10"] - }, - "diode_direction": "COL2ROW", - "backlight": { - "pin": "GP9", - "driver": "software" - } -} diff --git a/keyboards/40percentclub/gherkin/kb2040/readme.md b/keyboards/40percentclub/gherkin/kb2040/readme.md deleted file mode 100644 index 1fc9e8b18e..0000000000 --- a/keyboards/40percentclub/gherkin/kb2040/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# Gherkin - -![Gherkin](https://i.imgur.com/XrqqtTq.jpg) -![KB2040](https://cdn-shop.adafruit.com/640x480/5302-12.jpg) - -=== - -A 30 key keyboard with Adafruit's KB2040 as microcontroller. - -* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gherkin) - -Keyboard Maintainer: QMK Community -Hardware Supported: Gherkin PCB & Adafruit KB2040 -Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) and [Adafruit KB2040](https://www.adafruit.com/product/5302) - -Make example for this keyboard (after setting up your build environment): - - make 40percentclub/gherkin/kb2040:default - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -Use the KB2040 microcontroller as a drop-in replacement for the Pro Micro in this cute 30% keyboard. diff --git a/keyboards/40percentclub/gherkin/keyboard.json b/keyboards/40percentclub/gherkin/keyboard.json new file mode 100644 index 0000000000..1416997b47 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keyboard.json @@ -0,0 +1,74 @@ +{ + "manufacturer": "40 Percent Club", + "keyboard_name": "Gherkin", + "maintainer": "qmk", + "backlight": { + "pin": "B5" + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B0", + "num_lock": "D5", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B4", "E6", "D7", "C6", "D4", "D0"], + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6060", + "vid": "0x4025" + }, + "community_layouts": ["ortho_3x10"], + "layouts": { + "LAYOUT_ortho_3x10": { + "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": 6, "y": 0}, + {"matrix": [1, 1], "x": 7, "y": 0}, + {"matrix": [1, 2], "x": 8, "y": 0}, + {"matrix": [1, 3], "x": 9, "y": 0}, + {"matrix": [1, 4], "x": 0, "y": 1}, + {"matrix": [1, 5], "x": 1, "y": 1}, + {"matrix": [2, 0], "x": 2, "y": 1}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [2, 2], "x": 4, "y": 1}, + {"matrix": [2, 3], "x": 5, "y": 1}, + {"matrix": [2, 4], "x": 6, "y": 1}, + {"matrix": [2, 5], "x": 7, "y": 1}, + {"matrix": [3, 0], "x": 8, "y": 1}, + {"matrix": [3, 1], "x": 9, "y": 1}, + {"matrix": [3, 2], "x": 0, "y": 2}, + {"matrix": [3, 3], "x": 1, "y": 2}, + {"matrix": [3, 4], "x": 2, "y": 2}, + {"matrix": [3, 5], "x": 3, "y": 2}, + {"matrix": [4, 0], "x": 4, "y": 2}, + {"matrix": [4, 1], "x": 5, "y": 2}, + {"matrix": [4, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [4, 4], "x": 8, "y": 2}, + {"matrix": [4, 5], "x": 9, "y": 2} + ] + } + } +} diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c b/keyboards/40percentclub/gherkin/keymaps/default/keymap.c deleted file mode 100644 index 8c28b68afa..0000000000 --- a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -#include QMK_KEYBOARD_H - -#define FN1_SPC LT(1, KC_SPC) -#define FN2_BSPC LT(2, KC_BSPC) -#define FN3_C LT(3, KC_C) -#define FN4_V LT(4, KC_V) -#define FN5_B LT(5, KC_B) -#define CTL_Z CTL_T(KC_Z) -#define ALT_X ALT_T(KC_X) -#define ALT_N ALGR_T(KC_N) -#define CTL_M RCTL_T(KC_M) -#define SFT_ENT RSFT_T(KC_ENT) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_ortho_3x10( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ESC, - CTL_Z, ALT_X, FN3_C, FN4_V, FN2_BSPC,FN1_SPC, FN5_B, ALT_N, CTL_M, SFT_ENT - ), - - [1] = LAYOUT_ortho_3x10( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______ - ), - - [2] = LAYOUT_ortho_3x10( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, - KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_GRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [3] = LAYOUT_ortho_3x10( - _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - KC_TAB, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT, - _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - [4] = LAYOUT_ortho_3x10( - _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TAB, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END - ), - - [5] = LAYOUT_ortho_3x10( - KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, BL_DOWN, BL_UP, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ - ) - -}; diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.json b/keyboards/40percentclub/gherkin/keymaps/default/keymap.json new file mode 100644 index 0000000000..e81a6fd8f5 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/default/keymap.json @@ -0,0 +1,37 @@ +{ + "keyboard": "40percentclub/gherkin", + "keymap": "default", + "layout": "LAYOUT_ortho_3x10", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_ESC", + "CTL_T(KC_Z)", "ALT_T(KC_X)", "LT(3, KC_C)", "LT(4, KC_V)", "LT(2, KC_BSPC)", "LT(1, KC_SPC)", "LT(5, KC_B)", "ALGR_T(KC_N)", "RCTL_T(KC_M)", "RSFT_T(KC_ENT)" + ], + [ + "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", + "_______", "_______", "_______", "_______", "KC_DEL", "_______", "_______", "_______", "_______", "_______" + ], + [ + "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", + "KC_F11", "KC_F12", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_GRV", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "_______", "_______", "_______", "_______", "_______", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_TAB", "_______", "_______", "_______", "_______", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_SCLN", "KC_QUOT", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "_______", "_______", "_______", "_______", "_______", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", + "KC_TAB", "_______", "_______", "_______", "_______", "KC_LABK", "KC_RABK", "KC_QUES", "KC_COLN", "KC_DQUO", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END" + ], + [ + "KC_CALC", "KC_WHOM", "KC_MAIL", "KC_MYCM", "_______", "_______", "_______", "_______", "_______", "KC_PSCR", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "BL_DOWN", "BL_UP", + "_______", "_______", "_______", "_______", "QK_BOOT", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/40percentclub/gherkin/pro_micro/keyboard.json b/keyboards/40percentclub/gherkin/pro_micro/keyboard.json deleted file mode 100644 index 882ea8f72b..0000000000 --- a/keyboards/40percentclub/gherkin/pro_micro/keyboard.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "development_board": "promicro", - "matrix_pins": { - "cols": ["B4", "E6", "D7", "C6", "D4", "D0"], - "rows": ["F7", "B1", "B3", "B2", "B6"] - }, - "diode_direction": "COL2ROW", - "indicators": { - "num_lock": "D5", - "caps_lock": "B0", - "on_state": 0 - }, - "backlight": { - "pin": "B5" - } -} diff --git a/keyboards/40percentclub/gherkin/readme.md b/keyboards/40percentclub/gherkin/readme.md index 7404f19819..5ce4d173ca 100644 --- a/keyboards/40percentclub/gherkin/readme.md +++ b/keyboards/40percentclub/gherkin/readme.md @@ -1,21 +1,27 @@ # Gherkin ![Gherkin](https://i.imgur.com/XrqqtTq.jpg) -=== A 30 key keyboard. -* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gherkin) - -Keyboard Maintainer: QMK Community -Hardware Supported: Gherkin PCB -Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) +* Keyboard Maintainer: QMK Community +* Hardware Supported: Gherkin PCB w/ Pro Micro compatible development board +* Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) Make example for this keyboard (after setting up your build environment): make 40percentclub/gherkin:default +Flashing example for this keyboard: + + make 40percentclub/gherkin: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). -First pass at adding support for the gherkin keyboard. Compiles but completely -untested. Intended to kick-start development. +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix and plug in the keyboard +* **Physical reset**: Short the Ground and Reset pins on the microcontroller +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/40percentclub/ut47/config.h b/keyboards/40percentclub/ut47/config.h deleted file mode 100644 index f0182a59f8..0000000000 --- a/keyboards/40percentclub/ut47/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2018 Carlos Filoteo - -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 - - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -#define MATRIX_ROW_PINS { D1, D0, D4, C6 } -#define MATRIX_COL_PINS { D7, E6, B4, B5, B6, B2, B3, B1, F7, F6, F5, F4 } - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -/* Enable GNAP matrix serial output */ -#define GNAP_ENABLE diff --git a/keyboards/40percentclub/ut47/keyboard.json b/keyboards/40percentclub/ut47/keyboard.json index 00c8edef69..176d2a6b2d 100644 --- a/keyboards/40percentclub/ut47/keyboard.json +++ b/keyboards/40percentclub/ut47/keyboard.json @@ -22,6 +22,15 @@ "resync": true } }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["D7", "E6", "B4", "B5", "B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], + "rows": ["D1", "D0", "D4", "C6"] + }, + "keycodes": [ + {"key": "LED_TOG"}, + {"key": "LED_CHG"} + ], "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/40percentclub/ut47/keymaps/default/keymap.c b/keyboards/40percentclub/ut47/keymaps/default/keymap.c index 4a9de82492..050cb6d4b3 100644 --- a/keyboards/40percentclub/ut47/keymaps/default/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/default/keymap.c @@ -1,31 +1,10 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 . - */ +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#ifdef LED_ENABLE - #include "uart.h" -#endif #define LT3_TAB LT(3, KC_TAB) #define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) -enum custom_keycodes { - LED_TOG = SAFE_RANGE, - LED_CHG -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base Layer @@ -104,32 +83,3 @@ LAYOUT( /* Tab */ _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT ), }; - -//LED keymap functions - #ifdef LED_ENABLE -void led_chmode(void) { - uart_write(0x65); -} - -void led_toggle(void) { - uart_write(0x64); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case LED_TOG: - #ifdef LED_ENABLE - led_toggle(); - #endif - return false; - case LED_CHG: - #ifdef LED_ENABLE - led_chmode(); - #endif - return false; - } - } - return true; -}; -#endif diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/config.h b/keyboards/40percentclub/ut47/keymaps/rgb/config.h index d48ee2bf3f..7a66d80f0e 100644 --- a/keyboards/40percentclub/ut47/keymaps/rgb/config.h +++ b/keyboards/40percentclub/ut47/keymaps/rgb/config.h @@ -1,23 +1,7 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 . - */ - +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once - -// place overrides here #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c index 17c0be7772..1250c72f2a 100644 --- a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c @@ -1,31 +1,10 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 . - */ +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#ifdef LED_ENABLE - #include "uart.h" -#endif #define LT3_TAB LT(3, KC_TAB) #define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) -enum custom_keycodes { - LED_TOG = SAFE_RANGE, - LED_CHG -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( @@ -56,32 +35,3 @@ LAYOUT( /* Tab */ _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT ), }; - -//LED keymap functions - #ifdef LED_ENABLE -void led_chmode(void) { - uart_write(0x65); -} - -void led_toggle(void) { - uart_write(0x64); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case LED_TOG: - #ifdef LED_ENABLE - led_toggle(); - #endif - return false; - case LED_CHG: - #ifdef LED_ENABLE - led_chmode(); - #endif - return false; - } - } - return true; -}; -#endif diff --git a/keyboards/40percentclub/ut47/led.c b/keyboards/40percentclub/ut47/led.c deleted file mode 100644 index fa431de760..0000000000 --- a/keyboards/40percentclub/ut47/led.c +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 -#include -#include "led.h" - -bool led_update_kb(led_t led_state) -{ - bool res = led_update_user(led_state); - if (res) { - if (led_state.caps_lock) { - // output low - gpio_set_pin_output(B0); - gpio_write_pin_low(B0); - gpio_set_pin_output(D5); - gpio_write_pin_low(D5); - } else { - // Hi-Z - gpio_set_pin_input(B0); - gpio_set_pin_input(D5); - } - } - return false; -} diff --git a/keyboards/40percentclub/ut47/led_controls.c b/keyboards/40percentclub/ut47/led_controls.c new file mode 100644 index 0000000000..34a0ceb5b7 --- /dev/null +++ b/keyboards/40percentclub/ut47/led_controls.c @@ -0,0 +1,44 @@ +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +#include "uart.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + if (led_state.caps_lock) { + // output low + gpio_set_pin_output(B0); + gpio_write_pin_low(B0); + gpio_set_pin_output(D5); + gpio_write_pin_low(D5); + } else { + // Hi-Z + gpio_set_pin_input(B0); + gpio_set_pin_input(D5); + } + } + return false; +} + +void keyboard_post_init_kb(void) { + uart_init(9600); + + keyboard_post_init_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + uart_write((record->event.key.row * 16) + record->event.key.col); + + switch (keycode) { + case LED_TOG: + uart_write(0x64); + return false; + case LED_CHG: + uart_write(0x65); + return false; + } + } + return process_record_user(keycode, record); +} diff --git a/keyboards/40percentclub/ut47/LED_controls.ino b/keyboards/40percentclub/ut47/led_controls.ino similarity index 100% rename from keyboards/40percentclub/ut47/LED_controls.ino rename to keyboards/40percentclub/ut47/led_controls.ino diff --git a/keyboards/40percentclub/ut47/matrix.c b/keyboards/40percentclub/ut47/matrix.c deleted file mode 100644 index d803f11c5e..0000000000 --- a/keyboards/40percentclub/ut47/matrix.c +++ /dev/null @@ -1,194 +0,0 @@ -/* -Copyright 2018 Carlos Filoteo - -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 . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - dprintf("bounce!: %02X\n", debouncing); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<The reason this is an "opt-in" feature is to prevent sending serial communication over the pin, in case it ends up being used for something else (like RGB underglow). diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk deleted file mode 100644 index 5480f61b9b..0000000000 --- a/keyboards/40percentclub/ut47/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -CUSTOM_MATRIX = yes -SRC += matrix.c -UART_DRIVER_REQUIRED = yes diff --git a/keyboards/4pplet/ibe60/keymaps/default/keymap.c b/keyboards/4pplet/ibe60/keymaps/default/keymap.c index 9ec56d4809..d0c4b7891a 100644 --- a/keyboards/4pplet/ibe60/keymaps/default/keymap.c +++ b/keyboards/4pplet/ibe60/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json index 8d3a519a87..2e50d02a52 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json +++ b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json @@ -37,7 +37,71 @@ "default": { "val": 80 }, - "driver": "is31fl3733" + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 32, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 65, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 97, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 129, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 161, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 194, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 218, "y": 0, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [3, 0], "x": 24, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 40, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 57, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 73, "y": 16, "flags": 4}, + {"matrix": [3, 2], "x": 89, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 105, "y": 16, "flags": 4}, + {"matrix": [3, 3], "x": 121, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 137, "y": 16, "flags": 4}, + {"matrix": [3, 4], "x": 153, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 170, "y": 16, "flags": 4}, + {"matrix": [3, 5], "x": 186, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 202, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 224, "y": 24, "flags": 1}, + {"matrix": [4, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [5, 0], "x": 28, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 44, "y": 32, "flags": 4}, + {"matrix": [5, 1], "x": 61, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 77, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 93, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 109, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 125, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 141, "y": 32, "flags": 4}, + {"matrix": [5, 4], "x": 157, "y": 32, "flags": 4}, + {"matrix": [4, 5], "x": 174, "y": 32, "flags": 4}, + {"matrix": [5, 5], "x": 190, "y": 32, "flags": 4}, + {"matrix": [4, 6], "x": 206, "y": 32, "flags": 1}, + {"matrix": [6, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [7, 0], "x": 20, "y": 48, "flags": 4}, + {"matrix": [6, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [7, 1], "x": 52, "y": 48, "flags": 4}, + {"matrix": [6, 2], "x": 69, "y": 48, "flags": 4}, + {"matrix": [7, 2], "x": 85, "y": 48, "flags": 4}, + {"matrix": [6, 3], "x": 101, "y": 48, "flags": 4}, + {"matrix": [7, 3], "x": 117, "y": 48, "flags": 4}, + {"matrix": [6, 4], "x": 133, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 149, "y": 48, "flags": 4}, + {"matrix": [6, 5], "x": 165, "y": 48, "flags": 4}, + {"matrix": [7, 5], "x": 182, "y": 48, "flags": 4}, + {"matrix": [8, 6], "x": 212, "y": 48, "flags": 1}, + {"matrix": [8, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [8, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 42, "y": 64, "flags": 1}, + {"matrix": [8, 3], "x": 103, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 163, "y": 64, "flags": 1}, + {"matrix": [9, 4], "x": 184, "y": 64, "flags": 1}, + {"matrix": [8, 5], "x": 204, "y": 64, "flags": 1}, + {"matrix": [9, 5], "x": 224, "y": 64, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index c4ab064cb2..431400a6b8 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -31,99 +31,68 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { - { 0, SW11_CS2, SW10_CS2, SW12_CS2 }, //D402 - { 0, SW11_CS3, SW10_CS3, SW12_CS3 }, //D403 - { 0, SW11_CS4, SW10_CS4, SW12_CS4 }, //D404 - { 0, SW11_CS5, SW10_CS5, SW12_CS5 }, //D405 - { 0, SW11_CS6, SW10_CS6, SW12_CS6 }, //D406 - { 0, SW11_CS7, SW10_CS7, SW12_CS7 }, //D407 - { 0, SW11_CS8, SW10_CS8, SW12_CS8 }, //D408 - { 0, SW11_CS9, SW10_CS9, SW12_CS9 }, //D409 - { 0, SW11_CS10, SW10_CS10, SW12_CS10 }, //D410 - { 0, SW11_CS11, SW10_CS11, SW12_CS11 }, //D411 - { 0, SW11_CS12, SW10_CS12, SW12_CS12 }, //D412 - { 0, SW11_CS13, SW10_CS13, SW12_CS13 }, //D413 - { 0, SW11_CS14, SW10_CS14, SW12_CS14 }, //D414 - { 0, SW11_CS15, SW10_CS15, SW12_CS15 }, //D415 - { 0, SW11_CS1, SW10_CS1, SW12_CS1 }, //D401 - { 0, SW8_CS4, SW7_CS4, SW9_CS4 }, //D420 - { 0, SW8_CS5, SW7_CS5, SW9_CS5 }, //D421 - { 0, SW8_CS6, SW7_CS6, SW9_CS6 }, //D422 - { 0, SW8_CS7, SW7_CS7, SW9_CS7 }, //D423 - { 0, SW8_CS8, SW7_CS8, SW9_CS8 }, //D424 - { 0, SW8_CS9, SW7_CS9, SW9_CS9 }, //D425 - { 0, SW8_CS10, SW7_CS10, SW9_CS10 }, //D426 - { 0, SW8_CS11, SW7_CS11, SW9_CS11 }, //D427 - { 0, SW8_CS12, SW7_CS12, SW9_CS12 }, //D428 - { 0, SW8_CS13, SW7_CS13, SW9_CS13 }, //D429 - { 0, SW8_CS14, SW7_CS14, SW9_CS14 }, //D430 - { 0, SW8_CS15, SW7_CS15, SW9_CS15 }, //D431 - { 0, SW11_CS16, SW10_CS16, SW12_CS16 }, //D416 - { 0, SW8_CS2, SW7_CS2, SW9_CS2 }, //D418 - { 0, SW8_CS3, SW7_CS3, SW9_CS3 }, //D419 - { 0, SW5_CS5, SW4_CS5, SW6_CS5 }, //D437 - { 0, SW5_CS6, SW4_CS6, SW6_CS6 }, //D438 - { 0, SW5_CS7, SW4_CS7, SW6_CS7 }, //D439 - { 0, SW5_CS8, SW4_CS8, SW6_CS8 }, //D440 - { 0, SW5_CS9, SW4_CS9, SW6_CS9 }, //D441 - { 0, SW5_CS10, SW4_CS10, SW6_CS10 }, //D442 - { 0, SW5_CS11, SW4_CS11, SW6_CS11 }, //D443 - { 0, SW5_CS12, SW4_CS12, SW6_CS12 }, //D444 - { 0, SW5_CS13, SW4_CS13, SW6_CS13 }, //D445 - { 0, SW5_CS14, SW4_CS14, SW6_CS14 }, //D446 - { 0, SW8_CS16, SW7_CS16, SW9_CS16 }, //D432 - { 0, SW8_CS1, SW7_CS1, SW9_CS1 }, //D417 - { 0, SW5_CS3, SW4_CS3, SW6_CS3 }, //D435 - { 0, SW5_CS4, SW4_CS4, SW6_CS4 }, //D436 - { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, //D450 - { 0, SW2_CS3, SW1_CS3, SW3_CS3 }, //D451 - { 0, SW2_CS4, SW1_CS4, SW3_CS4 }, //D452 - { 0, SW2_CS6, SW1_CS6, SW3_CS6 }, //D454 - { 0, SW2_CS8, SW1_CS8, SW3_CS8 }, //D456 - { 0, SW2_CS9, SW1_CS9, SW3_CS9 }, //D457 - { 0, SW2_CS10, SW1_CS10, SW3_CS10 }, //D458 - { 0, SW2_CS12, SW1_CS12, SW3_CS12 }, //D460 - { 0, SW2_CS13, SW1_CS13, SW3_CS13 }, //D461 - { 0, SW5_CS15, SW4_CS15, SW6_CS15 }, //D447 - { 0, SW5_CS1, SW4_CS1, SW6_CS1 }, //D433 - { 0, SW5_CS2, SW4_CS2, SW6_CS2 }, //D434 - { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, //D449 - { 0, SW2_CS7, SW1_CS7, SW3_CS7 }, //D455 - { 0, SW2_CS11, SW1_CS11, SW3_CS11 }, //D459 - { 0, SW2_CS14, SW1_CS14, SW3_CS14 }, //D462 - { 0, SW2_CS15, SW1_CS15, SW3_CS15 }, //D463 - { 0, SW2_CS16, SW1_CS16, SW3_CS16 } //D464 -}; - -#define XXX NO_LED -led_config_t g_led_config = { - { - { 0, 2, 4, 6, 8, 10, 12 }, - { 1, 3, 5, 7, 9, 11, XXX }, - { 14, 16, 18, 20, 22, 24, 26 }, - { 15, 17, 19, 21, 23, 25, 13 }, - { 28, 30, 32, 34, 36, 38, 40 }, - { 29, 31, 33, 35, 37, 39, XXX }, - { 41, 43, 45, 47, 49, 51, XXX }, - { 42, 44, 46, 48, 50, 52, 27 }, - { 54, 55, XXX, 57, XXX, 60, 53 }, - { 56, XXX, XXX, 58, 59, 61, XXX }, - - }, { - { 0,0 }, { 16,0 }, { 32,0 }, { 48,0 }, { 65,0 }, { 81,0 }, { 97,0 }, {113,0 }, {129,0 }, {145,0 }, - {161,0 }, {178,0 }, {194,0 }, {218,0 }, { 4,16 }, { 24,16 }, { 40,16 }, { 57,16 }, { 73,16 }, { 89,16 }, - {105,16 }, {121,16 }, {137,16 }, {153,16 }, {170,16 }, {186,16 }, {202,16 }, {224,24 }, { 6,32 }, { 28,32 }, - { 44,32 }, { 61,32 }, { 77,32 }, { 93,32 }, {109,32 }, {125,32 }, {141,32 }, {157,32 }, {174,32 }, {190,32 }, - {206,32 }, { 2,48 }, { 20,48 }, { 36,48 }, { 52,48 }, { 69,48 }, { 85,48 }, {101,48 }, {117,48 }, {133,48 }, - {149,48 }, {165,48 }, {182,48 }, {212,48 }, { 2,64 }, { 22,64 }, { 42,64 }, {103,64 }, {163,64 }, {184,64 }, - {204,64 }, {224,64 }, - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 - } + {0, SW11_CS2, SW10_CS2, SW12_CS2}, // D402 + {0, SW11_CS3, SW10_CS3, SW12_CS3}, // D403 + {0, SW11_CS4, SW10_CS4, SW12_CS4}, // D404 + {0, SW11_CS5, SW10_CS5, SW12_CS5}, // D405 + {0, SW11_CS6, SW10_CS6, SW12_CS6}, // D406 + {0, SW11_CS7, SW10_CS7, SW12_CS7}, // D407 + {0, SW11_CS8, SW10_CS8, SW12_CS8}, // D408 + {0, SW11_CS9, SW10_CS9, SW12_CS9}, // D409 + {0, SW11_CS10, SW10_CS10, SW12_CS10}, // D410 + {0, SW11_CS11, SW10_CS11, SW12_CS11}, // D411 + {0, SW11_CS12, SW10_CS12, SW12_CS12}, // D412 + {0, SW11_CS13, SW10_CS13, SW12_CS13}, // D413 + {0, SW11_CS14, SW10_CS14, SW12_CS14}, // D414 + {0, SW11_CS15, SW10_CS15, SW12_CS15}, // D415 + {0, SW11_CS1, SW10_CS1, SW12_CS1}, // D401 + {0, SW8_CS4, SW7_CS4, SW9_CS4}, // D420 + {0, SW8_CS5, SW7_CS5, SW9_CS5}, // D421 + {0, SW8_CS6, SW7_CS6, SW9_CS6}, // D422 + {0, SW8_CS7, SW7_CS7, SW9_CS7}, // D423 + {0, SW8_CS8, SW7_CS8, SW9_CS8}, // D424 + {0, SW8_CS9, SW7_CS9, SW9_CS9}, // D425 + {0, SW8_CS10, SW7_CS10, SW9_CS10}, // D426 + {0, SW8_CS11, SW7_CS11, SW9_CS11}, // D427 + {0, SW8_CS12, SW7_CS12, SW9_CS12}, // D428 + {0, SW8_CS13, SW7_CS13, SW9_CS13}, // D429 + {0, SW8_CS14, SW7_CS14, SW9_CS14}, // D430 + {0, SW8_CS15, SW7_CS15, SW9_CS15}, // D431 + {0, SW11_CS16, SW10_CS16, SW12_CS16}, // D416 + {0, SW8_CS2, SW7_CS2, SW9_CS2}, // D418 + {0, SW8_CS3, SW7_CS3, SW9_CS3}, // D419 + {0, SW5_CS5, SW4_CS5, SW6_CS5}, // D437 + {0, SW5_CS6, SW4_CS6, SW6_CS6}, // D438 + {0, SW5_CS7, SW4_CS7, SW6_CS7}, // D439 + {0, SW5_CS8, SW4_CS8, SW6_CS8}, // D440 + {0, SW5_CS9, SW4_CS9, SW6_CS9}, // D441 + {0, SW5_CS10, SW4_CS10, SW6_CS10}, // D442 + {0, SW5_CS11, SW4_CS11, SW6_CS11}, // D443 + {0, SW5_CS12, SW4_CS12, SW6_CS12}, // D444 + {0, SW5_CS13, SW4_CS13, SW6_CS13}, // D445 + {0, SW5_CS14, SW4_CS14, SW6_CS14}, // D446 + {0, SW8_CS16, SW7_CS16, SW9_CS16}, // D432 + {0, SW8_CS1, SW7_CS1, SW9_CS1}, // D417 + {0, SW5_CS3, SW4_CS3, SW6_CS3}, // D435 + {0, SW5_CS4, SW4_CS4, SW6_CS4}, // D436 + {0, SW2_CS2, SW1_CS2, SW3_CS2}, // D450 + {0, SW2_CS3, SW1_CS3, SW3_CS3}, // D451 + {0, SW2_CS4, SW1_CS4, SW3_CS4}, // D452 + {0, SW2_CS6, SW1_CS6, SW3_CS6}, // D454 + {0, SW2_CS8, SW1_CS8, SW3_CS8}, // D456 + {0, SW2_CS9, SW1_CS9, SW3_CS9}, // D457 + {0, SW2_CS10, SW1_CS10, SW3_CS10}, // D458 + {0, SW2_CS12, SW1_CS12, SW3_CS12}, // D460 + {0, SW2_CS13, SW1_CS13, SW3_CS13}, // D461 + {0, SW5_CS15, SW4_CS15, SW6_CS15}, // D447 + {0, SW5_CS1, SW4_CS1, SW6_CS1}, // D433 + {0, SW5_CS2, SW4_CS2, SW6_CS2}, // D434 + {0, SW2_CS1, SW1_CS1, SW3_CS1}, // D449 + {0, SW2_CS7, SW1_CS7, SW3_CS7}, // D455 + {0, SW2_CS11, SW1_CS11, SW3_CS11}, // D459 + {0, SW2_CS14, SW1_CS14, SW3_CS14}, // D462 + {0, SW2_CS15, SW1_CS15, SW3_CS15}, // D463 + {0, SW2_CS16, SW1_CS16, SW3_CS16} // D464 }; bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { diff --git a/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md index 9ccedf98e3..6e5bea9666 100644 --- a/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md +++ b/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md @@ -21,4 +21,4 @@ ┌─────┬───┬───────────────────────────────────────┬───┬─────┐ │40 │41 │46 │4C │4D │ 10u Spacebar └─────┴───┴───────────────────────────────────────┴───┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/7c8/framework/readme.md b/keyboards/7c8/framework/readme.md index 5f29743aad..8f6a3b38bc 100644 --- a/keyboards/7c8/framework/readme.md +++ b/keyboards/7c8/framework/readme.md @@ -27,4 +27,4 @@ Flashing example for this keyboard: make 7c8/framework: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). \ No newline at end of file +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/8pack/readme.md b/keyboards/8pack/readme.md index 9c608e2a59..d2461b9847 100644 --- a/keyboards/8pack/readme.md +++ b/keyboards/8pack/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make 8pack:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/9key/readme.md b/keyboards/9key/readme.md index 89629cc8c7..18b4f727ae 100644 --- a/keyboards/9key/readme.md +++ b/keyboards/9key/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): make 9key:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/a_jazz/akc084/keymaps/default/keymap.c b/keyboards/a_jazz/akc084/keymaps/default/keymap.c index 2bd7992707..6ea0ca3660 100644 --- a/keyboards/a_jazz/akc084/keymaps/default/keymap.c +++ b/keyboards/a_jazz/akc084/keymaps/default/keymap.c @@ -40,4 +40,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/abstract/ellipse/keymaps/default/readme.md b/keyboards/abstract/ellipse/keymaps/default/readme.md index e14c0c8bd5..a8ee158339 100644 --- a/keyboards/abstract/ellipse/keymaps/default/readme.md +++ b/keyboards/abstract/ellipse/keymaps/default/readme.md @@ -3,4 +3,4 @@ This keymap allows for basic testing of the keypad once assembled. Each knob and key outputs a different standard letter keycode, except for the middle knob which changes the hue of the RGB LEDs and when -pressed down turns off the RGB LEDs \ No newline at end of file +pressed down turns off the RGB LEDs diff --git a/keyboards/acheron/apollo/87h/delta/delta.c b/keyboards/acheron/apollo/87h/delta/delta.c index b17fce5c3a..a03bd01ec7 100644 --- a/keyboards/acheron/apollo/87h/delta/delta.c +++ b/keyboards/acheron/apollo/87h/delta/delta.c @@ -21,41 +21,3 @@ void board_init(void) { gpio_set_pin_input(B9); gpio_set_pin_input(B10); } - -led_config_t g_led_config = { { -// { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , 13 , 14 , 15 }, -// { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, -// { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 }, -// { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, -// { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , NO_LED , NO_LED , 75 , NO_LED }, -// { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } -// - { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 }, - { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, - { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 }, - { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, - { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED }, - { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } -},{ -// "Fine-tuned" complex configuration - { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, - { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, - { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, - { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, - { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, - { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} -// "Stock" simple configuration -// { 224, 0}, { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, -// { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, -// { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, -// { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, -// { 224, 180}, { 196, 180}, { 182, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 14, 180}, -// { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 -} }; diff --git a/keyboards/acheron/apollo/87h/delta/keyboard.json b/keyboards/acheron/apollo/87h/delta/keyboard.json index f5bdf28d96..d9f6de197a 100644 --- a/keyboards/acheron/apollo/87h/delta/keyboard.json +++ b/keyboards/acheron/apollo/87h/delta/keyboard.json @@ -57,6 +57,95 @@ "val": 60 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 126, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c index f047db0fea..92c6697a1c 100644 --- a/keyboards/acheron/apollo/87h/gamma/gamma.c +++ b/keyboards/acheron/apollo/87h/gamma/gamma.c @@ -120,27 +120,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW3_CS24, SW3_CS23, SW3_CS22 }, //RIGHT 86 }; - -led_config_t g_led_config = { { - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }, - { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }, - { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 41 , 43 , 44 , 45 , 46 , 47 , 48 }, - { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED }, - { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 49 , 32 }, - { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , 84 , 85 , 86 } -},{ - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, { 105, 0}, { 120, 0}, { 135, 0}, { 150, 0}, { 165, 0}, { 180, 0}, { 210, 0}, { 210, 0}, { 225, 0}, - { 0, 45}, { 15, 45}, { 30, 45}, { 45, 45}, { 60, 45}, { 75, 45}, { 90, 45}, { 105, 45}, { 120, 45}, { 135, 45}, { 150, 45}, { 165, 45}, { 180, 45}, { 210, 45}, { 210, 45}, { 215, 45}, - { 0, 90}, { 15, 90}, { 30, 90}, { 45, 90}, { 60, 90}, { 75, 90}, { 90, 90}, { 105, 90}, { 120, 90}, { 135, 90}, { 150, 90}, { 165, 90}, { 180, 90}, { 195, 90}, { 210, 90}, { 215, 90}, - { 0, 135}, { 15, 135}, { 30, 135}, { 45, 135}, { 60, 135}, { 75, 135}, { 90, 135}, { 105, 135}, { 120, 135}, { 135, 135}, { 150, 135}, { 165, 135}, { 180, 135}, - { 0, 180}, { 30, 180}, { 45, 180}, { 60, 180}, { 75, 180}, { 90, 180}, { 105, 180}, { 120, 180}, { 135, 180}, { 150, 180}, { 165, 180}, { 180, 180}, { 210, 180}, { 225, 45}, { 225, 0}, - { 0, 225}, { 15, 225}, { 30, 225}, { 90, 225}, { 135, 225}, { 150, 225}, { 165, 225}, { 180, 225}, { 195, 225}, { 210, 225}, { 225, 225} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 -} }; #endif diff --git a/keyboards/acheron/apollo/87h/gamma/keyboard.json b/keyboards/acheron/apollo/87h/gamma/keyboard.json index 5c2087c968..03ba206526 100644 --- a/keyboards/acheron/apollo/87h/gamma/keyboard.json +++ b/keyboards/acheron/apollo/87h/gamma/keyboard.json @@ -58,6 +58,95 @@ "val": 80 }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 1}, + {"matrix": [3, 11], "x": 156, "y": 38, "flags": 1}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 14, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 126, "y": 51, "flags": 1}, + {"matrix": [4, 11], "x": 140, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 156, "y": 51, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 182, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/apollo/87htsc/87htsc.c b/keyboards/acheron/apollo/87htsc/87htsc.c index 4225c34971..a03bd01ec7 100644 --- a/keyboards/acheron/apollo/87htsc/87htsc.c +++ b/keyboards/acheron/apollo/87htsc/87htsc.c @@ -21,27 +21,3 @@ void board_init(void) { gpio_set_pin_input(B9); gpio_set_pin_input(B10); } - -led_config_t g_led_config = { { - { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 }, - { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, - { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 }, - { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, - { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED }, - { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , NO_LED , 80 , 81 , 82 , NO_LED , 83 , 84 , 85 } -},{ -// "Fine-tuned" complex configuration - { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, - { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, - { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, - { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, - { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, - { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 225}, { 210, 225}, { 224, 225} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 -} }; diff --git a/keyboards/acheron/apollo/87htsc/keyboard.json b/keyboards/acheron/apollo/87htsc/keyboard.json index 4b2ff1ad66..957c02c1b6 100644 --- a/keyboards/acheron/apollo/87htsc/keyboard.json +++ b/keyboards/acheron/apollo/87htsc/keyboard.json @@ -60,6 +60,94 @@ "val": 60 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 192, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/apollo/88htsc/88htsc.c b/keyboards/acheron/apollo/88htsc/88htsc.c deleted file mode 100644 index 8144fc57bc..0000000000 --- a/keyboards/acheron/apollo/88htsc/88htsc.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright 2022 Álvaro "Gondolindrim" Volpato - -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 "quantum.h" - -led_config_t g_led_config = { { - { 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 }, - { 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 }, - { 50 , 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 }, - { 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , NO_LED , NO_LED , NO_LED , NO_LED }, - { 76 , NO_LED , 75 , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , NO_LED , NO_LED , 64 , NO_LED }, - { 77 , 78 , 79 , NO_LED , NO_LED , NO_LED , 80 , NO_LED , NO_LED , NO_LED , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } -},{ -// "Fine-tuned" complex configuration - { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 45, 0}, { 28, 0}, { 14, 0}, { 0, 0}, - { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, - { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, - { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, - { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, - { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 -} }; diff --git a/keyboards/acheron/apollo/88htsc/keyboard.json b/keyboards/acheron/apollo/88htsc/keyboard.json index 165c8d76eb..182339b4fd 100644 --- a/keyboards/acheron/apollo/88htsc/keyboard.json +++ b/keyboards/acheron/apollo/88htsc/keyboard.json @@ -60,6 +60,95 @@ "val": 60 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 192, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/austin/readme.md b/keyboards/acheron/austin/readme.md index 7d7357fd37..51d052c307 100644 --- a/keyboards/acheron/austin/readme.md +++ b/keyboards/acheron/austin/readme.md @@ -26,4 +26,4 @@ After setting up your build environment, you can compile the Austin default keym make acheron/austin:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/adkb96/keymaps/default/config.h b/keyboards/adkb96/keymaps/default/config.h deleted file mode 100644 index a1c18568be..0000000000 --- a/keyboards/adkb96/keymaps/default/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -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 USE_I2C - -#define FORCE_NKRO diff --git a/keyboards/adkb96/rev1/keyboard.json b/keyboards/adkb96/rev1/keyboard.json index 3c0c757c05..c359dfdce1 100644 --- a/keyboards/adkb96/rev1/keyboard.json +++ b/keyboards/adkb96/rev1/keyboard.json @@ -14,6 +14,11 @@ "command": true, "nkro": true }, + "host": { + "default": { + "nkro": true + } + }, "qmk": { "locking": { "enabled": true, diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json index dce2405bc0..75feb71c50 100644 --- a/keyboards/adm42/rev4/keymaps/default/keymap.json +++ b/keyboards/adm42/rev4/keymaps/default/keymap.json @@ -41,4 +41,4 @@ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX" ] ] -} \ No newline at end of file +} diff --git a/keyboards/adpenrose/akemipad/akemipad.c b/keyboards/adpenrose/akemipad/akemipad.c deleted file mode 100644 index 993396dca0..0000000000 --- a/keyboards/adpenrose/akemipad/akemipad.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2022 Arturo Avila (@ADPenrose) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -/* Setting up the LED matrix */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, NO_LED }, - { 4, 5, 6, 7, NO_LED }, - { 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, NO_LED }, - { 17, 18, 19, 20, 21 }, - { 22, 23, 24, 25, 26 }, -}, { - // LED Index to Physical Position - { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 }, - { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117}, - {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144} -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - -#endif diff --git a/keyboards/adpenrose/akemipad/keyboard.json b/keyboards/adpenrose/akemipad/keyboard.json index 085ca5e406..a7981d13ef 100644 --- a/keyboards/adpenrose/akemipad/keyboard.json +++ b/keyboards/adpenrose/akemipad/keyboard.json @@ -15,8 +15,36 @@ "cycle_left_right": true, "cycle_up_down": true }, - "center_point": [60, 77], "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 207, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 69, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 138, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 207, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 69, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 138, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 207, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 30, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 138, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 207, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 69, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 138, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 207, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 224, "y": 56, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 62, "flags": 4}, + {"matrix": [5, 1], "x": 33, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 69, "y": 62, "flags": 4}, + {"matrix": [5, 3], "x": 138, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 207, "y": 64, "flags": 4} + ], "max_brightness": 175, "sleep": true }, diff --git a/keyboards/adpenrose/kintsugi/post_config.h b/keyboards/adpenrose/kintsugi/post_config.h index 36913903f7..f1e3f2e2c7 100644 --- a/keyboards/adpenrose/kintsugi/post_config.h +++ b/keyboards/adpenrose/kintsugi/post_config.h @@ -20,4 +20,4 @@ along with this program. If not, see . #ifndef OLED_FONT_H # define OLED_FONT_H "lib/kintsugifont.c" # define OLED_TIMEOUT 120000 -#endif \ No newline at end of file +#endif diff --git a/keyboards/adpenrose/mine/keymaps/default/keymap.c b/keyboards/adpenrose/mine/keymaps/default/keymap.c index 3d6cf31bd8..9ae158fb6f 100644 --- a/keyboards/adpenrose/mine/keymaps/default/keymap.c +++ b/keyboards/adpenrose/mine/keymaps/default/keymap.c @@ -30,4 +30,4 @@ 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) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/adpenrose/mine/keymaps/default/rules.mk b/keyboards/adpenrose/mine/keymaps/default/rules.mk index 4769500eb0..2ac8beff37 100644 --- a/keyboards/adpenrose/mine/keymaps/default/rules.mk +++ b/keyboards/adpenrose/mine/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality diff --git a/keyboards/adpenrose/mine/keymaps/iso/keymap.c b/keyboards/adpenrose/mine/keymaps/iso/keymap.c index 988330c979..1f275543f9 100644 --- a/keyboards/adpenrose/mine/keymaps/iso/keymap.c +++ b/keyboards/adpenrose/mine/keymaps/iso/keymap.c @@ -30,4 +30,4 @@ 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) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/adpenrose/mine/keymaps/iso/rules.mk b/keyboards/adpenrose/mine/keymaps/iso/rules.mk index 4769500eb0..2ac8beff37 100644 --- a/keyboards/adpenrose/mine/keymaps/iso/rules.mk +++ b/keyboards/adpenrose/mine/keymaps/iso/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality diff --git a/keyboards/adpenrose/mine/matrix_diagram.md b/keyboards/adpenrose/mine/matrix_diagram.md index 05d34fb066..56b2c9642e 100644 --- a/keyboards/adpenrose/mine/matrix_diagram.md +++ b/keyboards/adpenrose/mine/matrix_diagram.md @@ -75,4 +75,4 @@ ┌──┐┌──┐┌──┐ │6H││8H││9H│ └──┘└──┘└──┘ -``` \ No newline at end of file +``` diff --git a/keyboards/adpenrose/mine/rules.mk b/keyboards/adpenrose/mine/rules.mk index 93ae8d898f..c2ee0bc86f 100644 --- a/keyboards/adpenrose/mine/rules.mk +++ b/keyboards/adpenrose/mine/rules.mk @@ -1,2 +1,2 @@ # Processor frequency -F_CPU = 16000000 \ No newline at end of file +F_CPU = 16000000 diff --git a/keyboards/aeboards/aegis/readme.md b/keyboards/aeboards/aegis/readme.md index 1b8fc124e5..44aad98731 100644 --- a/keyboards/aeboards/aegis/readme.md +++ b/keyboards/aeboards/aegis/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make aeboards/aegis:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/aeboards/satellite/rev1/keyboard.json b/keyboards/aeboards/satellite/rev1/keyboard.json index f9355171fb..a6752565bd 100644 --- a/keyboards/aeboards/satellite/rev1/keyboard.json +++ b/keyboards/aeboards/satellite/rev1/keyboard.json @@ -68,6 +68,80 @@ "val": 80 }, "driver": "custom", + "layout": [ + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 16, "flags": 4}, + {"x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 11], "x": 6, "y": 32, "flags": 1}, + {"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, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"x": 212, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"x": 67, "y": 56, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 200, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"x": 120, "y": 48, "flags": 4}, + {"x": 120, "y": 56, "flags": 4}, + {"matrix": [4, 9], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 175, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1} + ], "sleep": true }, "processor": "atmega32u4", diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index 28ac5ef302..6e468d713d 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -102,46 +102,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C8_16, C7_16, C6_16} //D17 }; -led_config_t g_led_config = { { - { 17, 16, 15, 14, 13, 12, 11, 10, 9, 18, 19, 20, 21, 22, 24 }, - { 7, 6, 6, 4, 4, 2, 1, 0, 27, 18, 29, 30, 31, 32, 25 }, - { 8, 50, 49, 48, 47, 46, 45, 54, 55, 56, 57, 8, 59, NO_LED, 26 }, - { 51, 41, 40, 39, 38, 37, 63, 64, 65, 66, 60, NO_LED, 61, 62, 33 }, - { 52, 44, 43, NO_LED, NO_LED, 36, NO_LED, NO_LED, NO_LED, 69, 70, NO_LED, 71, 35, 34 }, -}, { - //A0 .. A17 - {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 }, { 6,32 }, - {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 }, - - //B0 .. B17 - {134,0 }, {149,0 }, {164,0 }, {179,0 }, {202,0 }, {255,255}, {224,0 }, {224,16 }, {224,32 }, - {127,16 }, {142,16 }, {157,16 }, {172,16 }, {187,16 }, {205,16 }, {224,48 }, {224,64 }, {209,64 }, - - //C0 .. C17 - { 95,64 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 67,56 }, { 39,64 }, { 21,64 }, - {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 9,48 }, { 2,64 }, {255,255}, - - //D0 .. D17 - {116,32 }, {131,32 }, {146,32 }, {161,32 }, {175,32 }, {200,32 }, {168,48 }, {189,48 }, {209,48 }, - {108,48 }, {123,48 }, {138,48 }, {153,48 }, {255,255}, {120,56 }, {153,64 }, {175,64 }, {194,64 } -}, { - //A0 .. A17 - 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - - //B0 .. B17 - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 1, 1, - - //C0 .. C17 - 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 1, 1, 4, - - //D0 .. D17 - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, 1, 1 -} }; - // Custom Driver static void init(void) { i2c_init(); diff --git a/keyboards/ai03/jp60/keymaps/default/rules.mk b/keyboards/ai03/jp60/keymaps/default/rules.mk index edac26d087..3c67c83586 100644 --- a/keyboards/ai03/jp60/keymaps/default/rules.mk +++ b/keyboards/ai03/jp60/keymaps/default/rules.mk @@ -1 +1 @@ -DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness \ No newline at end of file +DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness diff --git a/keyboards/ai03/orbit/orbit.c b/keyboards/ai03/orbit/orbit.c index 0c1e0dc32e..dce16e4cc1 100644 --- a/keyboards/ai03/orbit/orbit.c +++ b/keyboards/ai03/orbit/orbit.c @@ -18,7 +18,7 @@ void led_init_ports(void) { // Initialize indicator LEDs to output - if (isLeftHand) { + if (is_keyboard_left()) { gpio_set_pin_output(C6); gpio_set_pin_output(B6); gpio_set_pin_output(B5); @@ -36,7 +36,7 @@ void led_init_ports(void) { // // (LEFT) 0 1 2 | 3 4 5 (RIGHT) void led_toggle(uint8_t id, bool on) { - if (isLeftHand) { + if (is_keyboard_left()) { switch (id) { case 0: // Left hand C6 diff --git a/keyboards/ai03/readme.md b/keyboards/ai03/readme.md index 90bd219289..8e5fccbfee 100644 --- a/keyboards/ai03/readme.md +++ b/keyboards/ai03/readme.md @@ -1,4 +1,4 @@ # ai03 QMK folders for PCB commissions. -Website: [ai03 Keyboard Designs](https://kb.ai03.me/) \ No newline at end of file +Website: [ai03 Keyboard Designs](https://kb.ai03.me/) diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c b/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c index e541c14d01..8b0f3e4333 100644 --- a/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c +++ b/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_RIGHT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_TAB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/aidansmithdotdev/sango/keyboard.json b/keyboards/aidansmithdotdev/sango/keyboard.json index f51eed7fd9..04970c898a 100644 --- a/keyboards/aidansmithdotdev/sango/keyboard.json +++ b/keyboards/aidansmithdotdev/sango/keyboard.json @@ -117,7 +117,7 @@ }, "split": { "bootmagic": { - "matrix": [4, 7] + "matrix": [5, 7] }, "enabled": true, "matrix_pins": { diff --git a/keyboards/akko/5087/5087.c b/keyboards/akko/5087/5087.c index 0b26ef90a6..892e6d2b1d 100644 --- a/keyboards/akko/5087/5087.c +++ b/keyboards/akko/5087/5087.c @@ -140,30 +140,3 @@ void housekeeping_task_kb(void){ gpio_write_pin(LED_MAC_OS_PIN, (get_highest_layer(default_layer_state) == 3)); gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); } - -bool process_record_kb(uint16_t keycode, keyrecord_t* record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - default: - return true; - } -} diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c index 565dfb77c6..529b936a26 100644 --- a/keyboards/akko/top40/top40.c +++ b/keyboards/akko/top40/top40.c @@ -122,4 +122,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/alatus/config.h b/keyboards/alatus/config.h new file mode 100644 index 0000000000..92bee4d9ad --- /dev/null +++ b/keyboards/alatus/config.h @@ -0,0 +1,7 @@ +// Copyright 2026 Dominic Yeap-Holliday +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Trackpoint +#define PS2_PIO_USE_PIO1 diff --git a/keyboards/alatus/keyboard.json b/keyboards/alatus/keyboard.json new file mode 100644 index 0000000000..1152e46ba7 --- /dev/null +++ b/keyboards/alatus/keyboard.json @@ -0,0 +1,170 @@ +{ + "manufacturer": "NA", + "keyboard_name": "Alatus", + "maintainer": "DoomishGuy", + "bootmagic": { + "matrix": [0, 4] + }, + "development_board": "promicro_rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP22", "pin_b": "GP26"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP8", "GP9", "GP21", "GP23", "GP20"], + "rows": ["GP4", "GP5", "GP6", "GP7"] + }, + "ps2": { + "clock_pin": "GP28", + "data_pin": "GP27", + "driver": "vendor", + "enabled": true, + "mouse_enabled": true + }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"x": 90, "y": 33, "flags": 8}, + {"x": 90, "y": 49, "flags": 8}, + {"matrix": [3, 4], "x": 85, "y": 51, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 46, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 43, "flags": 4}, + {"matrix": [3, 1], "x": 26, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 72, "y": 31, "flags": 4}, + {"matrix": [2, 3], "x": 54, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 18, "y": 28, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 54, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [0, 4], "x": 72, "y": 7, "flags": 4}, + {"matrix": [0, 3], "x": 54, "y": 5, "flags": 4}, + {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 18, "y": 4, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 12, "flags": 4}, + {"x": 0, "y": 9, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 80, "y": 11, "flags": 2}, + {"x": 75, "y": 48, "flags": 2}, + {"x": 54, "y": 44, "flags": 2}, + {"x": 17, "y": 45, "flags": 2}, + {"x": 134, "y": 33, "flags": 8}, + {"x": 134, "y": 49, "flags": 8}, + {"matrix": [7, 4], "x": 139, "y": 51, "flags": 4}, + {"matrix": [7, 3], "x": 160, "y": 46, "flags": 4}, + {"matrix": [7, 2], "x": 180, "y": 43, "flags": 4}, + {"matrix": [7, 1], "x": 198, "y": 43, "flags": 4}, + {"matrix": [6, 4], "x": 152, "y": 31, "flags": 4}, + {"matrix": [6, 3], "x": 170, "y": 29, "flags": 4}, + {"matrix": [6, 2], "x": 188, "y": 24, "flags": 4}, + {"matrix": [6, 1], "x": 206, "y": 28, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 36, "flags": 4}, + {"matrix": [5, 4], "x": 152, "y": 19, "flags": 4}, + {"matrix": [5, 3], "x": 170, "y": 17, "flags": 4}, + {"matrix": [5, 2], "x": 188, "y": 12, "flags": 4}, + {"matrix": [5, 1], "x": 206, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 4}, + {"matrix": [4, 4], "x": 152, "y": 7, "flags": 4}, + {"matrix": [4, 3], "x": 170, "y": 5, "flags": 4}, + {"matrix": [4, 2], "x": 188, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 206, "y": 4, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 12, "flags": 4}, + {"x": 224, "y": 9, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 144, "y": 11, "flags": 2}, + {"x": 149, "y": 48, "flags": 2}, + {"x": 170, "y": 44, "flags": 2}, + {"x": 207, "y": 45, "flags": 2} + ], + "max_brightness": 128, + "split_count": [27, 27] + }, + "split": { + "bootmagic": { + "matrix": [4, 4] + }, + "enabled": true, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "GP26", "pin_b": "GP22"} + ] + } + }, + "handedness": { + "pin": "GP29" + }, + "serial": { + "driver": "vendor", + "pin": "GP1" + } + }, + "tags": ["columnar", "split", "encoder", "choc v1", "choc spaced", "RP2040"], + "url": "https://codeberg.org/DoomishGuy/alatus", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "L04", "matrix": [0, 0], "x": 0, "y": 1.1}, + {"label": "L03", "matrix": [0, 1], "x": 1, "y": 0.35}, + {"label": "L02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "L01", "matrix": [0, 3], "x": 3, "y": 0.38}, + {"label": "L00", "matrix": [0, 4], "x": 4, "y": 0.53}, + {"label": "R00", "matrix": [4, 4], "x": 10, "y": 0.53}, + {"label": "R01", "matrix": [4, 3], "x": 11, "y": 0.38}, + {"label": "R02", "matrix": [4, 2], "x": 12, "y": 0}, + {"label": "R03", "matrix": [4, 1], "x": 13, "y": 0.35}, + {"label": "R04", "matrix": [4, 0], "x": 14, "y": 1.1}, + {"label": "L09", "matrix": [1, 0], "x": 0, "y": 2.1}, + {"label": "L08", "matrix": [1, 1], "x": 1, "y": 1.35}, + {"label": "L07", "matrix": [1, 2], "x": 2, "y": 1}, + {"label": "L06", "matrix": [1, 3], "x": 3, "y": 1.38}, + {"label": "L05", "matrix": [1, 4], "x": 4, "y": 1.53}, + {"label": "R05", "matrix": [5, 4], "x": 10, "y": 1.53}, + {"label": "R06", "matrix": [5, 3], "x": 11, "y": 1.38}, + {"label": "R07", "matrix": [5, 2], "x": 12, "y": 1}, + {"label": "R08", "matrix": [5, 1], "x": 13, "y": 1.35}, + {"label": "R09", "matrix": [5, 0], "x": 14, "y": 2.1}, + {"label": "L14", "matrix": [2, 0], "x": 0, "y": 3.1}, + {"label": "L13", "matrix": [2, 1], "x": 1, "y": 2.35}, + {"label": "L12", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "L11", "matrix": [2, 3], "x": 3, "y": 2.38}, + {"label": "L10", "matrix": [2, 4], "x": 4, "y": 2.53}, + {"label": "R10", "matrix": [6, 4], "x": 10, "y": 2.53}, + {"label": "R11", "matrix": [6, 3], "x": 11, "y": 2.38}, + {"label": "R12", "matrix": [6, 2], "x": 12, "y": 2}, + {"label": "R13", "matrix": [6, 1], "x": 13, "y": 2.35}, + {"label": "R14", "matrix": [6, 0], "x": 14, "y": 3.1}, + {"label": "L18", "matrix": [3, 1], "x": 1, "y": 4}, + {"label": "L17", "matrix": [3, 2], "x": 2, "y": 4}, + {"label": "L16", "matrix": [3, 3], "x": 3, "y": 4.25}, + {"label": "L15", "matrix": [3, 4], "x": 4, "y": 4.5}, + {"label": "R15", "matrix": [7, 4], "x": 10, "y": 4.5}, + {"label": "R16", "matrix": [7, 3], "x": 11, "y": 4.25}, + {"label": "R17", "matrix": [7, 2], "x": 12, "y": 4}, + {"label": "R18", "matrix": [7, 1], "x": 13, "y": 4} + ] + } + } +} diff --git a/keyboards/alatus/keymaps/default/keymap.c b/keyboards/alatus/keymaps/default/keymap.c new file mode 100644 index 0000000000..fc47a429ca --- /dev/null +++ b/keyboards/alatus/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2026 Dominic Yeap-Holliday +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, +}; + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, + KC_LCTL, KC_LGUI, KC_SPACE, KC_ENTER, KC_TAB, KC_BSPC, KC_RSFT, KC_RALT + ) +}; +// clang-format on + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_QWERTY] = {ENCODER_CCW_CW(KC_L, KC_R), ENCODER_CCW_CW(KC_U, KC_D)}, +}; +#endif diff --git a/keyboards/alatus/keymaps/default/readme.md b/keyboards/alatus/keymaps/default/readme.md new file mode 100644 index 0000000000..ddcae87eb1 --- /dev/null +++ b/keyboards/alatus/keymaps/default/readme.md @@ -0,0 +1,4 @@ +# Alatus's Default Keymap + +The default keymap is intentionally Spartan, and is not intended for long term use. +The provided `rules.mk` enables encoder mapping to test encoder functionality. diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/rules.mk b/keyboards/alatus/keymaps/default/rules.mk similarity index 100% rename from keyboards/0xcb/splaytoraid/keymaps/default/rules.mk rename to keyboards/alatus/keymaps/default/rules.mk diff --git a/keyboards/alatus/readme.md b/keyboards/alatus/readme.md new file mode 100644 index 0000000000..e3fffb05c3 --- /dev/null +++ b/keyboards/alatus/readme.md @@ -0,0 +1,26 @@ +# alatus + +![alatus](https://i.imgur.com/kVrFpSJ.jpeg) + +A low profile 38 key split keyboard featuring rotary encoder and trackpoint support. + +* Keyboard Maintainer: [DoomishGuy](https://codeberg.org/DoomishGuy) +* Hardware Supported: RP2040 Pro Micro and compatible +* Hardware Availability: [DoomishGuy/alatus](https://codeberg.org/DoomishGuy/alatus) + +Make example for this keyboard (after setting up your build environment): + + make alatus:default + +Flashing example for this keyboard: + + make alatus:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the top left/right key (for the left/right splits respectively) and plug in the keyboard. +* **Physical reset button**: Press the reset button below the microcontroller twice in quick succession. diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json index 6818797809..9582149675 100644 --- a/keyboards/aleblazer/zodiark/keyboard.json +++ b/keyboards/aleblazer/zodiark/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zodiark", "manufacturer": "Aleblazer", - "url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark", "maintainer": "Aleblazer", "usb": { "vid": "0xF901", @@ -42,6 +41,76 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 93, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 74, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 37, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 74, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 93, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 112, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 74, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 19, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 37, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 74, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [2, 6], "x": 112, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 93, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 74, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 56, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 132, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 150, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 169, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 187, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 206, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 206, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 187, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 169, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 150, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 132, "y": 16, "flags": 4}, + {"matrix": [5, 6], "x": 113, "y": 24, "flags": 4}, + {"matrix": [6, 6], "x": 113, "y": 40, "flags": 4}, + {"matrix": [7, 5], "x": 132, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 150, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 169, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 187, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 206, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 206, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 187, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 169, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 150, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 132, "y": 48, "flags": 4}, + {"matrix": [7, 6], "x": 113, "y": 52, "flags": 4}, + {"matrix": [9, 6], "x": 113, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 132, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 150, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 169, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 187, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 206, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} + ], "max_brightness": 150, "sat_steps": 8, "speed_steps": 10, diff --git a/keyboards/aleblazer/zodiark/readme.md b/keyboards/aleblazer/zodiark/readme.md index 392744dede..a27ed94f8a 100644 --- a/keyboards/aleblazer/zodiark/readme.md +++ b/keyboards/aleblazer/zodiark/readme.md @@ -2,7 +2,7 @@ ![Zodiark Split](https://i.imgur.com/49O8aowl.jpg) -A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporiting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SSH1106 OLED, refer to QMK documentation for limitations), .91" 128x32 OLEDs. +A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SH1106 OLED, refer to QMK documentation for limitations) and .91" 128x32 OLEDs. * Keyboard Maintainer: [Aleblazer](https://github.com/Aleblazer/), [Discord Link](https://discord.gg/BCSbXwskVt) * Hardware Supported: Pro Micro and derivatives diff --git a/keyboards/aleblazer/zodiark/zodiark.c b/keyboards/aleblazer/zodiark/zodiark.c deleted file mode 100644 index 8829ac8f3c..0000000000 --- a/keyboards/aleblazer/zodiark/zodiark.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright 2021 Spencer Deven - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { -// Key Matrix to LED Index - // Left Hand - { 5, 4, 3, 2, 1, 0, 12 }, - { 6, 7, 8, 9, 10, 11, 13 }, - { 19, 18, 17, 16, 15, 14, 26 }, - { 20, 21, 22, 23, 24, 25, NO_LED }, - { 33, 32, 31, 30, 29, 28, 27}, - // Right Hand - { 39, 38, 37, 36, 35, 34, 46 }, - { 40, 41, 42, 43, 44, 45, 47 }, - { 53, 52, 51, 50, 49, 48, 60 }, - { 54, 55, 56, 57, 58, 59, NO_LED }, - { 67, 66, 65, 64, 63, 62, 61 }, - - -}, { - // LED Index to Physical Position - // Left Hand - { 93, 0 }, { 74, 0 }, { 56, 0 }, { 37, 0 }, { 19, 0 }, { 0, 0 }, { 0, 16 }, - { 19, 16 }, { 37, 16 }, { 56, 16 }, { 74, 16 }, { 93, 16 }, { 112, 24 }, { 112, 40 }, - { 93, 32 }, { 74, 32 }, { 56, 32 }, { 37, 32 }, { 19, 32 }, { 0, 32 }, { 0, 48 }, - { 19, 48 }, { 37, 48 }, { 56, 48 }, { 74, 48 }, { 93, 48 }, { 112, 52 }, - { 112, 64 }, { 93, 64 }, { 74, 64 }, { 56, 64 }, { 37, 64 }, { 19, 64 }, { 0, 64 }, - // Right Hand - { 132, 0 }, { 150, 0 }, { 169, 0 }, { 187, 0 }, { 206, 0 }, { 224, 0 }, { 224, 16 }, - { 206, 16 }, { 187, 16 }, { 169, 16 }, { 150, 16 }, { 132, 16 }, { 113, 24 }, { 113, 40 }, - { 132, 32 }, { 150, 32 }, { 169, 32 }, { 187, 32 }, { 206, 32 }, { 224, 32 }, { 224, 48 }, - { 206, 48 }, { 187, 48 }, { 169, 48 }, { 150, 48 }, { 132, 48 }, { 113, 52 }, - { 113, 64 }, { 132, 64 }, { 150, 64 }, { 169, 64 }, { 187, 64 }, { 206, 64 }, { 224, 64 }, -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/aliceh66/pianoforte/readme.md b/keyboards/aliceh66/pianoforte/readme.md index aadd975b79..05e17bb94c 100644 --- a/keyboards/aliceh66/pianoforte/readme.md +++ b/keyboards/aliceh66/pianoforte/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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 -Press and hold the reset button to enter bootloader mode. \ No newline at end of file +Press and hold the reset button to enter bootloader mode. diff --git a/keyboards/aliceh66/pianoforte_hs/readme.md b/keyboards/aliceh66/pianoforte_hs/readme.md index 6b05e06805..2f6c2b112d 100644 --- a/keyboards/aliceh66/pianoforte_hs/readme.md +++ b/keyboards/aliceh66/pianoforte_hs/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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 -Press and hold the reset button to enter bootloader mode. \ No newline at end of file +Press and hold the reset button to enter bootloader mode. diff --git a/keyboards/alpaca/wfeclipse/keyboard.json b/keyboards/alpaca/wfeclipse/keyboard.json index da0ebe388a..682772445d 100644 --- a/keyboards/alpaca/wfeclipse/keyboard.json +++ b/keyboards/alpaca/wfeclipse/keyboard.json @@ -206,4 +206,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/amjkeyboard/amj66/keymaps/default/readme.md b/keyboards/amjkeyboard/amj66/keymaps/default/readme.md index c250695efd..90efe9d22a 100644 --- a/keyboards/amjkeyboard/amj66/keymaps/default/readme.md +++ b/keyboards/amjkeyboard/amj66/keymaps/default/readme.md @@ -9,4 +9,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + \ Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/an_achronism/tetromino/config.h b/keyboards/an_achronism/tetromino/config.h deleted file mode 100644 index c7087edb88..0000000000 --- a/keyboards/an_achronism/tetromino/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2022 an_achronism (@an-achronism) - -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 RP2040_BOOTLOADER_DOUBLE_TAP_RESET - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h index f7c7b4b44c..edcc85f722 100644 --- a/keyboards/anavi/macropad8/config.h +++ b/keyboards/anavi/macropad8/config.h @@ -17,8 +17,5 @@ along with this program. If not, see . #pragma once -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X64 -# define OLED_TIMEOUT 60000 -# define OLED_FONT_H "keyboards/anavi/macropad8/glcdfont.c" -#endif +#define OLED_DISPLAY_128X64 +#define OLED_TIMEOUT 60000 diff --git a/keyboards/anavi/macropad8/glcdfont.c b/keyboards/anavi/macropad8/glcdfont.c deleted file mode 100644 index 10ce3b3457..0000000000 --- a/keyboards/anavi/macropad8/glcdfont.c +++ /dev/null @@ -1,232 +0,0 @@ -#include "progmem.h" - -// Corne 8x6 font with QMK Firmware Logo -// Online editor: https://helixfonteditor.netlify.com/ - -// clang-format off -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, -0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, -0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, -0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, -0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, -0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, -0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x81, -0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, -0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, -0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, -0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, -0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, -0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x03, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x03, 0x01, 0x00, 0x00, 0x00, 0x00, -0x01, 0x03, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x03, 0x01, -0x00, 0x00, 0x00, 0x07, 0x07, 0x07, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 0x07, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x07, -0x07, 0x00, 0x00, 0x00, 0x01, 0x03, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x03, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json index 8073a038a2..2fb24e58bb 100644 --- a/keyboards/anavi/macropad8/keyboard.json +++ b/keyboards/anavi/macropad8/keyboard.json @@ -20,10 +20,8 @@ "breathing": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, "knight": true, "static_gradient": true, - "rgb_test": true, "alternating": true, "twinkle": true } diff --git a/keyboards/annepro2/boards/ANNEPRO2_C15/board.h b/keyboards/annepro2/boards/ANNEPRO2_C15/board.h index 0a044ea181..7345b24231 100644 --- a/keyboards/annepro2/boards/ANNEPRO2_C15/board.h +++ b/keyboards/annepro2/boards/ANNEPRO2_C15/board.h @@ -36,4 +36,4 @@ void boardInit(void); #ifdef __cplusplus } #endif -#endif /* _FROM_ASM_ */ \ No newline at end of file +#endif /* _FROM_ASM_ */ diff --git a/keyboards/annepro2/chconf.h b/keyboards/annepro2/chconf.h index 51fe38cf27..908a19920f 100644 --- a/keyboards/annepro2/chconf.h +++ b/keyboards/annepro2/chconf.h @@ -28,4 +28,4 @@ #define CH_CFG_TIME_QUANTUM 20 -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/ano/readme.md b/keyboards/ano/readme.md index 594d4bc69c..483e3c78af 100644 --- a/keyboards/ano/readme.md +++ b/keyboards/ano/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: * Physical reset button: Briefly press the button on the back of the PCB - or short reset and ground pins -* Keycode in layout: Press the key mapped to `QK_BOOT`. By default this is done by pressing RALT to access second layer and pressing rotary encoder down. \ No newline at end of file +* Keycode in layout: Press the key mapped to `QK_BOOT`. By default this is done by pressing RALT to access second layer and pressing rotary encoder down. diff --git a/keyboards/aokay/mid1/keyboard.json b/keyboards/aokay/mid1/keyboard.json new file mode 100644 index 0000000000..acd32905ba --- /dev/null +++ b/keyboards/aokay/mid1/keyboard.json @@ -0,0 +1,245 @@ +{ + "manufacturer": "A.Okay!", + "keyboard_name": "MID.1", + "maintainer": "sizezero", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D2"}, + {"pin_a": "D3", "pin_b": "D5"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["E6", "B0", "F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5"], + "rows": ["B4", "D7", "D6", "D4"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "rgblight": { + "animations": { + "breathing": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true + }, + "brightness_steps": 8, + "default": { + "hue": 15, + "val": 128 + }, + "hue_steps": 5, + "led_count": 8, + "max_brightness": 200, + "saturation_steps": 8, + "sleep": true + }, + "url": "https://www.aokay.cool/mid-1", + "usb": { + "device_version": "0.1.0", + "pid": "0x414F", + "vid": "0x1001" + }, + "ws2812": { + "pin": "D0" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "sw1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "sw2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "sw3", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "sw4", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "sw5", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "sw6", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "sw7", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "sw8", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "sw9", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "sw10", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "sw11", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "sw12", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "sw13", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"label": "sw14", "matrix": [1, 1], "x": 1.25, "y": 1}, + {"label": "sw15", "matrix": [1, 2], "x": 2.25, "y": 1}, + {"label": "sw16", "matrix": [1, 3], "x": 3.25, "y": 1}, + {"label": "sw17", "matrix": [1, 4], "x": 4.25, "y": 1}, + {"label": "sw18", "matrix": [1, 5], "x": 5.25, "y": 1}, + {"label": "sw19", "matrix": [1, 6], "x": 6.25, "y": 1}, + {"label": "sw20", "matrix": [1, 7], "x": 7.25, "y": 1}, + {"label": "sw21", "matrix": [1, 8], "x": 8.25, "y": 1}, + {"label": "sw22", "matrix": [1, 9], "x": 9.25, "y": 1}, + {"label": "sw23", "matrix": [1, 10], "x": 10.25, "y": 1, "w": 1.75}, + {"label": "sw24", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "sw25", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "sw26", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "sw27", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "sw28", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "sw29", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "sw30", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "sw31", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "sw32", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "sw33", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "sw34", "matrix": [2, 10], "x": 10.75, "y": 2, "w": 1.25}, + {"label": "sw35", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "sw36", "matrix": [3, 1], "x": 1.5, "y": 3}, + {"label": "sw37", "matrix": [3, 2], "x": 2.5, "y": 3}, + {"label": "sw38", "matrix": [3, 3], "x": 3.5, "y": 5, "w": 2.25}, + {"label": "sw39", "matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.75}, + {"label": "sw40", "matrix": [3, 5], "x": 2.5, "y": 4, "w": 7}, + {"label": "sw41", "matrix": [3, 6], "x": 6.25, "y": 3, "w": 2.25}, + {"label": "sw42", "matrix": [3, 7], "x": 6.75, "y": 5, "w": 2.75}, + {"label": "sw43", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "sw44", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "sw45", "matrix": [3, 10], "x": 10.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_275u_225u": { + "layout": [ + {"label": "sw1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "sw2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "sw3", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "sw4", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "sw5", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "sw6", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "sw7", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "sw8", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "sw9", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "sw10", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "sw11", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "sw12", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "sw13", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"label": "sw14", "matrix": [1, 1], "x": 1.25, "y": 1}, + {"label": "sw15", "matrix": [1, 2], "x": 2.25, "y": 1}, + {"label": "sw16", "matrix": [1, 3], "x": 3.25, "y": 1}, + {"label": "sw17", "matrix": [1, 4], "x": 4.25, "y": 1}, + {"label": "sw18", "matrix": [1, 5], "x": 5.25, "y": 1}, + {"label": "sw19", "matrix": [1, 6], "x": 6.25, "y": 1}, + {"label": "sw20", "matrix": [1, 7], "x": 7.25, "y": 1}, + {"label": "sw21", "matrix": [1, 8], "x": 8.25, "y": 1}, + {"label": "sw22", "matrix": [1, 9], "x": 9.25, "y": 1}, + {"label": "sw23", "matrix": [1, 10], "x": 10.25, "y": 1, "w": 1.75}, + {"label": "sw24", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "sw25", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "sw26", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "sw27", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "sw28", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "sw29", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "sw30", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "sw31", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "sw32", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "sw33", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "sw34", "matrix": [2, 10], "x": 10.75, "y": 2, "w": 1.25}, + {"label": "sw35", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "sw36", "matrix": [3, 1], "x": 1.5, "y": 3}, + {"label": "sw37", "matrix": [3, 2], "x": 2.5, "y": 3}, + {"label": "sw39", "matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.75}, + {"label": "sw41", "matrix": [3, 6], "x": 6.25, "y": 3, "w": 2.25}, + {"label": "sw43", "matrix": [3, 8], "x": 8.5, "y": 3}, + {"label": "sw44", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "sw45", "matrix": [3, 10], "x": 10.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_7u": { + "layout": [ + {"label": "sw1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "sw2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "sw3", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "sw4", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "sw5", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "sw6", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "sw7", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "sw8", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "sw9", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "sw10", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "sw11", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "sw12", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "sw13", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"label": "sw14", "matrix": [1, 1], "x": 1.25, "y": 1}, + {"label": "sw15", "matrix": [1, 2], "x": 2.25, "y": 1}, + {"label": "sw16", "matrix": [1, 3], "x": 3.25, "y": 1}, + {"label": "sw17", "matrix": [1, 4], "x": 4.25, "y": 1}, + {"label": "sw18", "matrix": [1, 5], "x": 5.25, "y": 1}, + {"label": "sw19", "matrix": [1, 6], "x": 6.25, "y": 1}, + {"label": "sw20", "matrix": [1, 7], "x": 7.25, "y": 1}, + {"label": "sw21", "matrix": [1, 8], "x": 8.25, "y": 1}, + {"label": "sw22", "matrix": [1, 9], "x": 9.25, "y": 1}, + {"label": "sw23", "matrix": [1, 10], "x": 10.25, "y": 1, "w": 1.75}, + {"label": "sw24", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "sw25", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "sw26", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "sw27", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "sw28", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "sw29", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "sw30", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "sw31", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "sw32", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "sw33", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "sw34", "matrix": [2, 10], "x": 10.75, "y": 2, "w": 1.25}, + {"label": "sw35", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "sw36", "matrix": [3, 1], "x": 1.5, "y": 3}, + {"label": "sw40", "matrix": [3, 5], "x": 2.5, "y": 3, "w": 7}, + {"label": "sw44", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "sw45", "matrix": [3, 10], "x": 10.5, "y": 3, "w": 1.5} + ] + }, + "LAYOUT_225u_1u_275u": { + "layout": [ + {"label": "sw1", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "sw2", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "sw3", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "sw4", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "sw5", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "sw6", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "sw7", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "sw8", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "sw9", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "sw10", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "sw11", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "sw12", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "sw13", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"label": "sw14", "matrix": [1, 1], "x": 1.25, "y": 1}, + {"label": "sw15", "matrix": [1, 2], "x": 2.25, "y": 1}, + {"label": "sw16", "matrix": [1, 3], "x": 3.25, "y": 1}, + {"label": "sw17", "matrix": [1, 4], "x": 4.25, "y": 1}, + {"label": "sw18", "matrix": [1, 5], "x": 5.25, "y": 1}, + {"label": "sw19", "matrix": [1, 6], "x": 6.25, "y": 1}, + {"label": "sw20", "matrix": [1, 7], "x": 7.25, "y": 1}, + {"label": "sw21", "matrix": [1, 8], "x": 8.25, "y": 1}, + {"label": "sw22", "matrix": [1, 9], "x": 9.25, "y": 1}, + {"label": "sw23", "matrix": [1, 10], "x": 10.25, "y": 1, "w": 1.75}, + {"label": "sw24", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "sw25", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "sw26", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "sw27", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "sw28", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "sw29", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "sw30", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "sw31", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "sw32", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "sw33", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "sw34", "matrix": [2, 10], "x": 10.75, "y": 2, "w": 1.25}, + {"label": "sw35", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.5}, + {"label": "sw36", "matrix": [3, 1], "x": 1.5, "y": 3}, + {"label": "sw37", "matrix": [3, 2], "x": 2.5, "y": 3}, + {"label": "sw38", "matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.25}, + {"label": "sw40", "matrix": [3, 5], "x": 5.75, "y": 3}, + {"label": "sw42", "matrix": [3, 7], "x": 6.75, "y": 3, "w": 2.75}, + {"label": "sw44", "matrix": [3, 9], "x": 9.5, "y": 3}, + {"label": "sw45", "matrix": [3, 10], "x": 10.5, "y": 3, "w": 1.5} + ] + } + } +} diff --git a/keyboards/aokay/mid1/keymaps/default/keymap.json b/keyboards/aokay/mid1/keymaps/default/keymap.json new file mode 100644 index 0000000000..0e350f4fa7 --- /dev/null +++ b/keyboards/aokay/mid1/keymaps/default/keymap.json @@ -0,0 +1,80 @@ +{ + "config": { + "features": { + "encoder_map": true + } + }, + "encoders": [ + [ + { + "ccw": "KC_VOLD", + "cw": "KC_VOLU" + }, + { + "ccw": "KC_PGUP", + "cw": "KC_PGDN" + } + ], + [ + { + "ccw": "UG_VALD", + "cw": "UG_VALU" + }, + { + "ccw": "UG_HUED", + "cw": "UG_HUEU" + } + ], + [ + { + "ccw": "UG_PREV", + "cw": "UG_NEXT" + }, + { + "ccw": "UG_SATD", + "cw": "UG_SATU" + } + ] + ], + "keyboard": "aokay/mid1", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "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_SCLN" + "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_ENT" + "KC_ENT" + "MO(1)" + "KC_SPC" + "KC_SPC" + "MO(1)", "MO(2)", "KC_RCTL" + ], + [ + "QK_BOOT", "KC_TRNS", "KC_7", "KC_8", "KC_9", "KC_0", "KC_PAST", "KC_HOME", "KC_UP", "KC_END", "KC_TRNS", "KC_DEL" + "KC_CAPS", "KC_TRNS", "KC_4", "KC_5", "KC_6", "KC_MINS", "KC_SLSH", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_QUOT" + "KC_COMM", "KC_DOT", "KC_1", "KC_2", "KC_3", "KC_EQL", "KC_PPLS", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_TRNS" + "UG_TOGG", "KC_TRNS", "KC_TRNS" + "KC_0" + "KC_0" + "KC_TRNS" + "KC_TRNS" + "KC_TRNS" + "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "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/aokay/mid1/readme.md b/keyboards/aokay/mid1/readme.md new file mode 100644 index 0000000000..05c3305d1f --- /dev/null +++ b/keyboards/aokay/mid1/readme.md @@ -0,0 +1,31 @@ +# MID.1 + +![MID.1 photo](https://i.imgur.com/aPsvygY.jpeg) + +## Description + +A 40% keyboard with a staggered 4x12 layout and hotswap PCB. + +* Keyboard Maintainer: [Sean O'Neill](https://github.com/oneillseanm) +* Hardware Supported: MID.1 +* Hardware Availability: [MID.1 product page](https://www.aokay.cool/mid-1) + +## Setup + +Make example for this keyboard (after setting up your build environment): + + make aokay/mid1:default + +Flashing example for this keyboard: + + make aokay/mid1: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 three ways: + +* **Bootmagic reset**: Hold down `Esc` and plug in the keyboard. `Esc` is assigned to the top left key in the default keymap. +* **Keycode in layout**: Press `Fn+ESC` for `QK_BOOT`. `Fn` is assigned to the key to the right of the spacebar/split spacebar in the default keymap. +* **Physical reset button**: Briefly press the button on the back of the PCB, accessible through the bottom case. diff --git a/keyboards/aokay/readme.md b/keyboards/aokay/readme.md new file mode 100644 index 0000000000..c5520043a8 --- /dev/null +++ b/keyboards/aokay/readme.md @@ -0,0 +1,7 @@ +# A.Okay! + +This directory contains keyboards designed by **A.Okay!**, a small independent studio focused on thoughtfuly-designed physical products. + +Based in Seattle, Washington. + +**Website:** https://www.aokay.cool/ diff --git a/keyboards/archerkeyboard/desire65/readme.md b/keyboards/archerkeyboard/desire65/readme.md index 5d170ad475..b8ee33931f 100644 --- a/keyboards/archerkeyboard/desire65/readme.md +++ b/keyboards/archerkeyboard/desire65/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Hold the "USB_BOOT" button on the back of the PCB (the one closest to the MCU) and briefly press the "RESET" button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/archetype/minervalx/config.h b/keyboards/archetype/minervalx/config.h index 3b5eb8e56a..5c99920073 100644 --- a/keyboards/archetype/minervalx/config.h +++ b/keyboards/archetype/minervalx/config.h @@ -16,7 +16,5 @@ #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET - #define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/archetype/minervalx/readme.md b/keyboards/archetype/minervalx/readme.md index 365fd375e5..7d3c50d04f 100644 --- a/keyboards/archetype/minervalx/readme.md +++ b/keyboards/archetype/minervalx/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) * **Keycode in layout**: Press the key mapped to `QK_BOOT` if available -* **Physical Reset Button**: With the PCB unplugged, hold down the button labled `RESET` on the back of the PCB while pluggin in the USB. \ No newline at end of file +* **Physical Reset Button**: With the PCB unplugged, hold down the button labled `RESET` on the back of the PCB while pluggin in the USB. diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json index 9717ada94f..e767dde00c 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json @@ -4,7 +4,6 @@ "maintainer": "jasonj2232", "development_board": "promicro", "diode_direction": "COL2ROW", - "url": "https://qmk.fm/keyboards/", "usb": { "device_version": "0.0.1", "pid": "0x4930", diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json index 54a5b72d5a..7639817a32 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json @@ -5,7 +5,6 @@ "development_board": "elite_c", "pin_compatible": "elite_c", "diode_direction": "COL2ROW", - "url": "https://qmk.fm/keyboards/", "usb": { "device_version": "0.0.1", "pid": "0x4930", diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c index b522997e6f..ef74deecd0 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [UL] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/argyle/keyboard.json b/keyboards/argyle/keyboard.json index a7bfc335df..95acd2bfb1 100755 --- a/keyboards/argyle/keyboard.json +++ b/keyboards/argyle/keyboard.json @@ -11,7 +11,6 @@ }, "matrix_pins": { "cols": ["D1", "D4", "D5", "D6", "D7", "B0", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN"], - "custom": true, "custom_lite": true, "rows": ["D0", "C3", "B1", "B2", "B3"] }, @@ -975,4 +974,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md index ba50c6bd2e..84376d4fb4 100644 --- a/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md @@ -2,4 +2,4 @@ # Default [1x4] + 1 Macropad Layout -This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user. \ No newline at end of file +This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user. diff --git a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c index e290e37076..7a248aada5 100644 --- a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c +++ b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c @@ -33,4 +33,4 @@ 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)}, }; -#endif // ENCODER_MAP_ENABLE \ No newline at end of file +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk +++ b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/arrayperipherals/vector/readme.md b/keyboards/arrayperipherals/vector/readme.md index dee7dc8f9a..093609fa3f 100644 --- a/keyboards/arrayperipherals/vector/readme.md +++ b/keyboards/arrayperipherals/vector/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (left most from the rotary) -* **Physical reset button**: Briefly double press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Briefly double press the button on the back of the PCB diff --git a/keyboards/artifact/lvl/rev_hs01/keyboard.json b/keyboards/artifact/lvl/rev_hs01/keyboard.json index 1b58750155..ea2182880a 100755 --- a/keyboards/artifact/lvl/rev_hs01/keyboard.json +++ b/keyboards/artifact/lvl/rev_hs01/keyboard.json @@ -229,4 +229,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/ash_xiix/keyboard.json b/keyboards/ash_xiix/keyboard.json index c1ba811d32..6ff547f2cf 100644 --- a/keyboards/ash_xiix/keyboard.json +++ b/keyboards/ash_xiix/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XIIX", "manufacturer": "ASH", - "url": "config.qmk.fm", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c index afe041d515..85c0556769 100644 --- a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c +++ b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RM_HUEU, RM_SPDD, _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU) -}; \ No newline at end of file +}; diff --git a/keyboards/atlantis/ak81_ve/readme.md b/keyboards/atlantis/ak81_ve/readme.md index ab1fee5a48..1762490914 100644 --- a/keyboards/atlantis/ak81_ve/readme.md +++ b/keyboards/atlantis/ak81_ve/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 2 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available * **Physical reset pins**: Briefly short the reset pins using tweezers, a paperclip, or any other conductive material. -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). \ No newline at end of file +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/atlantis/ps17/keyboard.json b/keyboards/atlantis/ps17/keyboard.json index 3c7f50be0b..9d0a9ca8ef 100644 --- a/keyboards/atlantis/ps17/keyboard.json +++ b/keyboards/atlantis/ps17/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "Atlantis", "keyboard_name": "PS17", "maintainer": "mjbogusz", - "url": "https://qmk.fm/keyboards/", "processor": "atmega32u4", "bootloader": "atmel-dfu", "bootloader_instructions": "To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB.", diff --git a/keyboards/atlantis/readme.md b/keyboards/atlantis/readme.md index 50a2cc2fed..2f15b5a0c3 100644 --- a/keyboards/atlantis/readme.md +++ b/keyboards/atlantis/readme.md @@ -4,4 +4,4 @@ A company that has been known to create some unorthodox and unique styled keyboa Atlantis also produce some more traditional layouts like the AK81 a 75% layout (AK81_VE variant includes a rotary enconder) and a large range of macro pads. -Atlantis seem to be operating mainly out of Malaysia, products can be difficult to source internationally. \ No newline at end of file +Atlantis seem to be operating mainly out of Malaysia, products can be difficult to source internationally. diff --git a/keyboards/atomic/readme.md b/keyboards/atomic/readme.md index 0561c4fea5..235fcfedb4 100644 --- a/keyboards/atomic/readme.md +++ b/keyboards/atomic/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make atomic:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/atreus/astar/keyboard.json b/keyboards/atreus/astar/keyboard.json index e201078ffe..b730442a55 100644 --- a/keyboards/atreus/astar/keyboard.json +++ b/keyboards/atreus/astar/keyboard.json @@ -5,5 +5,64 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "caterina" + "bootloader": "caterina", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atreus/astar_mirrored/keyboard.json b/keyboards/atreus/astar_mirrored/keyboard.json index b83be5d29d..ae687c9d2b 100644 --- a/keyboards/atreus/astar_mirrored/keyboard.json +++ b/keyboards/atreus/astar_mirrored/keyboard.json @@ -5,5 +5,64 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "caterina" + "bootloader": "caterina", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atreus/f103/keyboard.json b/keyboards/atreus/f103/keyboard.json index 813ef97e37..fb49c0c1ca 100644 --- a/keyboards/atreus/f103/keyboard.json +++ b/keyboards/atreus/f103/keyboard.json @@ -8,5 +8,64 @@ "bootloader": "stm32duino", "features": { "bootmagic": true + }, + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } } } diff --git a/keyboards/atreus/feather/keyboard.json b/keyboards/atreus/feather/keyboard.json index 1392849fd4..12468218ec 100644 --- a/keyboards/atreus/feather/keyboard.json +++ b/keyboards/atreus/feather/keyboard.json @@ -14,5 +14,64 @@ }, "bluetooth": { "driver": "bluefruit_le" + }, + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } } } diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json index cf53b506a0..b479c96542 100644 --- a/keyboards/atreus/info.json +++ b/keyboards/atreus/info.json @@ -21,116 +21,5 @@ "enabled": true, "resync": true } - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_pcb_up" - }, - "layouts": { - "LAYOUT_pcb_up": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.6}, - {"matrix": [0, 1], "x": 1, "y": 0.35}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.35}, - {"matrix": [0, 4], "x": 4, "y": 0.7}, - - {"matrix": [0, 6], "x": 8, "y": 0.7}, - {"matrix": [0, 7], "x": 9, "y": 0.35}, - {"matrix": [0, 8], "x": 10, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0.35}, - {"matrix": [0, 10], "x": 12, "y": 0.6}, - - {"matrix": [1, 0], "x": 0, "y": 1.6}, - {"matrix": [1, 1], "x": 1, "y": 1.35}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.35}, - {"matrix": [1, 4], "x": 4, "y": 1.7}, - - {"matrix": [1, 6], "x": 8, "y": 1.7}, - {"matrix": [1, 7], "x": 9, "y": 1.35}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1.35}, - {"matrix": [1, 10], "x": 12, "y": 1.6}, - - {"matrix": [2, 0], "x": 0, "y": 2.6}, - {"matrix": [2, 1], "x": 1, "y": 2.35}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.35}, - {"matrix": [2, 4], "x": 4, "y": 2.7}, - - {"matrix": [2, 6], "x": 8, "y": 2.7}, - {"matrix": [2, 7], "x": 9, "y": 2.35}, - {"matrix": [2, 8], "x": 10, "y": 2}, - {"matrix": [2, 9], "x": 11, "y": 2.35}, - {"matrix": [2, 10], "x": 12, "y": 2.6}, - - {"matrix": [3, 0], "x": 0, "y": 3.6}, - {"matrix": [3, 1], "x": 1, "y": 3.35}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3.35}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, - - {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, - {"matrix": [3, 6], "x": 8, "y": 3.7}, - {"matrix": [3, 7], "x": 9, "y": 3.35}, - {"matrix": [3, 8], "x": 10, "y": 3}, - {"matrix": [3, 9], "x": 11, "y": 3.35}, - {"matrix": [3, 10], "x": 12, "y": 3.6} - ] - }, - "LAYOUT_pcb_down": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.6}, - {"matrix": [0, 1], "x": 1, "y": 0.35}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.35}, - {"matrix": [0, 4], "x": 4, "y": 0.7}, - - {"matrix": [0, 6], "x": 8, "y": 0.7}, - {"matrix": [0, 7], "x": 9, "y": 0.35}, - {"matrix": [0, 8], "x": 10, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0.35}, - {"matrix": [0, 10], "x": 12, "y": 0.6}, - - {"matrix": [1, 0], "x": 0, "y": 1.6}, - {"matrix": [1, 1], "x": 1, "y": 1.35}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.35}, - {"matrix": [1, 4], "x": 4, "y": 1.7}, - - {"matrix": [1, 6], "x": 8, "y": 1.7}, - {"matrix": [1, 7], "x": 9, "y": 1.35}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1.35}, - {"matrix": [1, 10], "x": 12, "y": 1.6}, - - {"matrix": [2, 0], "x": 0, "y": 2.6}, - {"matrix": [2, 1], "x": 1, "y": 2.35}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.35}, - {"matrix": [2, 4], "x": 4, "y": 2.7}, - - {"matrix": [2, 6], "x": 8, "y": 2.7}, - {"matrix": [2, 7], "x": 9, "y": 2.35}, - {"matrix": [2, 8], "x": 10, "y": 2}, - {"matrix": [2, 9], "x": 11, "y": 2.35}, - {"matrix": [2, 10], "x": 12, "y": 2.6}, - - {"matrix": [3, 0], "x": 0, "y": 3.6}, - {"matrix": [3, 1], "x": 1, "y": 3.35}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3.35}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5}, - - {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5}, - {"matrix": [3, 6], "x": 8, "y": 3.7}, - {"matrix": [3, 7], "x": 9, "y": 3.35}, - {"matrix": [3, 8], "x": 10, "y": 3}, - {"matrix": [3, 9], "x": 11, "y": 3.35}, - {"matrix": [3, 10], "x": 12, "y": 3.6} - ] - } } } diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c index e458810537..ca1333230c 100644 --- a/keyboards/atreus/keymaps/default/keymap.c +++ b/keyboards/atreus/keymaps/default/keymap.c @@ -12,7 +12,7 @@ #define _LW 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_pcb_up( /* Qwerty */ + [_QW] = LAYOUT( /* Qwerty */ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * [ ] ( ) & || ` 1 2 3 \ * lower insert super shift bksp ctrl || alt space fn . 0 = */ - [_RS] = LAYOUT_pcb_up( /* [> RAISE <] */ + [_RS] = LAYOUT( /* [> RAISE <] */ KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR , KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS , KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS , @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * volup reset || F1 F2 F3 F12 * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause */ - [_LW] = LAYOUT_pcb_up( /* [> LOWER <] */ + [_LW] = LAYOUT( /* [> LOWER <] */ KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 , KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 , KC_NO, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 , diff --git a/keyboards/atreus/keymaps/workman/keymap.c b/keyboards/atreus/keymaps/workman/keymap.c index e8b5b6b4e3..c0633f6362 100644 --- a/keyboards/atreus/keymaps/workman/keymap.c +++ b/keyboards/atreus/keymaps/workman/keymap.c @@ -25,7 +25,7 @@ enum custom_keycodes { */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_pcb_down( /* Workman */ + [_QW] = LAYOUT( /* Workman */ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * menu caps < > del || _ 0 = */ - [_RS] = LAYOUT_pcb_down( /* [> RAISE <] */ + [_RS] = LAYOUT( /* [> RAISE <] */ KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_MINS, KC_7, KC_8, KC_9, KC_ASTR, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOT, KC_4, KC_5, KC_6, KC_PLUS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * || – ¨ reset */ - [_LW] = LAYOUT_pcb_down( /* [> LOWER <] */ + [_LW] = LAYOUT( /* [> LOWER <] */ KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, diff --git a/keyboards/atreus/promicro/keyboard.json b/keyboards/atreus/promicro/keyboard.json index 10c0ca1b22..9f7e50526c 100644 --- a/keyboards/atreus/promicro/keyboard.json +++ b/keyboards/atreus/promicro/keyboard.json @@ -4,5 +4,64 @@ "rows": ["F4", "B2", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "development_board": "promicro", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atreus/teensy2/keyboard.json b/keyboards/atreus/teensy2/keyboard.json index 067ea9a01d..bdcc8f394d 100644 --- a/keyboards/atreus/teensy2/keyboard.json +++ b/keyboards/atreus/teensy2/keyboard.json @@ -5,5 +5,64 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "halfkay" + "bootloader": "halfkay", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atset/at1/readme.md b/keyboards/atset/at1/readme.md index 330c1b2ff8..ca5bee7dd2 100644 --- a/keyboards/atset/at1/readme.md +++ b/keyboards/atset/at1/readme.md @@ -22,4 +22,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/atset/at12/readme.md b/keyboards/atset/at12/readme.md index 6760e33ab5..637d921e1e 100644 --- a/keyboards/atset/at12/readme.md +++ b/keyboards/atset/at12/readme.md @@ -22,4 +22,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/atset/at3/readme.md b/keyboards/atset/at3/readme.md index 755169c5d6..f1b8b33625 100644 --- a/keyboards/atset/at3/readme.md +++ b/keyboards/atset/at3/readme.md @@ -22,4 +22,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/automata02/alisaie/readme.md b/keyboards/automata02/alisaie/readme.md index 8bfcae86f1..851ef25e1e 100644 --- a/keyboards/automata02/alisaie/readme.md +++ b/keyboards/automata02/alisaie/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader: -* **Physical reset button**: Briefly press the button on the backside of the PCB located bellow the Y keyswitch. \ No newline at end of file +* **Physical reset button**: Briefly press the button on the backside of the PCB located bellow the Y keyswitch. diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c index df64c80953..8cf9d0f0b2 100644 --- a/keyboards/axolstudio/yeti/hotswap/hotswap.c +++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c @@ -87,28 +87,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW8_CS15, SW7_CS15, SW9_CS15 }, { 0, SW11_CS15, SW10_CS15, SW12_CS15 }, }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56 }, - { NO_LED, 57, NO_LED, 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, NO_LED, NO_LED, 63 } - }, { - {0, 0},{16, 0},{32, 0},{48, 0},{64, 0},{80, 0},{96, 0},{112, 0},{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{224, 0}, - {0, 16},{16,16},{32,16},{48,16},{64,16},{80,16},{96,16},{112,16},{128,16},{144,16},{160,16},{176,16},{192,16},{208,16},{224,16}, - {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32},{192,32},{224, 32}, - {16,48},{32,48},{48,48},{64,48},{80,48},{96,48},{112,48},{128,48},{144,48},{160,48},{176,48},{192,48},{224,48}, - {16,64},{48,64},{80,64},{96,64},{128,64},{160,64},{224,64} - }, { - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 1, 4, 1, 1 - } -}; #endif bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/axolstudio/yeti/hotswap/keyboard.json b/keyboards/axolstudio/yeti/hotswap/keyboard.json index 5607001287..fb3582e0f1 100644 --- a/keyboards/axolstudio/yeti/hotswap/keyboard.json +++ b/keyboards/axolstudio/yeti/hotswap/keyboard.json @@ -44,6 +44,72 @@ "solid_multisplash": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "build": { diff --git a/keyboards/bandominedoni/bandominedoni.c b/keyboards/bandominedoni/bandominedoni.c index 76d9e6cb3b..84c0f27bcd 100644 --- a/keyboards/bandominedoni/bandominedoni.c +++ b/keyboards/bandominedoni/bandominedoni.c @@ -16,58 +16,6 @@ #include "bandominedoni.h" -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { - { - { 75, 46, 45, 44, 43, 42, NO_LED }, - { 47, 48, 49, 50, 51, 52, 53 }, - { 60, 59, 58, 57, 56, 55, 54 }, - { 61, 62, 63, 64, 65, 66, 67 }, - { 74, 73, 72, 71, 70, 69, 68 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 7, 6, 4, 3, 2, 1, 5}, - { 8, 9, 10, 11, 12, 13, 0 }, - { 19, 18, 17, 16, 15, 14, 41 }, - { 20, 21, 22, 23, 24, 25, 40 }, - { 30, 29, 28, 27, 26, 39, 38 }, - { 31, 32, 33, 34, 35, 36, 37 } - }, { - { 145, 6 }, { 157, 5 }, { 153, 14 }, { 149, 22 }, { 145, 32 }, { 136, 35 }, { 139, 48 }, { 134, 61 }, - { 142, 60 }, { 148, 43 }, { 154, 29 }, { 158, 20 }, { 163, 12 }, { 168, 4 }, - { 178, 5 }, { 173, 12 }, { 168, 20 }, { 163, 28 }, { 157, 40 }, { 151, 55 }, - { 160, 52 }, { 166, 39 }, { 172, 28 }, { 177, 20 }, { 182, 13 }, { 188, 7 }, - { 192, 17 }, { 186, 23 }, { 181, 30 }, { 175, 39 }, { 169, 50 }, - { 178, 51 }, { 184, 41 }, { 190, 33 }, { 196, 27 }, - { 199, 37 }, { 193, 45 }, { 187, 53 }, - { 196, 56 }, { 202, 49 }, - { 205, 61 }, - { 202, 4 }, - { 84, 18 }, { 73, 13 }, { 62, 10 }, { 51, 8 }, { 39, 11 }, { 24, 22 }, - { 34, 19 }, { 45, 16 }, { 56, 16 }, { 66, 18 }, { 77, 22 }, { 87, 28 }, - { 92, 40 }, { 81, 32 }, { 71, 27 }, { 61, 24 }, { 51, 24 }, { 41, 24 }, { 30, 28 }, - { 24, 42 }, { 34, 37 }, { 44, 35 }, { 54, 34 }, { 64, 36 }, { 74, 38 }, { 84, 44 }, - { 87, 54 }, { 77, 49 }, { 67, 47 }, { 57, 45 }, { 47, 45 }, { 37, 48 }, { 27, 52 }, { 19, 56 }, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, - 4, 4, - 4, - 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4 - } -}; -#endif - #if defined(SPLIT_HAND_MATRIX_GRID) static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) { gpio_set_pin_input_high(in_pin); diff --git a/keyboards/bandominedoni/keyboard.json b/keyboards/bandominedoni/keyboard.json index f6ea0f43c3..7184e2e90c 100644 --- a/keyboards/bandominedoni/keyboard.json +++ b/keyboards/bandominedoni/keyboard.json @@ -20,6 +20,84 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [7, 6], "x": 145, "y": 6, "flags": 4}, + {"matrix": [6, 5], "x": 157, "y": 5, "flags": 4}, + {"matrix": [6, 4], "x": 153, "y": 14, "flags": 4}, + {"matrix": [6, 3], "x": 149, "y": 22, "flags": 4}, + {"matrix": [6, 2], "x": 145, "y": 32, "flags": 4}, + {"matrix": [6, 6], "x": 136, "y": 35, "flags": 4}, + {"matrix": [6, 1], "x": 139, "y": 48, "flags": 4}, + {"matrix": [6, 0], "x": 134, "y": 61, "flags": 4}, + {"matrix": [7, 0], "x": 142, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 148, "y": 43, "flags": 4}, + {"matrix": [7, 2], "x": 154, "y": 29, "flags": 4}, + {"matrix": [7, 3], "x": 158, "y": 20, "flags": 4}, + {"matrix": [7, 4], "x": 163, "y": 12, "flags": 4}, + {"matrix": [7, 5], "x": 168, "y": 4, "flags": 4}, + {"matrix": [8, 5], "x": 178, "y": 5, "flags": 4}, + {"matrix": [8, 4], "x": 173, "y": 12, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 20, "flags": 4}, + {"matrix": [8, 2], "x": 163, "y": 28, "flags": 4}, + {"matrix": [8, 1], "x": 157, "y": 40, "flags": 4}, + {"matrix": [8, 0], "x": 151, "y": 55, "flags": 4}, + {"matrix": [9, 0], "x": 160, "y": 52, "flags": 4}, + {"matrix": [9, 1], "x": 166, "y": 39, "flags": 4}, + {"matrix": [9, 2], "x": 172, "y": 28, "flags": 4}, + {"matrix": [9, 3], "x": 177, "y": 20, "flags": 4}, + {"matrix": [9, 4], "x": 182, "y": 13, "flags": 4}, + {"matrix": [9, 5], "x": 188, "y": 7, "flags": 4}, + {"matrix": [10, 4], "x": 192, "y": 17, "flags": 4}, + {"matrix": [10, 3], "x": 186, "y": 23, "flags": 4}, + {"matrix": [10, 2], "x": 181, "y": 30, "flags": 4}, + {"matrix": [10, 1], "x": 175, "y": 39, "flags": 4}, + {"matrix": [10, 0], "x": 169, "y": 50, "flags": 4}, + {"matrix": [11, 0], "x": 178, "y": 51, "flags": 4}, + {"matrix": [11, 1], "x": 184, "y": 41, "flags": 4}, + {"matrix": [11, 2], "x": 190, "y": 33, "flags": 4}, + {"matrix": [11, 3], "x": 196, "y": 27, "flags": 4}, + {"matrix": [11, 4], "x": 199, "y": 37, "flags": 4}, + {"matrix": [11, 5], "x": 193, "y": 45, "flags": 4}, + {"matrix": [11, 6], "x": 187, "y": 53, "flags": 4}, + {"matrix": [10, 6], "x": 196, "y": 56, "flags": 4}, + {"matrix": [10, 5], "x": 202, "y": 49, "flags": 4}, + {"matrix": [9, 6], "x": 205, "y": 61, "flags": 4}, + {"matrix": [8, 6], "x": 202, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 18, "flags": 4}, + {"matrix": [0, 4], "x": 73, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 62, "y": 10, "flags": 4}, + {"matrix": [0, 2], "x": 51, "y": 8, "flags": 4}, + {"matrix": [0, 1], "x": 39, "y": 11, "flags": 4}, + {"matrix": [1, 0], "x": 24, "y": 22, "flags": 4}, + {"matrix": [1, 1], "x": 34, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 18, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 87, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 92, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 51, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 41, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 30, "y": 28, "flags": 4}, + {"matrix": [3, 0], "x": 24, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 37, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 35, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 34, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 74, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 44, "flags": 4}, + {"matrix": [4, 6], "x": 87, "y": 54, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 67, "y": 47, "flags": 4}, + {"matrix": [4, 3], "x": 57, "y": 45, "flags": 4}, + {"matrix": [4, 2], "x": 47, "y": 45, "flags": 4}, + {"matrix": [4, 1], "x": 37, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 27, "y": 52, "flags": 4}, + {"matrix": [0, 0], "x": 19, "y": 56, "flags": 4} + ], "max_brightness": 50, "sleep": true }, diff --git a/keyboards/basekeys/slice/keymaps/default/keymap.c b/keyboards/basekeys/slice/keymaps/default/keymap.c index a407d35ab7..b168bcd247 100644 --- a/keyboards/basekeys/slice/keymaps/default/keymap.c +++ b/keyboards/basekeys/slice/keymaps/default/keymap.c @@ -115,7 +115,7 @@ const char *read_logo(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; + return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; } bool oled_task_user(void) { diff --git a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c index 7d4133a99b..6a87f52268 100644 --- a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c +++ b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c @@ -115,7 +115,7 @@ const char *read_logo(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; + return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; } bool oled_task_user(void) { diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c index bd7923b36b..3e3ccb5376 100644 --- a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c +++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c @@ -199,7 +199,7 @@ const char *read_logo(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; + return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; } bool oled_task_user(void) { diff --git a/keyboards/basekeys/trifecta/keymaps/default/rules.mk b/keyboards/basekeys/trifecta/keymaps/default/rules.mk index 910bd64a59..ae71c4baca 100644 --- a/keyboards/basekeys/trifecta/keymaps/default/rules.mk +++ b/keyboards/basekeys/trifecta/keymaps/default/rules.mk @@ -1,2 +1,2 @@ CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no \ No newline at end of file +COMMAND_ENABLE = no diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index c14345d075..138f363346 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -176,7 +176,6 @@ void dilemma_set_pointer_dragscroll_enabled(bool enable) { void pointing_device_init_kb(void) { maybe_update_pointing_device_cpi(&g_dilemma_config); - pointing_device_init_user(); } /** diff --git a/keyboards/bear_face/v1/keymaps/default/readme.md b/keyboards/bear_face/v1/keymaps/default/readme.md index 5f9e635dfe..26e504d62d 100644 --- a/keyboards/bear_face/v1/keymaps/default/readme.md +++ b/keyboards/bear_face/v1/keymaps/default/readme.md @@ -4,7 +4,6 @@ This layout replaces the stock layout on the Vortex Race 3. - Caps Lock indicator LED is enabled by default - Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1) -- FORCE_NKRO enabled by default - Pn key is set to 'KC_NO' by default * Might be a good place for a macro, or to put your PC to sleep, etc. diff --git a/keyboards/bear_face/v2/keymaps/default/readme.md b/keyboards/bear_face/v2/keymaps/default/readme.md index 517baa5726..65e01e0d02 100644 --- a/keyboards/bear_face/v2/keymaps/default/readme.md +++ b/keyboards/bear_face/v2/keymaps/default/readme.md @@ -4,7 +4,6 @@ This layout replaces the stock layout on the Vortex Race 3. - Caps Lock indicator LED is enabled by default - Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1) -- FORCE_NKRO enabled by default - Pn key is set to 'KC_NO' by default * Might be a good place for a macro, or to put your PC to sleep, etc. diff --git a/keyboards/bear_face/v2/keymaps/default_iso/readme.md b/keyboards/bear_face/v2/keymaps/default_iso/readme.md index 517baa5726..65e01e0d02 100644 --- a/keyboards/bear_face/v2/keymaps/default_iso/readme.md +++ b/keyboards/bear_face/v2/keymaps/default_iso/readme.md @@ -4,7 +4,6 @@ This layout replaces the stock layout on the Vortex Race 3. - Caps Lock indicator LED is enabled by default - Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1) -- FORCE_NKRO enabled by default - Pn key is set to 'KC_NO' by default * Might be a good place for a macro, or to put your PC to sleep, etc. diff --git a/keyboards/bear_face/v3/keymaps/default/readme.md b/keyboards/bear_face/v3/keymaps/default/readme.md index a86b77bb19..f648e0b735 100644 --- a/keyboards/bear_face/v3/keymaps/default/readme.md +++ b/keyboards/bear_face/v3/keymaps/default/readme.md @@ -4,7 +4,6 @@ This layout replaces the stock layout on the Vortex Race 3. - Caps Lock indicator LED is enabled by default - Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1) -- FORCE_NKRO enabled by default - Pn key is set to 'KC_NO' by default * Might be a good place for a macro, or to put your PC to sleep, etc. diff --git a/keyboards/bear_face/v3/keymaps/default_iso/readme.md b/keyboards/bear_face/v3/keymaps/default_iso/readme.md index a86b77bb19..f648e0b735 100644 --- a/keyboards/bear_face/v3/keymaps/default_iso/readme.md +++ b/keyboards/bear_face/v3/keymaps/default_iso/readme.md @@ -4,7 +4,6 @@ This layout replaces the stock layout on the Vortex Race 3. - Caps Lock indicator LED is enabled by default - Layer Tap on Caps Lock (tap for Caps Lock, hold for _FN1) -- FORCE_NKRO enabled by default - Pn key is set to 'KC_NO' by default * Might be a good place for a macro, or to put your PC to sleep, etc. diff --git a/keyboards/bestway/keyboard.json b/keyboards/bestway/keyboard.json index 2f4541b268..8f68af1432 100644 --- a/keyboards/bestway/keyboard.json +++ b/keyboards/bestway/keyboard.json @@ -208,4 +208,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/bestway/readme.md b/keyboards/bestway/readme.md index c91d09e83f..a3cccaac91 100644 --- a/keyboards/bestway/readme.md +++ b/keyboards/bestway/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/binepad/knobx1/knobx1.c b/keyboards/binepad/knobx1/knobx1.c index 7f299b67e3..37602ca78c 100644 --- a/keyboards/binepad/knobx1/knobx1.c +++ b/keyboards/binepad/knobx1/knobx1.c @@ -9,6 +9,13 @@ # define X1_KEYMAP_LAYER_COUNT 4 #endif +__attribute__((weak)) void x1_layer_led(uint8_t lyr) { + gpio_write_pin(IND1_LED, lyr >= 0); + gpio_write_pin(IND2_LED, lyr >= 1); + gpio_write_pin(IND3_LED, lyr >= 2); + gpio_write_pin(IND4_LED, lyr >= 3); +} + void keyboard_pre_init_kb(void) { const pin_t indicator_leds[4] = {IND1_LED, IND2_LED, IND3_LED, IND4_LED}; for (int i = 0; i < 4; i++) { diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h index 7645124057..3932fbd448 100644 --- a/keyboards/binepad/knobx1/knobx1.h +++ b/keyboards/binepad/knobx1/knobx1.h @@ -38,12 +38,6 @@ static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); } static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); } // clang-format on -static inline void x1_layer_led(uint8_t lyr) { - gpio_write_pin(IND1_LED, lyr >= 0); - gpio_write_pin(IND2_LED, lyr >= 1); - gpio_write_pin(IND3_LED, lyr >= 2); - gpio_write_pin(IND4_LED, lyr >= 3); -} - +void x1_layer_led(uint8_t lyr); bool process_x1_layer_up(keyrecord_t *record); bool process_x1_layer_down(keyrecord_t *record); diff --git a/keyboards/blaster75/keymaps/default/readme.md b/keyboards/blaster75/keymaps/default/readme.md index 16bb7d7124..5d26816ecf 100644 --- a/keyboards/blaster75/keymaps/default/readme.md +++ b/keyboards/blaster75/keymaps/default/readme.md @@ -4,4 +4,4 @@ This is the default keymap intended for Blaster 75 Custom Keyboard by ALTAiN. This layout overall follows ANSI layout except the bottom rows. Should the user wishes to, the bottom layout can be configured as the following: 1) 1.25 / 1.25 / 1.25 / 6.26u Spacebar / 1.25 / 1.25 , or -2) 1.5u / 1u / 1.5u / 7u Spacebar / 1.5u \ No newline at end of file +2) 1.5u / 1u / 1.5u / 7u Spacebar / 1.5u diff --git a/keyboards/blockboy/ac980mini/ac980mini.c b/keyboards/blockboy/ac980mini/ac980mini.c deleted file mode 100644 index b6a29f94ea..0000000000 --- a/keyboards/blockboy/ac980mini/ac980mini.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright 2022 rooski15 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// LED location configuration -led_config_t g_led_config = { { - - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 }, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED, 41, 42, 43, 44, 45 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NO_LED, 24, 25, 26, 27, 28, NO_LED }, - { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, 4, 5, 6, 7, 8, 9, 10, 11, 12 } - -},{ - - // Physical X,Y coordinates of each LED, starting with LED 0 above. - { 1 , 64 }, { 16 , 64 }, { 31 , 64 }, { 75 , 64 }, { 123 , 64 }, { 132 , 64 }, { 144 , 64 }, { 159 , 64 }, { 171 , 64 }, { 183 , 64 }, { 198 , 64 }, { 210 , 64 }, { 224 , 64 }, - { 7 , 48 }, { 27 , 48 }, { 39 , 48 }, { 51 , 48 }, { 63 , 48 }, { 75 , 48 }, { 87 , 48 }, { 99 , 48 }, { 111 , 48 }, { 123 , 48 }, { 135 , 48 }, { 151 , 48 }, { 171 , 48 }, { 186 , 48 }, { 198 , 48 }, { 210 , 48 }, - { 4 , 36 }, { 20 , 36 }, { 32 , 36 }, { 44 , 36 }, { 56 , 36 }, { 68 , 36 }, { 80 , 36 }, { 92 , 36 }, { 104 , 36 }, { 116 , 36 }, { 128 , 36 }, { 140 , 36 }, { 160 , 36 }, { 186 , 36 }, { 198 , 36 }, { 210 , 36 }, { 224 , 36 }, - { 3 , 16 }, { 18 , 16 }, { 30 , 16 }, { 42 , 16 }, { 54 , 16 }, { 66 , 16 }, { 78 , 16 }, { 90 , 16 }, { 102 , 16 }, { 114 , 16 }, { 126 , 16 }, { 138 , 16 }, { 150 , 16 }, { 165 , 16 }, { 186 , 16 }, { 198 , 16 }, { 210 , 16 }, - { 0 , 0 }, { 12 , 0 }, { 24 , 0 }, { 36 , 0 }, { 48 , 0 }, { 60 , 0 }, { 72 , 0 }, { 84 , 0 }, { 96 , 0 }, { 108 , 0 }, { 120 , 0 }, { 132 , 0 }, { 144 , 0 }, { 162 , 0 }, { 186 , 0 }, { 198 , 0 }, { 210 , 0 }, { 224 , 0 }, - -},{ - // "Flag Assignment" of each key - // 4 = Alpha - // 1 = Mod - // See https://docs.qmk.fm/#/feature_rgb_matrix?id=flags - // No Caps / Num indicators - 1,1,1, 1, 1,1,1, 1,1,1, 4,4,1, - 1,4,4,4,4,4,4,4,4,4,4,1, 1, 4,4,4, - 1,4,4,4,4,4,4,4,4,4,4,4,1, 4,4,4,1, - 1,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4, - 1,4,4,4,4,4,4,4,4,4,4,4,4,1, 1,1,1,1 - -} }; -/* - -*/ -#endif \ No newline at end of file diff --git a/keyboards/blockboy/ac980mini/keyboard.json b/keyboards/blockboy/ac980mini/keyboard.json index ce261639e2..8df9c03dcc 100644 --- a/keyboards/blockboy/ac980mini/keyboard.json +++ b/keyboards/blockboy/ac980mini/keyboard.json @@ -74,6 +74,89 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 75, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 123, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 132, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 144, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 159, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 183, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 198, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 210, "y": 64, "flags": 4}, + {"matrix": [4, 17], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 7, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 27, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 39, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 99, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 111, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 151, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 171, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 186, "y": 48, "flags": 4}, + {"matrix": [3, 15], "x": 198, "y": 48, "flags": 4}, + {"matrix": [3, 16], "x": 210, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 36, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 36, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 36, "flags": 4}, + {"matrix": [2, 3], "x": 44, "y": 36, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 36, "flags": 4}, + {"matrix": [2, 5], "x": 68, "y": 36, "flags": 4}, + {"matrix": [2, 6], "x": 80, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 92, "y": 36, "flags": 4}, + {"matrix": [2, 8], "x": 104, "y": 36, "flags": 4}, + {"matrix": [2, 9], "x": 116, "y": 36, "flags": 4}, + {"matrix": [2, 10], "x": 128, "y": 36, "flags": 4}, + {"matrix": [2, 11], "x": 140, "y": 36, "flags": 4}, + {"matrix": [2, 13], "x": 160, "y": 36, "flags": 1}, + {"matrix": [2, 14], "x": 186, "y": 36, "flags": 4}, + {"matrix": [2, 15], "x": 198, "y": 36, "flags": 4}, + {"matrix": [2, 16], "x": 210, "y": 36, "flags": 4}, + {"matrix": [2, 17], "x": 224, "y": 36, "flags": 1}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 54, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 90, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 102, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 114, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 126, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 138, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 150, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 165, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 15], "x": 198, "y": 16, "flags": 4}, + {"matrix": [1, 16], "x": 210, "y": 16, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 162, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 186, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 224, "y": 0, "flags": 1} + ], "sat_steps": 8, "val_steps": 8, "max_brightness": 150, diff --git a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c index 0194281ebf..7bd31539c0 100644 --- a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c +++ b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c @@ -71,4 +71,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -*/ \ No newline at end of file +*/ diff --git a/keyboards/bluebell/swoop/config.h b/keyboards/bluebell/swoop/config.h index 48d6300325..0383809ae0 100644 --- a/keyboards/bluebell/swoop/config.h +++ b/keyboards/bluebell/swoop/config.h @@ -19,6 +19,5 @@ // OLED driver #ifdef OLED_DRIVER_ENABLE - #define OLED_DISPLAY_128X32 #define OLED_TIMEOUT 30000 #endif diff --git a/keyboards/boardrun/bizarre/keyboard.json b/keyboards/boardrun/bizarre/keyboard.json index 22ddfb005d..230ce46142 100644 --- a/keyboards/boardrun/bizarre/keyboard.json +++ b/keyboards/boardrun/bizarre/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boardrun Bizarre", "manufacturer": "shensmobile", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/bizarre", "maintainer": "QMK Community", "debounce": 10, "usb": { diff --git a/keyboards/boardrun/bizarre/keymaps/default/keymap.c b/keyboards/boardrun/bizarre/keymaps/default/keymap.c index 545318f1a4..2b60687abb 100644 --- a/keyboards/boardrun/bizarre/keymaps/default/keymap.c +++ b/keyboards/boardrun/bizarre/keymaps/default/keymap.c @@ -68,4 +68,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______,_______, _______,_______,_______,KC_PAUS,KC_RGUI, _______,_______,KC_MENU,_______,_______, _______,_______, KC_PGUP, _______, _______, _______, KC_RALT, _______, KC_HOME,KC_PGDN,KC_END ) -}; \ No newline at end of file +}; diff --git a/keyboards/boardrun/classic/keyboard.json b/keyboards/boardrun/classic/keyboard.json index bdddee8067..87af448345 100644 --- a/keyboards/boardrun/classic/keyboard.json +++ b/keyboards/boardrun/classic/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boardrun Classic", "manufacturer": "shensmobile", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/classic", "maintainer": "QMK Community", "debounce": 10, "usb": { diff --git a/keyboards/boardsource/4x12/readme.md b/keyboards/boardsource/4x12/readme.md index 17cf01ed02..0a60faf6a9 100644 --- a/keyboards/boardsource/4x12/readme.md +++ b/keyboards/boardsource/4x12/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make boardsource/4x12:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/boardsource/5x12/readme.md b/keyboards/boardsource/5x12/readme.md index f1bf8a84c3..914c7b586a 100644 --- a/keyboards/boardsource/5x12/readme.md +++ b/keyboards/boardsource/5x12/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make boardsource/5x12:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/boardsource/equals/48/config.h b/keyboards/boardsource/equals/48/config.h index 39d114872f..7132189cdd 100644 --- a/keyboards/boardsource/equals/48/config.h +++ b/keyboards/boardsource/equals/48/config.h @@ -2,9 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U - #define AUDIO_PIN GP29 #define AUDIO_PWM_DRIVER PWMD6 #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/boardsource/equals/60/config.h b/keyboards/boardsource/equals/60/config.h index 39d114872f..7132189cdd 100644 --- a/keyboards/boardsource/equals/60/config.h +++ b/keyboards/boardsource/equals/60/config.h @@ -2,9 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U - #define AUDIO_PIN GP29 #define AUDIO_PWM_DRIVER PWMD6 #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/boardsource/lulu/rp2040/config.h b/keyboards/boardsource/lulu/rp2040/config.h index 2c86e48e6f..5a43521918 100644 --- a/keyboards/boardsource/lulu/rp2040/config.h +++ b/keyboards/boardsource/lulu/rp2040/config.h @@ -1,11 +1,11 @@ // Copyright 2022 jack (@waffle87) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U + #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP0 #define SERIAL_USART_RX_PIN GP1 + #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP22 #define I2C1_SCL_PIN GP23 diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h index e79c00f14d..843d377cbe 100644 --- a/keyboards/boardsource/unicorne/config.h +++ b/keyboards/boardsource/unicorne/config.h @@ -2,8 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET - #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP22 #define I2C1_SCL_PIN GP23 diff --git a/keyboards/bobpad/bobpad.c b/keyboards/bobpad/bobpad.c index 83b4dbaad0..a52a7c7223 100644 --- a/keyboards/bobpad/bobpad.c +++ b/keyboards/bobpad/bobpad.c @@ -42,4 +42,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/boston_meetup/2019/2019.c b/keyboards/boston_meetup/2019/2019.c index 1097c58de2..87ce108bc3 100644 --- a/keyboards/boston_meetup/2019/2019.c +++ b/keyboards/boston_meetup/2019/2019.c @@ -15,21 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -#include "rgb_matrix.h" - -led_config_t g_led_config = { { - { 5, NO_LED, NO_LED, 0 }, - { NO_LED, NO_LED, NO_LED, NO_LED }, - { 4, NO_LED, NO_LED, 1 }, - { 3, NO_LED, NO_LED, 2 } -}, { - { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 } -}, { - 4, 4, 4, 4, 4, 4 -} }; -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; } diff --git a/keyboards/boston_meetup/2019/keyboard.json b/keyboards/boston_meetup/2019/keyboard.json index 4f07e0c631..c56a8f6c06 100644 --- a/keyboards/boston_meetup/2019/keyboard.json +++ b/keyboards/boston_meetup/2019/keyboard.json @@ -20,7 +20,15 @@ "driver": "drv2605l" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 3], "x": 188, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 187, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 149, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 37, "y": 48, "flags": 4}, + {"matrix": [0, 0], "x": 38, "y": 16, "flags": 4} + ] }, "matrix_pins": { "cols": ["A7", "A8", "B2", "B10"], diff --git a/keyboards/boston_meetup/2019/keymaps/default/readme.md b/keyboards/boston_meetup/2019/keymaps/default/readme.md index 75f80b5191..34edc98509 100644 --- a/keyboards/boston_meetup/2019/keymaps/default/readme.md +++ b/keyboards/boston_meetup/2019/keymaps/default/readme.md @@ -48,4 +48,4 @@ Adjust: ``` -RGB still work in progress \ No newline at end of file +RGB still work in progress diff --git a/keyboards/boston_meetup/2019/readme.md b/keyboards/boston_meetup/2019/readme.md index 2bdac9dcde..7f7c068e00 100644 --- a/keyboards/boston_meetup/2019/readme.md +++ b/keyboards/boston_meetup/2019/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make boston_meetup/2019:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/boston_meetup/readme.md b/keyboards/boston_meetup/readme.md index 2fa1ec9583..5ce30a2c46 100644 --- a/keyboards/boston_meetup/readme.md +++ b/keyboards/boston_meetup/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make boston_meetup/YYYY:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/bpiphany/pegasushoof/2015/matrix.c b/keyboards/bpiphany/pegasushoof/2015/matrix.c index 6fc1fd6e9e..61135e5833 100644 --- a/keyboards/bpiphany/pegasushoof/2015/matrix.c +++ b/keyboards/bpiphany/pegasushoof/2015/matrix.c @@ -31,13 +31,17 @@ static matrix_row_t matrix[MATRIX_ROWS]; static matrix_row_t matrix_debouncing[MATRIX_ROWS]; static matrix_row_t read_cols(void); -static void select_row(uint8_t col); +static void select_row(uint8_t col); // user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); +} -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} __attribute__((weak)) void matrix_init_user(void) {} @@ -45,105 +49,125 @@ __attribute__((weak)) void matrix_scan_user(void) {} // helper functions -inline uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; +inline uint8_t matrix_rows(void) { + return MATRIX_ROWS; } -inline uint8_t matrix_cols(void) -{ - return MATRIX_COLS; +inline uint8_t matrix_cols(void) { + return MATRIX_COLS; } -void matrix_init(void) -{ - /* Column output pins */ - DDRD |= 0b01111011; - /* Row input pins */ - DDRC &= ~0b10000000; - DDRB &= ~0b01111111; - PORTC |= 0b10000000; - PORTB |= 0b01111111; +void matrix_init(void) { + /* Column output pins */ + DDRD |= 0b01111011; + /* Row input pins */ + DDRC &= ~0b10000000; + DDRB &= ~0b01111111; + PORTC |= 0b10000000; + PORTB |= 0b01111111; - for (uint8_t i=0; i < matrix_rows(); i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - matrix_init_kb(); -} - -uint8_t matrix_scan(void) -{ - bool changed = false; - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - select_row(col); - wait_us(30); - matrix_row_t rows = read_cols(); - for (uint8_t row = 0; row < matrix_rows(); row++) { - bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<. */ + #include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config ={ - { - {4 ,5 ,6 ,7 }, - {0 ,1 ,2 ,3 } - }, - { - {0,0},{75,0},{145,0},{224,0}, - {0,64},{75,64},{145,64},{224,64} - }, - { - 0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04 +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; } -}; - -#endif + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(0, 0, 255, 0); + } else { + rgb_matrix_set_color(0, 0, 0, 0); + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(1, 0, 255, 0); + } else { + rgb_matrix_set_color(1, 0, 0, 0); + } + return false; +} diff --git a/keyboards/candykeys/candy87/keyboard.json b/keyboards/candykeys/candy87/keyboard.json new file mode 100644 index 0000000000..cca8f27210 --- /dev/null +++ b/keyboards/candykeys/candy87/keyboard.json @@ -0,0 +1,2344 @@ +{ + "manufacturer": "CandyKeys", + "keyboard_name": "Candy87", + "maintainer": "RarePotato8DE", + "board": "GENERIC_RP_RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP12", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP29", "GP15", "GP14", "GP13"], + "rows": ["GP0", "GP1", "GP2", "GP11", "GP9", "GP10"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "digital_rain": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "rainbow_moving_chevron": true, + "raindrops": true, + "starlight": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 30, "y": 13, "flags": 9}, + {"matrix": [3, 0], "x": 2, "y": 40, "flags": 9} + ] + }, + "url": "https://candykeys.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0001", + "vid": "0x434B" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP7" + }, + "community_layouts": ["tkl_f13_ansi_split_bs_rshift", "tkl_f13_ansi_tsangan_split_bs_rshift", "tkl_f13_iso_split_bs_rshift", "tkl_f13_iso_tsangan_split_bs_rshift", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan_split_bs_rshift", "tkl_iso_split_bs_rshift", "tkl_iso_tsangan_split_bs_rshift", "tkl_ansi", "tkl_ansi_tsangan", "tkl_ansi_wkl", "tkl_ansi_wkl_split_bs_rshift", "tkl_iso_wkl", "tkl_iso_wkl_split_bs_rshift", "tkl_f13_ansi_wkl", "tkl_f13_ansi_wkl_split_bs_rshift", "tkl_f13_iso_wkl", "tkl_f13_iso_wkl_split_bs_rshift"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "|", "matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_f13_iso_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 9], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 12.75, "y": 0}, + {"label": "F13", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"label": "Space", "matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 1], "x": 1.5, "y": 5.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Win", "matrix": [5, 12], "x": 12.5, "y": 5.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "BckSpc", "matrix": [1, 14], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + }, + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 10], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 11], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 12], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 13], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 15], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 16], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 17], "x": 17.25, "y": 0}, + {"label": "~", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "!", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "@", "matrix": [1, 2], "x": 2, "y": 1.5}, + {"label": "#", "matrix": [1, 3], "x": 3, "y": 1.5}, + {"label": "$", "matrix": [1, 4], "x": 4, "y": 1.5}, + {"label": "%", "matrix": [1, 5], "x": 5, "y": 1.5}, + {"label": "^", "matrix": [1, 6], "x": 6, "y": 1.5}, + {"label": "&", "matrix": [1, 7], "x": 7, "y": 1.5}, + {"label": "*", "matrix": [1, 8], "x": 8, "y": 1.5}, + {"label": "(", "matrix": [1, 9], "x": 9, "y": 1.5}, + {"label": ")", "matrix": [1, 10], "x": 10, "y": 1.5}, + {"label": "_", "matrix": [1, 11], "x": 11, "y": 1.5}, + {"label": "+", "matrix": [1, 12], "x": 12, "y": 1.5}, + {"label": "|", "matrix": [1, 13], "x": 13, "y": 1.5}, + {"label": "~", "matrix": [1, 14], "x": 14, "y": 1.5}, + {"label": "Insert", "matrix": [1, 15], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [1, 16], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [1, 17], "x": 17.25, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"label": "Delete", "matrix": [2, 15], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [2, 16], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [2, 17], "x": 17.25, "y": 2.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"label": "\"", "matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"label": "|", "matrix": [2, 13], "x": 12.75, "y": 3.5}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 4.5}, + {"label": "Up", "matrix": [4, 16], "x": 16.25, "y": 4.5}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5}, + {"label": "Space", "matrix": [5, 6], "x": 4, "y": 5.5, "w": 7}, + {"label": "AltGr", "matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5}, + {"label": "Left", "matrix": [5, 15], "x": 15.25, "y": 5.5}, + {"label": "Down", "matrix": [5, 16], "x": 16.25, "y": 5.5}, + {"label": "Right", "matrix": [5, 17], "x": 17.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/candykeys/candy87/keymaps/default/keymap.c b/keyboards/candykeys/candy87/keymaps/default/keymap.c new file mode 100644 index 0000000000..a0059c72fb --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_all( + 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f12_ansi/keymap.c b/keyboards/candykeys/candy87/keymaps/f12_ansi/keymap.c new file mode 100644 index 0000000000..49dd3e2359 --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f12_ansi/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_ansi_split_bs_rshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_ansi_split_bs_rshift( + 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, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f12_ansi_tsangan/keymap.c b/keyboards/candykeys/candy87/keymaps/f12_ansi_tsangan/keymap.c new file mode 100644 index 0000000000..30af959fa8 --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f12_ansi_tsangan/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_ansi_tsangan_split_bs_rshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_ansi_tsangan_split_bs_rshift( + 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, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f12_iso/keymap.c b/keyboards/candykeys/candy87/keymaps/f12_iso/keymap.c new file mode 100644 index 0000000000..890f7f5a09 --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f12_iso/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_iso_split_bs_rshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENT, 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_BSLS, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_iso_split_bs_rshift( + 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, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f12_iso_tsangan/keymap.c b/keyboards/candykeys/candy87/keymaps/f12_iso_tsangan/keymap.c new file mode 100644 index 0000000000..59ffb1b933 --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f12_iso_tsangan/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_iso_tsangan_split_bs_rshift( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENT, 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_BSLS, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_iso_tsangan_split_bs_rshift( + 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, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f13_ansi/keymap.c b/keyboards/candykeys/candy87/keymaps/f13_ansi/keymap.c new file mode 100644 index 0000000000..d33fe2796c --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f13_ansi/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_f13_ansi_split_bs_rshift( + 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_f13_ansi_split_bs_rshift( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f13_ansi_tsangan/keymap.c b/keyboards/candykeys/candy87/keymaps/f13_ansi_tsangan/keymap.c new file mode 100644 index 0000000000..b920db0051 --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f13_ansi_tsangan/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_f13_ansi_tsangan_split_bs_rshift( + 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f13_iso/keymap.c b/keyboards/candykeys/candy87/keymaps/f13_iso/keymap.c new file mode 100644 index 0000000000..9cb4a1423e --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f13_iso/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_f13_iso_split_bs_rshift( + 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENT, 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_BSLS, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_f13_iso_split_bs_rshift( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/keymaps/f13_iso_tsangan/keymap.c b/keyboards/candykeys/candy87/keymaps/f13_iso_tsangan/keymap.c new file mode 100644 index 0000000000..3548940c59 --- /dev/null +++ b/keyboards/candykeys/candy87/keymaps/f13_iso_tsangan/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2024 RarePotato8DE + * + * 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_tkl_f13_iso_tsangan_split_bs_rshift( + 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_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENT, 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_BSLS, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUEU, RM_SATU, RM_VALU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_HUED, RM_SATD, RM_VALD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_SPDU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_PREV, RM_SPDD, RM_NEXT) +}; diff --git a/keyboards/candykeys/candy87/readme.md b/keyboards/candykeys/candy87/readme.md new file mode 100644 index 0000000000..0058d60925 --- /dev/null +++ b/keyboards/candykeys/candy87/readme.md @@ -0,0 +1,29 @@ +# Candy87 + +![Candy87](https://i.imgur.com/HeCz1u8.png) + +The Candy87 Hotswap PCB is a universal TKL PCB by Candykeys. +It supports ISO Hotswap by default (ANSI possible with desolering two hotswap sockets) and many layout options. +It was mainly made for the F1-8X V2, but fits similar keyboards as well. + +* Keyboard Maintainer: [RarePotato8DE](https://github.com/rarepotato8de) +* Hardware Supported: Candy87 PCB for F1-8X V2 and similar +* Hardware Availability: [Buy on Candykeys](https://candykeys.com/product/candy87-hotswap-pcb-iso) + +Make example for this keyboard (after setting up your build environment): + + make candykeys/candy87:default + +Flashing example for this keyboard: + + make candykeys/candy87:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold down the "BOOT" button on the back and double press "RESET". Release "BOOT" after +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md b/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md index 571ebea80b..3cb4481855 100644 --- a/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md +++ b/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md @@ -21,4 +21,4 @@ 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**: Toggle the switch on the back of the pcb to "0" and briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c index 815e84901d..0e411aa92a 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c @@ -284,4 +284,4 @@ void oled_request_repaint(void){ void oled_request_wakeup(void){ } -#endif \ No newline at end of file +#endif diff --git a/keyboards/cannonkeys/minimi40/ortho/keyboard.json b/keyboards/cannonkeys/minimi40/ortho/keyboard.json new file mode 100644 index 0000000000..9af52b70db --- /dev/null +++ b/keyboards/cannonkeys/minimi40/ortho/keyboard.json @@ -0,0 +1,180 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Minimi40 Ortho", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A4", "C14", "B6", "B5", "B4", "B3", "A15"], + "rows": ["A5", "A7", "A3", "B7"] + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x0037", + "vid": "0xCA04" + }, + "community_layouts": ["ortho_4x12"], + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 5], "x": 5, "y": 3}, + {"matrix": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3}, + {"matrix": [3, 10], "x": 10, "y": 3}, + {"matrix": [3, 11], "x": 11, "y": 3} + ] + }, + "LAYOUT_ortho_4x12_2x2bar": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 5], "x": 4, "y": 3, "w": 2}, + {"matrix": [3, 7], "x": 6, "y": 3, "w": 2}, + {"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} + ] + }, + "LAYOUT_planck_mit": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + {"matrix": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "y": 1}, + {"matrix": [1, 10], "x": 10, "y": 1}, + {"matrix": [1, 11], "x": 11, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2}, + {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "y": 2}, + {"matrix": [2, 10], "x": 10, "y": 2}, + {"matrix": [2, 11], "x": 11, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3}, + {"matrix": [3, 6], "x": 5, "y": 3, "w": 2}, + {"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} + ] + } + } +} diff --git a/keyboards/cannonkeys/minimi40/ortho/keymaps/default/keymap.c b/keyboards/cannonkeys/minimi40/ortho/keymaps/default/keymap.c new file mode 100644 index 0000000000..bab7288ea7 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/ortho/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum custom_layers { + _BASE, + _RAISE, + _LOWER, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_BASE] = LAYOUT_ortho_4x12( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT_ortho_4x12( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT_ortho_4x12( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), +}; + diff --git a/keyboards/cannonkeys/minimi40/ortho/readme.md b/keyboards/cannonkeys/minimi40/ortho/readme.md new file mode 100644 index 0000000000..66461139a3 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/ortho/readme.md @@ -0,0 +1,21 @@ +# Minimi40 Ortho + +* Hardware Supported: STM32F072CBT6/APM32F072CBT6 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/minimi40/ortho:default + +Flashing example for this keyboard: + + make cannonkeys/minimi40/ortho: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**: Toggle the switch on the back of the pcb to "1" and 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/cannonkeys/minimi40/ortho/rules.mk b/keyboards/cannonkeys/minimi40/ortho/rules.mk new file mode 100644 index 0000000000..6dd24d8e06 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/ortho/rules.mk @@ -0,0 +1,3 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF + diff --git a/keyboards/cannonkeys/minimi40/readme.md b/keyboards/cannonkeys/minimi40/readme.md new file mode 100644 index 0000000000..f5cd64b7f2 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/readme.md @@ -0,0 +1,11 @@ +# Minimi40 + +This has both the ortho and staggered versions of the wired Minimi40 PCBs +The hotswap and solderable versions use the same firmware. + +This firmware can also be used on the GEON F1-40 + +Please check each folder's README for more details. + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Availability: [CannonKeys](https://cannonkeys.com) diff --git a/keyboards/cannonkeys/minimi40/staggered/config.h b/keyboards/cannonkeys/minimi40/staggered/config.h new file mode 100644 index 0000000000..4eec357f20 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/staggered/config.h @@ -0,0 +1,9 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/minimi40/staggered/keyboard.json b/keyboards/cannonkeys/minimi40/staggered/keyboard.json new file mode 100644 index 0000000000..14d20ed328 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/staggered/keyboard.json @@ -0,0 +1,116 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Minimi40 Staggered", + "maintainer": "awkannan", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP28", "GP8", "GP10", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP17", "GP27", "GP11", "GP12"] + }, + "processor": "RP2040", + "url": "https://cannonkeys.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x0036", + "vid": "0xCA04" + }, + "layouts": { + "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": [3, 7], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [1, 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": [2, 10], "x": 10.75, "y": 2, "w": 1.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25}, + {"matrix": [3, 4], "x": 3.5, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 5.75, "y": 3, "w": 2.75}, + {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3, "w": 1.25} + ] + }, + "LAYOUT_full_space": { + "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": [3, 7], "x": 10, "y": 0}, + {"matrix": [0, 10], "x": 11, "y": 0}, + {"matrix": [1, 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": [2, 10], "x": 10.75, "y": 2, "w": 1.25}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 4], "x": 2.25, "y": 3, "w": 6.25}, + {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3, "w": 1.25} + ] + } + } +} diff --git a/keyboards/cannonkeys/minimi40/staggered/keymaps/default/keymap.c b/keyboards/cannonkeys/minimi40/staggered/keymaps/default/keymap.c new file mode 100644 index 0000000000..c16134aa25 --- /dev/null +++ b/keyboards/cannonkeys/minimi40/staggered/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2024 Andrew Kannan +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT_all( + 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_RSFT, MO(2), + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_SPC, KC_RALT, MO(1), KC_RCTL +), +[1] = LAYOUT_all( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, + _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, + _______, _______, _______, _______, _______, KC_SLSH, KC_SCLN, KC_QUOT, KC_DOT, KC_UP, _______, + _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT +), +[2] = LAYOUT_all( + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, + KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_PGUP, _______, KC_PGDN +) +}; diff --git a/keyboards/cannonkeys/minimi40/staggered/readme.md b/keyboards/cannonkeys/minimi40/staggered/readme.md new file mode 100644 index 0000000000..c11664a1be --- /dev/null +++ b/keyboards/cannonkeys/minimi40/staggered/readme.md @@ -0,0 +1,21 @@ +# Minimi40 Staggered + +* Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/minimi40/staggered:default + +Flashing example for this keyboard: + + make cannonkeys/minimi40/staggered:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/ortho48v2/config.h b/keyboards/cannonkeys/ortho48v2/config.h index 2af75a1715..18edaab2ab 100644 --- a/keyboards/cannonkeys/ortho48v2/config.h +++ b/keyboards/cannonkeys/ortho48v2/config.h @@ -16,8 +16,5 @@ along with this program. If not, see . */ #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. - #define BACKLIGHT_PWM_DRIVER PWMD6 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/ortho60v2/config.h b/keyboards/cannonkeys/ortho60v2/config.h index 2af75a1715..18edaab2ab 100644 --- a/keyboards/cannonkeys/ortho60v2/config.h +++ b/keyboards/cannonkeys/ortho60v2/config.h @@ -16,8 +16,5 @@ along with this program. If not, see . */ #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. - #define BACKLIGHT_PWM_DRIVER PWMD6 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/petrichor/config.h b/keyboards/cannonkeys/petrichor/config.h index ea5c26b6c7..4eec357f20 100644 --- a/keyboards/cannonkeys/petrichor/config.h +++ b/keyboards/cannonkeys/petrichor/config.h @@ -6,4 +6,4 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 \ No newline at end of file +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c b/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c index 05e0ad2a93..be23b950b2 100644 --- a/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/cannonkeys/reverie/config.h b/keyboards/cannonkeys/reverie/config.h index ea5c26b6c7..4eec357f20 100644 --- a/keyboards/cannonkeys/reverie/config.h +++ b/keyboards/cannonkeys/reverie/config.h @@ -6,4 +6,4 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 \ No newline at end of file +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json b/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json index 4f67754d8f..6e3f0f9413 100644 --- a/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json @@ -190,4 +190,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75/readme.md b/keyboards/cannonkeys/satisfaction75/readme.md index 9e2891b93f..f483f8b6c0 100644 --- a/keyboards/cannonkeys/satisfaction75/readme.md +++ b/keyboards/cannonkeys/satisfaction75/readme.md @@ -37,4 +37,4 @@ 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**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json b/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json index d4a6b4423c..9605a63fea 100644 --- a/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json @@ -531,4 +531,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json b/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json index e8ddb90c89..79192b936e 100644 --- a/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json @@ -190,4 +190,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.h b/keyboards/cannonkeys/satisfaction75/satisfaction75.h index d4fc7aca87..8bee64dc2c 100644 --- a/keyboards/cannonkeys/satisfaction75/satisfaction75.h +++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.h @@ -3,4 +3,4 @@ #pragma once -#include "satisfaction_keycodes.h" \ No newline at end of file +#include "satisfaction_keycodes.h" diff --git a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json index 55a03da463..141209da80 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json @@ -204,4 +204,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h b/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h index d4fc7aca87..8bee64dc2c 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h +++ b/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h @@ -3,4 +3,4 @@ #pragma once -#include "satisfaction_keycodes.h" \ No newline at end of file +#include "satisfaction_keycodes.h" diff --git a/keyboards/capsunlocked/cu24/keymaps/default/readme.md b/keyboards/capsunlocked/cu24/keymaps/default/readme.md index 5528d6c0d8..9fa069bc06 100644 --- a/keyboards/capsunlocked/cu24/keymaps/default/readme.md +++ b/keyboards/capsunlocked/cu24/keymaps/default/readme.md @@ -7,4 +7,4 @@ https://imgur.com/a/vpHFj This is the default layout that comes flashed on every CU24. It is like a normal numpad, with all the led customization on the Fn layer. -See [All Layouts](https://imgur.com/trwO7dN) for all supported configurations! \ No newline at end of file +See [All Layouts](https://imgur.com/trwO7dN) for all supported configurations! diff --git a/keyboards/capsunlocked/cu80/v2/ansi/ansi.c b/keyboards/capsunlocked/cu80/v2/ansi/ansi.c deleted file mode 100644 index 2d4055d984..0000000000 --- a/keyboards/capsunlocked/cu80/v2/ansi/ansi.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2021 CapsUnlocked -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED}, - {63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED}, - {86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76} - }, { - {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json b/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json index 9dc24b5e40..fe38c3dff8 100644 --- a/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json +++ b/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json @@ -2,5 +2,96 @@ "keyboard_name": "CU80 v2 ANSI", "usb": { "pid": "0x0081" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 141, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 184, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 212, "y": 0, "flags": 8}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 13, "flags": 4}, + {"matrix": [1, 15], "x": 212, "y": 13, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 184, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 155, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 141, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 99, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 85, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 71, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 13, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 99, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 113, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 141, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 155, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 212, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 155, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 113, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 85, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 8}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 71, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 85, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 99, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 113, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 127, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 141, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 155, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 169, "y": 51, "flags": 1}, + {"matrix": [4, 15], "x": 212, "y": 51, "flags": 4}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 212, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 184, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 155, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 141, "y": 64, "flags": 1}, + {"matrix": [5, 9], "x": 127, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1} + ] } } diff --git a/keyboards/capsunlocked/cu80/v2/iso/iso.c b/keyboards/capsunlocked/cu80/v2/iso/iso.c deleted file mode 100644 index 0e8e26e5dd..0000000000 --- a/keyboards/capsunlocked/cu80/v2/iso/iso.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2021 CapsUnlocked -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED}, - {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED}, - {87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77} - }, { - {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/capsunlocked/cu80/v2/iso/keyboard.json b/keyboards/capsunlocked/cu80/v2/iso/keyboard.json index 33d49db64a..b78b8af41e 100644 --- a/keyboards/capsunlocked/cu80/v2/iso/keyboard.json +++ b/keyboards/capsunlocked/cu80/v2/iso/keyboard.json @@ -2,5 +2,97 @@ "keyboard_name": "CU80 v2 ISO", "usb": { "pid": "0x0083" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 141, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 184, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 212, "y": 0, "flags": 8}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 26, "flags": 4}, + {"matrix": [1, 15], "x": 212, "y": 26, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 26, "flags": 4}, + {"matrix": [1, 13], "x": 184, "y": 26, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 26, "flags": 4}, + {"matrix": [1, 11], "x": 155, "y": 26, "flags": 4}, + {"matrix": [1, 10], "x": 141, "y": 26, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 26, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 26, "flags": 4}, + {"matrix": [1, 7], "x": 99, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 85, "y": 26, "flags": 4}, + {"matrix": [1, 5], "x": 71, "y": 26, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 26, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 99, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 113, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 141, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 155, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 212, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 155, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 113, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 85, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 8}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1}, + {"matrix": [4, 1], "x": 14, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 71, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 85, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 99, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 113, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 127, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 141, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 155, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 169, "y": 51, "flags": 1}, + {"matrix": [4, 15], "x": 212, "y": 51, "flags": 4}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 212, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 184, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 155, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 141, "y": 64, "flags": 1}, + {"matrix": [5, 9], "x": 127, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1} + ] } } diff --git a/keyboards/cbkbd/acai/keyboard.json b/keyboards/cbkbd/acai/keyboard.json new file mode 100644 index 0000000000..b1babe7797 --- /dev/null +++ b/keyboards/cbkbd/acai/keyboard.json @@ -0,0 +1,174 @@ +{ + "manufacturer": "CoffeeBreakKeyboards", + "keyboard_name": "Acai", + "maintainer": "CoffeeBreakKeyboards", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP25", "GP24", "GP23", "GP20", "GP18", "GP7", "GP6", "GP5", "GP4", "GP3"], + "rows": ["GP27", "GP28", "GP19", "GP26"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": 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, + "riverflow": 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, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 4], "x": 100, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 50, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 43, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 25, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 50, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 100, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 125, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 7], "x": 175, "y": 64, "flags": 4}, + {"matrix": [3, 8], "x": 200, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 224, "y": 64, "flags": 4}, + {"matrix": [2, 9], "x": 224, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 200, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 175, "y": 43, "flags": 4}, + {"matrix": [2, 6], "x": 150, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 125, "y": 43, "flags": 4}, + {"matrix": [1, 5], "x": 125, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 175, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 200, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 224, "y": 21, "flags": 4}, + {"matrix": [0, 9], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 200, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 175, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 125, "y": 0, "flags": 4} + ], + "max_brightness": 125, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x1075", + "vid": "0x4342" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "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, 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} + ] + } + } +} diff --git a/keyboards/cbkbd/acai/keymaps/default/keymap.c b/keyboards/cbkbd/acai/keymaps/default/keymap.c new file mode 100644 index 0000000000..90ff4a4f49 --- /dev/null +++ b/keyboards/cbkbd/acai/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2025 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENTER, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LGUI, KC_LALT, LT(1,KC_BSPC), KC_DEL, KC_ENT, LT(2,KC_SPACE), KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT( + RM_TOGG, RM_NEXT, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/cbkbd/acai/readme.md b/keyboards/cbkbd/acai/readme.md new file mode 100644 index 0000000000..45688511f9 --- /dev/null +++ b/keyboards/cbkbd/acai/readme.md @@ -0,0 +1,26 @@ +# Acai + +![Acai](https://imgur.com/eWKoH96.png) + +A 10x4 ortholinear keyboard made and sold by Coffee Break Keyboards. PCB designed by Snipeye. Case designed by Rain and Obabo. [More info on cbkbd.com](https://www.cbkbd.com/product/acai) + +* Hardware Supported: Acai PCB +* Hardware Availability: [cbkbd.com](https://www.cbkbd.com/product/acai-pcb) + +Make example for this keyboard (after setting up your build environment): + + make cbkbd/acai:default + +Flashing example for this keyboard: + + make cbkbd/acai:default:flash + +See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](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/cbkbd/coffeevan/keyboard.json b/keyboards/cbkbd/coffeevan/keyboard.json new file mode 100644 index 0000000000..a1c96425c4 --- /dev/null +++ b/keyboards/cbkbd/coffeevan/keyboard.json @@ -0,0 +1,193 @@ +{ + "manufacturer": "CoffeeBreakKeyboards", + "keyboard_name": "Coffeevan", + "maintainer": "CoffeeBreakKeyboards", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP13", "GP12", "GP11", "GP10", "GP24", "GP9", "GP8", "GP28", "GP4", "GP3", "GP2", "GP1"], + "rows": ["GP27", "GP26", "GP25", "GP14"] + }, + "processor": "RP2040", + "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": 20 + }, + "usb": { + "device_version": "1.0.1", + "pid": "0x4356", + "vid": "0x4342" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP16" + }, + "layouts": { + "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, "w": 1.75}, + {"matrix": [1, 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}, + {"matrix": [1, 11], "x": 11.25, "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": [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, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.75}, + {"matrix": [3, 6], "x": 3.5, "y": 4, "w": 6.25}, + {"matrix": [3, 5], "x": 6.25, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + }, + "LAYOUT_single_space": { + "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, "w": 1.75}, + {"matrix": [1, 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}, + {"matrix": [1, 11], "x": 11.25, "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": [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, "w": 1.25}, + {"matrix": [3, 6], "x": 3.5, "y": 3, "w": 6.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + }, + "LAYOUT_split_space": { + "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, "w": 1.75}, + {"matrix": [1, 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}, + {"matrix": [1, 11], "x": 11.25, "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": [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, "w": 1.25}, + {"matrix": [3, 3], "x": 3.5, "y": 3, "w": 2.75}, + {"matrix": [3, 5], "x": 6.25, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + } + } +} diff --git a/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c b/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c new file mode 100644 index 0000000000..5179fd930e --- /dev/null +++ b/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c @@ -0,0 +1,20 @@ +// 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_all( + 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_SCLN, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/cbkbd/coffeevan/matrix_diagram.md b/keyboards/cbkbd/coffeevan/matrix_diagram.md new file mode 100644 index 0000000000..8fc7ecc1bd --- /dev/null +++ b/keyboards/cbkbd/coffeevan/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Coffeevan +``` +Minisub style split-space +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │ +├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │ +├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │ +├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┼───┼───┤ +│30 │31 │32 │33 │35 │38 │39 │3A │3B │ +└────┴───┴────┴──────────┴────────┴────┴───┴───┴───┘ + +JetVan style 6.25u +┌────┬───┬────┬────────────────────────┬───┬───┬───┐ +│30 │31 │32 │36 │39 │3A │3B │ +└────┴───┴────┴────────────────────────┴───┴───┴───┘ +``` diff --git a/keyboards/cbkbd/coffeevan/readme.md b/keyboards/cbkbd/coffeevan/readme.md new file mode 100644 index 0000000000..f5e909626b --- /dev/null +++ b/keyboards/cbkbd/coffeevan/readme.md @@ -0,0 +1,27 @@ +# Coffeevan + +![Coffeevan](https://imgur.com/1VDxDmp.jpeg) + +Coffeevan is a drop-in replacement PCB for MiniVan cases. Coffeevan supports the Minisub split-space and JetVan 6.25u spacebar layout. + +* Keyboard Maintainer: [Coffee Break Keyboards](https://github.com/CoffeeBreakKeyboards) +* Hardware Supported: Coffeevan +* Hardware Availability: [Coffee Break Keyboards](https://www.cbkbd.com/product/minivan-kits) + +Make example for this keyboard (after setting up your build environment): + + make cbkbd/coffeevan:default + +Flashing example for this keyboard: + + make cbkbd/coffeevan:default:flash + +See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](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/chalice/keymaps/default/keymap.c b/keyboards/chalice/keymaps/default/keymap.c index f403526ae7..4db87eb5ab 100644 --- a/keyboards/chalice/keymaps/default/keymap.c +++ b/keyboards/chalice/keymaps/default/keymap.c @@ -52,4 +52,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/checkerboards/phoenix45_ortho/readme.md b/keyboards/checkerboards/phoenix45_ortho/readme.md index 46e158c0aa..7980a077fb 100644 --- a/keyboards/checkerboards/phoenix45_ortho/readme.md +++ b/keyboards/checkerboards/phoenix45_ortho/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): To put the PCB into bootloader mode, short the two pin holes together that are just beneath diode #23. -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). \ No newline at end of file +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/checkerboards/plexus75_he/keyboard.json b/keyboards/checkerboards/plexus75_he/keyboard.json index 55a7a49235..03ac45a92b 100644 --- a/keyboards/checkerboards/plexus75_he/keyboard.json +++ b/keyboards/checkerboards/plexus75_he/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Plexus75 HE", "manufacturer": "Nasp", - "url": "https://www.github.com/qmk/qmk_firmware/tree/master/keyboards/checkerboards/plexus75_he", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/quark_lp/keyboard.json b/keyboards/checkerboards/quark_lp/keyboard.json index 7634a71d3e..59666f8d69 100644 --- a/keyboards/checkerboards/quark_lp/keyboard.json +++ b/keyboards/checkerboards/quark_lp/keyboard.json @@ -32,6 +32,59 @@ "pixel_flow": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 204, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 163, "y": 64, "flags": 1}, + {"x": 153, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 143, "y": 64, "flags": 1}, + {"x": 133, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 123, "y": 64, "flags": 1}, + {"x": 113, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 102, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 82, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 41, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1}, + {"matrix": [2, 1], "x": 21, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 82, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 102, "y": 43, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 143, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 163, "y": 43, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 43, "flags": 4}, + {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 43, "flags": 1}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [1, 10], "x": 204, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 163, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 143, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 123, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 102, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 82, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 41, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 204, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1} + ], "max_brightness": 125, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/checkerboards/quark_lp/quark_lp.c b/keyboards/checkerboards/quark_lp/quark_lp.c deleted file mode 100644 index 89c685f2b5..0000000000 --- a/keyboards/checkerboards/quark_lp/quark_lp.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 Nathan Spears - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, - { 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }, - { 14, 13, 12, 11, 10, 9, 7, 5, 3, 2, 1, 0 } -}, { - // LED Index to Physical Position - { 244, 0 }, { 224, 0 }, { 203, 0 }, { 183, 0 }, { 173, 0 }, { 163, 0 }, { 153, 0 }, { 143, 0 }, { 133, 0 }, { 122, 0 }, { 102, 0 }, { 81, 0 }, { 61, 0 }, { 41, 0 }, { 20, 0 }, - { 20, 21 }, { 41, 21 }, { 61, 21 }, { 81, 21 }, { 102, 21 }, { 122, 21 }, { 143, 21 }, { 163, 21 }, { 183, 21 }, { 203, 21 }, { 224, 21 }, { 244, 21 }, - { 244, 43 }, { 224, 43 }, { 203, 43 }, { 183, 43 }, { 163, 43 }, { 143, 43 }, { 122, 43 }, { 102, 43 }, { 81, 43 }, { 61, 43 }, { 41, 43 }, { 20, 43 }, - { 20, 64 }, { 41, 64 }, { 61, 64 }, { 81, 64 }, { 102, 64 }, { 112, 64 }, { 122, 64 }, { 132, 64 }, { 143, 64 }, { 153, 64 }, { 163, 64 }, { 183, 64 } -}, { - // LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 -} }; -#endif diff --git a/keyboards/checkerboards/quark_plus/keyboard.json b/keyboards/checkerboards/quark_plus/keyboard.json index 6f38cbb752..932eb97e4a 100644 --- a/keyboards/checkerboards/quark_plus/keyboard.json +++ b/keyboards/checkerboards/quark_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Quark Plus", "manufacturer": "Nasp", - "url": "https://www.github.com/qmk/qmk_firmware/tree/master/keyboards/checkerboards/quark_plus", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c index 5c2480f3fb..40ef6d6506 100644 --- a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c +++ b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c @@ -13,41 +13,7 @@ along with this program. If not, see . #include "quantum.h" -//x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION -//y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION - #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 }, - { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 }, - { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 }, - { 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 }, - { 90, 91, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - // LED Index to Physical Position - { 0, 0 }, { 13, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 78, 0 }, { 91, 0 }, { 104, 0 }, { 117, 0 }, { 130, 0 }, { 143, 0 }, { 156, 0 }, { 195, 0 }, { 208, 0 }, { 224, 0 }, - { 0, 12 }, { 13, 12 }, { 26, 12 }, { 39, 12 }, { 52, 12 }, { 65, 12 }, { 78, 12 }, { 91, 12 }, { 104, 12 }, { 117, 12 }, { 130, 12 }, { 143, 12 }, { 156, 12 }, { 169, 12 }, { 182, 24 }, { 195, 12 }, { 208, 12 }, { 224, 12 }, - { 0, 24 }, { 13, 24 }, { 26, 24 }, { 39, 24 }, { 52, 24 }, { 65, 24 }, { 78, 24 }, { 91, 24 }, { 104, 24 }, { 117, 24 }, { 130, 24 }, { 143, 24 }, { 156, 24 }, { 169, 24 }, { 195, 24 }, { 208, 24 }, { 224, 24 }, - { 0, 36 }, { 13, 36 }, { 26, 36 }, { 39, 36 }, { 52, 36 }, { 65, 36 }, { 78, 36 }, { 91, 36 }, { 104, 36 }, { 117, 36 }, { 130, 36 }, { 143, 36 }, { 156, 36 }, { 169, 36 }, - { 0, 48 }, { 13, 48 }, { 26, 48 }, { 39, 48 }, { 52, 48 }, { 65, 48 }, { 78, 48 }, { 91, 48 }, { 104, 48 }, { 117, 48 }, { 130, 48 }, { 143, 48 }, { 156, 48 }, { 169, 48 }, { 208, 48 }, - { 0, 64 }, { 13, 64 }, { 26, 64 }, { 78, 64 }, { 130, 64 }, { 143, 64 }, { 156, 64 }, { 169, 64 }, { 195, 64 }, { 208, 64 }, { 224, 64 }, { 182, 0 } -}, { - // LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/cherrybstudio/cb87rgb/keyboard.json b/keyboards/cherrybstudio/cb87rgb/keyboard.json index 1ce2fab78f..710bc2ab50 100644 --- a/keyboards/cherrybstudio/cb87rgb/keyboard.json +++ b/keyboards/cherrybstudio/cb87rgb/keyboard.json @@ -53,6 +53,100 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 91, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 104, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 117, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 130, "y": 0, "flags": 1}, + {"matrix": [1, 1], "x": 143, "y": 0, "flags": 1}, + {"matrix": [1, 2], "x": 156, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 195, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 208, "y": 0, "flags": 1}, + {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 6], "x": 0, "y": 12, "flags": 1}, + {"matrix": [1, 7], "x": 13, "y": 12, "flags": 1}, + {"matrix": [1, 8], "x": 26, "y": 12, "flags": 1}, + {"matrix": [1, 9], "x": 39, "y": 12, "flags": 1}, + {"matrix": [2, 0], "x": 52, "y": 12, "flags": 1}, + {"matrix": [2, 1], "x": 65, "y": 12, "flags": 1}, + {"matrix": [2, 2], "x": 78, "y": 12, "flags": 1}, + {"matrix": [2, 3], "x": 91, "y": 12, "flags": 1}, + {"matrix": [2, 4], "x": 104, "y": 12, "flags": 1}, + {"matrix": [2, 5], "x": 117, "y": 12, "flags": 1}, + {"matrix": [2, 6], "x": 130, "y": 12, "flags": 1}, + {"matrix": [2, 7], "x": 143, "y": 12, "flags": 1}, + {"matrix": [2, 8], "x": 156, "y": 12, "flags": 1}, + {"matrix": [2, 9], "x": 169, "y": 12, "flags": 1}, + {"matrix": [3, 0], "x": 182, "y": 24, "flags": 1}, + {"matrix": [3, 1], "x": 195, "y": 12, "flags": 1}, + {"matrix": [3, 2], "x": 208, "y": 12, "flags": 1}, + {"matrix": [3, 3], "x": 224, "y": 12, "flags": 1}, + {"matrix": [3, 4], "x": 0, "y": 24, "flags": 1}, + {"matrix": [3, 5], "x": 13, "y": 24, "flags": 1}, + {"matrix": [3, 6], "x": 26, "y": 24, "flags": 1}, + {"matrix": [3, 7], "x": 39, "y": 24, "flags": 1}, + {"matrix": [3, 8], "x": 52, "y": 24, "flags": 1}, + {"matrix": [3, 9], "x": 65, "y": 24, "flags": 1}, + {"matrix": [4, 0], "x": 78, "y": 24, "flags": 1}, + {"matrix": [4, 1], "x": 91, "y": 24, "flags": 1}, + {"matrix": [4, 2], "x": 104, "y": 24, "flags": 1}, + {"matrix": [4, 3], "x": 117, "y": 24, "flags": 1}, + {"matrix": [4, 4], "x": 130, "y": 24, "flags": 1}, + {"matrix": [4, 5], "x": 143, "y": 24, "flags": 1}, + {"matrix": [4, 6], "x": 156, "y": 24, "flags": 1}, + {"matrix": [4, 7], "x": 169, "y": 24, "flags": 1}, + {"matrix": [4, 8], "x": 195, "y": 24, "flags": 1}, + {"matrix": [4, 9], "x": 208, "y": 24, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [5, 1], "x": 0, "y": 36, "flags": 1}, + {"matrix": [5, 2], "x": 13, "y": 36, "flags": 1}, + {"matrix": [5, 3], "x": 26, "y": 36, "flags": 1}, + {"matrix": [5, 4], "x": 39, "y": 36, "flags": 1}, + {"matrix": [5, 5], "x": 52, "y": 36, "flags": 1}, + {"matrix": [5, 6], "x": 65, "y": 36, "flags": 1}, + {"matrix": [5, 7], "x": 78, "y": 36, "flags": 1}, + {"matrix": [5, 8], "x": 91, "y": 36, "flags": 1}, + {"matrix": [5, 9], "x": 104, "y": 36, "flags": 1}, + {"matrix": [6, 0], "x": 117, "y": 36, "flags": 1}, + {"matrix": [6, 1], "x": 130, "y": 36, "flags": 1}, + {"matrix": [6, 2], "x": 143, "y": 36, "flags": 1}, + {"matrix": [6, 3], "x": 156, "y": 36, "flags": 1}, + {"matrix": [6, 4], "x": 169, "y": 36, "flags": 1}, + {"matrix": [6, 5], "x": 0, "y": 48, "flags": 1}, + {"matrix": [6, 6], "x": 13, "y": 48, "flags": 1}, + {"matrix": [6, 7], "x": 26, "y": 48, "flags": 1}, + {"matrix": [6, 8], "x": 39, "y": 48, "flags": 1}, + {"matrix": [6, 9], "x": 52, "y": 48, "flags": 1}, + {"matrix": [7, 0], "x": 65, "y": 48, "flags": 1}, + {"matrix": [7, 1], "x": 78, "y": 48, "flags": 1}, + {"matrix": [7, 2], "x": 91, "y": 48, "flags": 1}, + {"matrix": [7, 3], "x": 104, "y": 48, "flags": 1}, + {"matrix": [7, 4], "x": 117, "y": 48, "flags": 1}, + {"matrix": [7, 5], "x": 130, "y": 48, "flags": 1}, + {"matrix": [7, 6], "x": 143, "y": 48, "flags": 1}, + {"matrix": [7, 7], "x": 156, "y": 48, "flags": 1}, + {"matrix": [7, 8], "x": 169, "y": 48, "flags": 1}, + {"matrix": [7, 9], "x": 208, "y": 48, "flags": 1}, + {"matrix": [8, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [8, 1], "x": 13, "y": 64, "flags": 1}, + {"matrix": [8, 2], "x": 26, "y": 64, "flags": 1}, + {"matrix": [8, 3], "x": 78, "y": 64, "flags": 1}, + {"matrix": [8, 4], "x": 130, "y": 64, "flags": 1}, + {"matrix": [8, 5], "x": 143, "y": 64, "flags": 1}, + {"matrix": [8, 6], "x": 156, "y": 64, "flags": 1}, + {"matrix": [8, 7], "x": 169, "y": 64, "flags": 1}, + {"matrix": [8, 8], "x": 195, "y": 64, "flags": 1}, + {"matrix": [8, 9], "x": 208, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 182, "y": 0, "flags": 1} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/chew/mono/config.h b/keyboards/chew/mono/config.h deleted file mode 100644 index bb047c0adf..0000000000 --- a/keyboards/chew/mono/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Florent (@FLinguenheld) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Flash */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/chew/split/config.h b/keyboards/chew/split/config.h deleted file mode 100644 index bb047c0adf..0000000000 --- a/keyboards/chew/split/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Florent (@FLinguenheld) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Flash */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/chickenman/kami65/keyboard.json b/keyboards/chickenman/kami65/keyboard.json new file mode 100644 index 0000000000..548bc39bee --- /dev/null +++ b/keyboards/chickenman/kami65/keyboard.json @@ -0,0 +1,336 @@ +{ + "manufacturer": "Chickenman", + "keyboard_name": "Kami65", + "maintainer": "MaiTheSan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B12", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A10", "A0", "A9", "C13", "A1", "A2", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4", "C14"], + "rows": ["B4", "A15", "A3", "A8", "B14"] + }, + "processor": "STM32F072", + "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": 24, + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x00A1", + "vid": "0xC41C" + }, + "ws2812": { + "pin": "B15" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker_split_bs" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K0D", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/chickenman/kami65/keymaps/default/keymap.c b/keyboards/chickenman/kami65/keymaps/default/keymap.c new file mode 100644 index 0000000000..d66e90672e --- /dev/null +++ b/keyboards/chickenman/kami65/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ Alt│ Fn│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [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_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│Pause│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, UG_TOGG, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, UG_PREV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_NEXT, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/chickenman/kami65/readme.md b/keyboards/chickenman/kami65/readme.md new file mode 100644 index 0000000000..764c688e26 --- /dev/null +++ b/keyboards/chickenman/kami65/readme.md @@ -0,0 +1,27 @@ +# Kami65 + +![Kami65](https://i.imgur.com/SwXfDcr.png) + +A 65% keyboard. + +* Keyboard Maintainer: [Mai The San](https://github.com/maithesan) +* Hardware Supported: Kami65 Keyboard +* Hardware Availability: [UCSD GB](https://www.instagram.com/p/C1BD0RZsttm/) + +Make example for this keyboard (after setting up your build environment): + + make chickenman/kami65:default + +Flashing example for this keyboard: + + make chickenman/kami65: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 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/chosfox/cf81/cf81.c b/keyboards/chosfox/cf81/cf81.c index 12b4ab6110..4cf006e3a8 100644 --- a/keyboards/chosfox/cf81/cf81.c +++ b/keyboards/chosfox/cf81/cf81.c @@ -157,32 +157,3 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } #endif - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - default: - return true; - } -} diff --git a/keyboards/chouchou/readme.md b/keyboards/chouchou/readme.md index dcd0c90314..ef5c93f9ed 100644 --- a/keyboards/chouchou/readme.md +++ b/keyboards/chouchou/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/churrosoft/deck8/info.json b/keyboards/churrosoft/deck8/info.json index d656997b78..18883a750c 100644 --- a/keyboards/churrosoft/deck8/info.json +++ b/keyboards/churrosoft/deck8/info.json @@ -39,4 +39,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/churrosoft/deck8/keymaps/default/keymap.c b/keyboards/churrosoft/deck8/keymaps/default/keymap.c index cc1bcea109..c04b84ccf0 100644 --- a/keyboards/churrosoft/deck8/keymaps/default/keymap.c +++ b/keyboards/churrosoft/deck8/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H) ) -}; \ No newline at end of file +}; diff --git a/keyboards/churrosoft/deck8/noleds/keyboard.json b/keyboards/churrosoft/deck8/noleds/keyboard.json index fa1e2a420d..cfcda7221f 100644 --- a/keyboards/churrosoft/deck8/noleds/keyboard.json +++ b/keyboards/churrosoft/deck8/noleds/keyboard.json @@ -2,4 +2,4 @@ "usb": { "pid": "0xC100" } -} \ No newline at end of file +} diff --git a/keyboards/churrosoft/deck8/noleds/readme.md b/keyboards/churrosoft/deck8/noleds/readme.md index c4e8d70c81..28e23eb254 100644 --- a/keyboards/churrosoft/deck8/noleds/readme.md +++ b/keyboards/churrosoft/deck8/noleds/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard * **Physical reset button**: Short the `JP1` jumper in the back side of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/churrosoft/deck8/rgb/keyboard.json b/keyboards/churrosoft/deck8/rgb/keyboard.json index b5b3b21b5a..79b053028e 100644 --- a/keyboards/churrosoft/deck8/rgb/keyboard.json +++ b/keyboards/churrosoft/deck8/rgb/keyboard.json @@ -76,4 +76,4 @@ ], "sleep": true } -} \ No newline at end of file +} diff --git a/keyboards/churrosoft/deck8/rgb/readme.md b/keyboards/churrosoft/deck8/rgb/readme.md index 87fe400c24..7b0e60edb9 100644 --- a/keyboards/churrosoft/deck8/rgb/readme.md +++ b/keyboards/churrosoft/deck8/rgb/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard * **Physical reset button**: Short the `JP1` jumper in the back side of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cipulot/common/matrix.c b/keyboards/cipulot/common/matrix.c index cfa2efe050..a06a198e0a 100644 --- a/keyboards/cipulot/common/matrix.c +++ b/keyboards/cipulot/common/matrix.c @@ -17,9 +17,6 @@ #include "ec_switch_matrix.h" #include "matrix.h" -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // Custom matrix init function void matrix_init_custom(void) { // Initialize EC diff --git a/keyboards/cipulot/ec_980c/matrix.c b/keyboards/cipulot/ec_980c/matrix.c index cfa2efe050..a06a198e0a 100644 --- a/keyboards/cipulot/ec_980c/matrix.c +++ b/keyboards/cipulot/ec_980c/matrix.c @@ -17,9 +17,6 @@ #include "ec_switch_matrix.h" #include "matrix.h" -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // Custom matrix init function void matrix_init_custom(void) { // Initialize EC diff --git a/keyboards/cipulot/ec_typek/matrix.c b/keyboards/cipulot/ec_typek/matrix.c index cfa2efe050..a06a198e0a 100644 --- a/keyboards/cipulot/ec_typek/matrix.c +++ b/keyboards/cipulot/ec_typek/matrix.c @@ -17,9 +17,6 @@ #include "ec_switch_matrix.h" #include "matrix.h" -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // Custom matrix init function void matrix_init_custom(void) { // Initialize EC diff --git a/keyboards/citrus/erdnuss65/erdnuss65.c b/keyboards/citrus/erdnuss65/erdnuss65.c index d10f476c66..64dc05d4ec 100644 --- a/keyboards/citrus/erdnuss65/erdnuss65.c +++ b/keyboards/citrus/erdnuss65/erdnuss65.c @@ -25,4 +25,4 @@ bool led_update_kb(led_t led_state) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/citrus/erdnuss65/readme.md b/keyboards/citrus/erdnuss65/readme.md index 0bb952c111..9bb3138a46 100644 --- a/keyboards/citrus/erdnuss65/readme.md +++ b/keyboards/citrus/erdnuss65/readme.md @@ -19,4 +19,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/citrus/readme.md b/keyboards/citrus/readme.md index bde8a9620f..301695a74d 100644 --- a/keyboards/citrus/readme.md +++ b/keyboards/citrus/readme.md @@ -1,2 +1,2 @@ # Citrus Lab -QMK folders for PCB commissions. \ No newline at end of file +QMK folders for PCB commissions. diff --git a/keyboards/clickety_split/leeloo/readme.md b/keyboards/clickety_split/leeloo/readme.md index 65f1069cdb..3cbf42f63d 100644 --- a/keyboards/clickety_split/leeloo/readme.md +++ b/keyboards/clickety_split/leeloo/readme.md @@ -30,4 +30,4 @@ Make example for this keyboard (after setting up your build environment): make clickety_split/leeloo/rev3:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/concreteflowers/cor_tkl/cor_tkl.c b/keyboards/concreteflowers/cor_tkl/cor_tkl.c index d4f0ec0082..a90931439b 100644 --- a/keyboards/concreteflowers/cor_tkl/cor_tkl.c +++ b/keyboards/concreteflowers/cor_tkl/cor_tkl.c @@ -16,22 +16,6 @@ #include "quantum.h" -led_config_t g_led_config = {{ - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 1, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - // LED Index to Physical Position - { 5, 40 }, { 211, 0 } -}, { - // LED Index to Flag - LED_FLAG_INDICATOR, LED_FLAG_INDICATOR -}}; - 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; diff --git a/keyboards/concreteflowers/cor_tkl/keyboard.json b/keyboards/concreteflowers/cor_tkl/keyboard.json index d5a293eaa3..ccdd0935fa 100644 --- a/keyboards/concreteflowers/cor_tkl/keyboard.json +++ b/keyboards/concreteflowers/cor_tkl/keyboard.json @@ -32,7 +32,11 @@ "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8} + ] }, "ws2812": { "pin": "GP19", diff --git a/keyboards/controllerworks/mini36/keymaps/default/config.h b/keyboards/controllerworks/mini36/keymaps/default/config.h index aeca5716c0..5145290aab 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/config.h +++ b/keyboards/controllerworks/mini36/keymaps/default/config.h @@ -76,4 +76,4 @@ # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif \ No newline at end of file +#endif diff --git a/keyboards/controllerworks/mini36/keymaps/default/keymap.c b/keyboards/controllerworks/mini36/keymaps/default/keymap.c index 45f46b47bd..8141d304f2 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/keymap.c +++ b/keyboards/controllerworks/mini36/keymaps/default/keymap.c @@ -65,4 +65,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ) -}; \ No newline at end of file +}; diff --git a/keyboards/controllerworks/mini36/mcuconf.h b/keyboards/controllerworks/mini36/mcuconf.h index c92e5035a8..691373261b 100644 --- a/keyboards/controllerworks/mini36/mcuconf.h +++ b/keyboards/controllerworks/mini36/mcuconf.h @@ -20,4 +20,4 @@ #include_next #undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/controllerworks/mini36/mini36.c b/keyboards/controllerworks/mini36/mini36.c index efe97009d9..42e943674b 100644 --- a/keyboards/controllerworks/mini36/mini36.c +++ b/keyboards/controllerworks/mini36/mini36.c @@ -79,4 +79,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/controllerworks/mini36/readme.md b/keyboards/controllerworks/mini36/readme.md index c23cbc92c6..7dd862d1a5 100644 --- a/keyboards/controllerworks/mini36/readme.md +++ b/keyboards/controllerworks/mini36/readme.md @@ -40,4 +40,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the upper left key on the left hand keyboard half or the upper right key on the right hand keyboard half while plugging in USB * **Physical reset button**: Press the RST button twice, rapidly -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/controllerworks/mini42/keymaps/default/config.h b/keyboards/controllerworks/mini42/keymaps/default/config.h index aeca5716c0..5145290aab 100644 --- a/keyboards/controllerworks/mini42/keymaps/default/config.h +++ b/keyboards/controllerworks/mini42/keymaps/default/config.h @@ -76,4 +76,4 @@ # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif \ No newline at end of file +#endif diff --git a/keyboards/controllerworks/mini42/mcuconf.h b/keyboards/controllerworks/mini42/mcuconf.h index c92e5035a8..691373261b 100644 --- a/keyboards/controllerworks/mini42/mcuconf.h +++ b/keyboards/controllerworks/mini42/mcuconf.h @@ -20,4 +20,4 @@ #include_next #undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/controllerworks/mini42/readme.md b/keyboards/controllerworks/mini42/readme.md index 67b04b09fe..d8be3952c7 100644 --- a/keyboards/controllerworks/mini42/readme.md +++ b/keyboards/controllerworks/mini42/readme.md @@ -74,4 +74,4 @@ Enter the bootloader in 3 ways: \*DATA2 on production units, not connected on prototype units -\** Right Column numbers run right (pinky position) to left (thumb position) \ No newline at end of file +\** Right Column numbers run right (pinky position) to left (thumb position) diff --git a/keyboards/converter/hp_46010a/keymaps/default/keymap.c b/keyboards/converter/hp_46010a/keymaps/default/keymap.c index 8aadd2480a..422ef88b52 100644 --- a/keyboards/converter/hp_46010a/keymaps/default/keymap.c +++ b/keyboards/converter/hp_46010a/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DEL, 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_APP, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_TAB, KC_LGUI, KC_LALT, KC_SPACE , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) -} ; \ No newline at end of file +} ; diff --git a/keyboards/converter/hp_46010a/matrix.c b/keyboards/converter/hp_46010a/matrix.c index d9d9eec48f..f9876b5a36 100644 --- a/keyboards/converter/hp_46010a/matrix.c +++ b/keyboards/converter/hp_46010a/matrix.c @@ -229,4 +229,4 @@ uint8_t matrix_cols(void) { // the online ducmentation starting from : // https://docs.qmk.fm/#/config_options // https://docs.qmk.fm/#/understanding_qmk -// and probably a few i forgot.... \ No newline at end of file +// and probably a few i forgot.... diff --git a/keyboards/converter/ibm_terminal/matrix.c b/keyboards/converter/ibm_terminal/matrix.c index d245ff61b2..005847d185 100644 --- a/keyboards/converter/ibm_terminal/matrix.c +++ b/keyboards/converter/ibm_terminal/matrix.c @@ -27,8 +27,6 @@ along with this program. If not, see . #define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #define print_matrix_header() print("\nr/c 01234567\n") -#define ROW_SHIFTER ((uint8_t)1) - static void matrix_make(uint8_t code); static void matrix_break(uint8_t code); diff --git a/keyboards/converter/m0110_usb/keymaps/default/keymap.c b/keyboards/converter/m0110_usb/keymaps/default/keymap.c index b65774d421..cee2375754 100644 --- a/keyboards/converter/m0110_usb/keymaps/default/keymap.c +++ b/keyboards/converter/m0110_usb/keymaps/default/keymap.c @@ -89,4 +89,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_END, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_PGDN, KC_DOWN, KC_PGUP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LALT, KC_LGUI, KC_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_P0, KC_PDOT), -}; \ No newline at end of file +}; diff --git a/keyboards/converter/m0110_usb/matrix.c b/keyboards/converter/m0110_usb/matrix.c index 6c39d4b6b0..d1668e614b 100644 --- a/keyboards/converter/m0110_usb/matrix.c +++ b/keyboards/converter/m0110_usb/matrix.c @@ -118,4 +118,4 @@ static void register_key(uint8_t key) } else { matrix[ROW(key)] |= (1< 0) { + if (matrix_get_row(i) > 0) { return true; } } @@ -488,10 +485,10 @@ bool is_new_tap(void) { static matrix_row_t old_matrix[] = { 0, 0, 0, 0, 0, 0 }; bool new_tap = false; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - if (matrix[i] > old_matrix[i]) { // more 1's detected, there was a new tap + if (matrix_get_row(i) > old_matrix[i]) { // more 1's detected, there was a new tap new_tap = true; } - old_matrix[i] = matrix[i]; + old_matrix[i] = matrix_get_row(i); } return new_tap; } diff --git a/keyboards/custommk/evo70_r2/keymaps/default/keymap.c b/keyboards/custommk/evo70_r2/keymaps/default/keymap.c index 9faf2088dd..e5e4ee365e 100644 --- a/keyboards/custommk/evo70_r2/keymaps/default/keymap.c +++ b/keyboards/custommk/evo70_r2/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/custommk/evo70_r2/rules.mk b/keyboards/custommk/evo70_r2/rules.mk index 3961343ce4..97f81d6dc4 100644 --- a/keyboards/custommk/evo70_r2/rules.mk +++ b/keyboards/custommk/evo70_r2/rules.mk @@ -4,4 +4,4 @@ SRC += matrix.c QUANTUM_PAINTER_DRIVERS = st7735_spi CUSTOM_MATRIX = lite -CIE1931_CURVE = yes \ No newline at end of file +CIE1931_CURVE = yes diff --git a/keyboards/custommk/genesis/rev1/keymaps/default/readme.md b/keyboards/custommk/genesis/rev1/keymaps/default/readme.md index 202402d831..582f949066 100644 --- a/keyboards/custommk/genesis/rev1/keymaps/default/readme.md +++ b/keyboards/custommk/genesis/rev1/keymaps/default/readme.md @@ -3,4 +3,4 @@ This is the default layout for the Genesis Macro Pad. It assumes all 1u switches and optional rotary encoder in the top-left or top-right corner for media volume control. The top left switch activates Layer 1 which enables control of the RGB -underglow. \ No newline at end of file +underglow. diff --git a/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c b/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c index 5079628dea..aad693ef0f 100644 --- a/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c +++ b/keyboards/custommk/genesis/rev2/keymaps/default/keymap.c @@ -73,4 +73,4 @@ void keyboard_post_init_user(void) { //Enable the LED layers rgblight_layers = my_rgb_layers; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/custommk/genesis/rev2/keymaps/default/readme.md b/keyboards/custommk/genesis/rev2/keymaps/default/readme.md index 202402d831..582f949066 100644 --- a/keyboards/custommk/genesis/rev2/keymaps/default/readme.md +++ b/keyboards/custommk/genesis/rev2/keymaps/default/readme.md @@ -3,4 +3,4 @@ This is the default layout for the Genesis Macro Pad. It assumes all 1u switches and optional rotary encoder in the top-left or top-right corner for media volume control. The top left switch activates Layer 1 which enables control of the RGB -underglow. \ No newline at end of file +underglow. diff --git a/keyboards/cutie_club/novus/readme.md b/keyboards/cutie_club/novus/readme.md index 94e284e33e..5c7efa4910 100644 --- a/keyboards/cutie_club/novus/readme.md +++ b/keyboards/cutie_club/novus/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Using the default keymaps you can enter the bootloader in 2 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard -* **Physical reset button**: Press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Press the button on the back of the PCB diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json index a85126aab6..0b8949cda7 100644 --- a/keyboards/cxt_studio/12e3/keyboard.json +++ b/keyboards/cxt_studio/12e3/keyboard.json @@ -21,8 +21,8 @@ }, "encoder": { "rotary": [ - {"pin_a": "F5", "pin_b": "F6", "resolution": 4}, - {"pin_a": "E6", "pin_b": "F0", "resolution": 4}, + {"pin_a": "F5", "pin_b": "F6"}, + {"pin_a": "E6", "pin_b": "F0"}, {"pin_a": "B3", "pin_b": "B2", "resolution": 2} ] }, diff --git a/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c b/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c index 00521bc2be..8e35aba861 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c +++ b/keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c @@ -185,4 +185,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c index 4c36cd29eb..1a7f40d2e3 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c +++ b/keyboards/darkproject/kd87a_bfg_edition/keymaps/default/keymap.c @@ -66,4 +66,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { gpio_write_pin(C0, layer_state_cmp(state, 1)); return state; -}; \ No newline at end of file +}; diff --git a/keyboards/dc01/arrow/keymaps/default/readme.md b/keyboards/dc01/arrow/keymaps/default/readme.md index bc2431bc15..fa36881f46 100644 --- a/keyboards/dc01/arrow/keymaps/default/readme.md +++ b/keyboards/dc01/arrow/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default ANSI keymap for DC01 Arrow cluster -When using the arrow module individually, this keymap will take effect. When using the keyboard as a whole please edit the keymap of the left module. \ No newline at end of file +When using the arrow module individually, this keymap will take effect. When using the keyboard as a whole please edit the keymap of the left module. diff --git a/keyboards/dc01/arrow/matrix.c b/keyboards/dc01/arrow/matrix.c index 211855c300..44f0d5f8dc 100644 --- a/keyboards/dc01/arrow/matrix.c +++ b/keyboards/dc01/arrow/matrix.c @@ -48,15 +48,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -252,7 +249,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -314,12 +311,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dc01/left/matrix.c b/keyboards/dc01/left/matrix.c index 39e5be5a1d..254e49290d 100644 --- a/keyboards/dc01/left/matrix.c +++ b/keyboards/dc01/left/matrix.c @@ -52,15 +52,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -277,7 +274,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -339,12 +336,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dc01/numpad/keymaps/default/readme.md b/keyboards/dc01/numpad/keymaps/default/readme.md index 3691feb278..19cf9acdff 100644 --- a/keyboards/dc01/numpad/keymaps/default/readme.md +++ b/keyboards/dc01/numpad/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default keymap for DC01 Numpad -When using the numpad module individually, this keymap will take effect. When using the keyboard as a whole please edit the keymap of the left module. \ No newline at end of file +When using the numpad module individually, this keymap will take effect. When using the keyboard as a whole please edit the keymap of the left module. diff --git a/keyboards/dc01/numpad/keymaps/ortho_5x4/readme.md b/keyboards/dc01/numpad/keymaps/ortho_5x4/readme.md index 383e02da86..4909d7ab31 100644 --- a/keyboards/dc01/numpad/keymaps/ortho_5x4/readme.md +++ b/keyboards/dc01/numpad/keymaps/ortho_5x4/readme.md @@ -1,3 +1,3 @@ # The orthopad keymap for DC01 Numpad -When using the numpad module individually, this keymap will take effect. When using the keyboard as a whole please edit the keymap of the left module. \ No newline at end of file +When using the numpad module individually, this keymap will take effect. When using the keyboard as a whole please edit the keymap of the left module. diff --git a/keyboards/dc01/numpad/matrix.c b/keyboards/dc01/numpad/matrix.c index 73b245f56e..cfe8046c77 100644 --- a/keyboards/dc01/numpad/matrix.c +++ b/keyboards/dc01/numpad/matrix.c @@ -48,15 +48,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -252,7 +249,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -314,12 +311,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dc01/right/matrix.c b/keyboards/dc01/right/matrix.c index f9b6738145..e903edd317 100644 --- a/keyboards/dc01/right/matrix.c +++ b/keyboards/dc01/right/matrix.c @@ -46,15 +46,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -250,7 +247,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -312,12 +309,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dcpedit/masonry/keymaps/default/keymap.json b/keyboards/dcpedit/masonry/keymaps/default/keymap.json index 6da346bb91..0016ee18ac 100644 --- a/keyboards/dcpedit/masonry/keymaps/default/keymap.json +++ b/keyboards/dcpedit/masonry/keymaps/default/keymap.json @@ -18,4 +18,4 @@ "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" ] ] -} \ No newline at end of file +} diff --git a/keyboards/dcpedit/masonry/readme.md b/keyboards/dcpedit/masonry/readme.md index 9ba7a1597e..5ce29cb6d0 100644 --- a/keyboards/dcpedit/masonry/readme.md +++ b/keyboards/dcpedit/masonry/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the ESC key (top-left key) and plug in the keyboard * **Physical reset button**: On the PCB, while holding down the BOOT button, press and release the RESET button -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dcpedit/redherring/keymaps/default/keymap.c b/keyboards/dcpedit/redherring/keymaps/default/keymap.c index 3671174050..82b55e866a 100644 --- a/keyboards/dcpedit/redherring/keymaps/default/keymap.c +++ b/keyboards/dcpedit/redherring/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/dcpedit/redherring/keymaps/default/rules.mk b/keyboards/dcpedit/redherring/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/dcpedit/redherring/keymaps/default/rules.mk +++ b/keyboards/dcpedit/redherring/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dcpedit/redherring/readme.md b/keyboards/dcpedit/redherring/readme.md index 67f2bdf33d..cdc83e4529 100644 --- a/keyboards/dcpedit/redherring/readme.md +++ b/keyboards/dcpedit/redherring/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the ESC key (top-left key) and plug in the keyboard * **Physical reset button**: On the PCB, while holding down the BOOT button, press and release the RESET button -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dcpedit/redherring/redherring.c b/keyboards/dcpedit/redherring/redherring.c index b2c25eb703..92e0f32a46 100644 --- a/keyboards/dcpedit/redherring/redherring.c +++ b/keyboards/dcpedit/redherring/redherring.c @@ -88,4 +88,4 @@ bool oled_task_kb(void) { render_logo(); return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/decent/tkl/config.h b/keyboards/decent/tkl/config.h index 772d6f4a27..5315fdfca6 100644 --- a/keyboards/decent/tkl/config.h +++ b/keyboards/decent/tkl/config.h @@ -6,4 +6,4 @@ #define I2C1_SDA_PIN GP26 #define I2C1_SCL_PIN GP27 -#define OLED_FONT_H "atari-font.c" \ No newline at end of file +#define OLED_FONT_H "atari-font.c" diff --git a/keyboards/decent/tkl/keyboard.json b/keyboards/decent/tkl/keyboard.json index d5b0c972c6..81a504e800 100644 --- a/keyboards/decent/tkl/keyboard.json +++ b/keyboards/decent/tkl/keyboard.json @@ -293,4 +293,4 @@ ], "driver": "ws2812" } -} \ No newline at end of file +} diff --git a/keyboards/decent/tkl/readme.md b/keyboards/decent/tkl/readme.md index 2069268bfc..861196b9ad 100644 --- a/keyboards/decent/tkl/readme.md +++ b/keyboards/decent/tkl/readme.md @@ -76,4 +76,4 @@ When holding Fn down: * │ │ │🎨│ │ │ │ │ │ │ │ │ │ │🗘 │ * │ │ │ │ │ │ │ │ │ │㉈ │🗘 │㉏ │ */ -``` \ No newline at end of file +``` diff --git a/keyboards/deemen17/de60/readme.md b/keyboards/deemen17/de60/readme.md index c5ea64a6a6..75ac8b5834 100644 --- a/keyboards/deemen17/de60/readme.md +++ b/keyboards/deemen17/de60/readme.md @@ -14,4 +14,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (ESC/Escape) and plug in the keyboard * **Physical reset button**: Double tap the button RESET on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/delikeeb/vanana/rev1/config.h b/keyboards/delikeeb/vanana/rev1/config.h index 9728115106..5841bd563c 100644 --- a/keyboards/delikeeb/vanana/rev1/config.h +++ b/keyboards/delikeeb/vanana/rev1/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define B7_AUDIO +#define AUDIO_PIN B7 /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. * This is useful for the Windows task manager shortcut (ctrl+shift+esc). diff --git a/keyboards/delikeeb/vanana/rev2/config.h b/keyboards/delikeeb/vanana/rev2/config.h index 9728115106..5841bd563c 100644 --- a/keyboards/delikeeb/vanana/rev2/config.h +++ b/keyboards/delikeeb/vanana/rev2/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once -#define B7_AUDIO +#define AUDIO_PIN B7 /* If defined, GRAVE_ESC will always act as ESC when CTRL is held. * This is useful for the Windows task manager shortcut (ctrl+shift+esc). diff --git a/keyboards/demiurge/keymaps/default/keymap.c b/keyboards/demiurge/keymaps/default/keymap.c index dc93c4a2f1..8d9b16ae41 100755 --- a/keyboards/demiurge/keymaps/default/keymap.c +++ b/keyboards/demiurge/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -}; \ No newline at end of file +}; diff --git a/keyboards/deng/djam/djam.c b/keyboards/deng/djam/djam.c deleted file mode 100644 index 3514ff050c..0000000000 --- a/keyboards/deng/djam/djam.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2022 Leo Deng (@myst729) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - /* Key Matrix to LED Index */ - { 17, 16, 15, NO_LED, NO_LED, 7, 6, 5 }, - { 21, 17, 16, 15, 7, 6, 5, 1 }, - { 19, 18, 13, 11, 9, 4, 3, NO_LED } - }, - { - /* LED Index to Physical Position */ - // Switch LEDs - {224,14}, {224,24}, {224,33}, {212,57}, {192,57}, {192,38}, {172,38}, {152,38}, - {152,57}, {142,57}, {132,57}, {112,57}, {92,57}, {82,57}, {72,57}, - {72,38}, {52,38}, {32,38}, {32,57}, {12,57}, {0,33}, {0,24}, {0,14}, - // Underglow LEDs - {0,0}, {92,0}, {132,0}, {224,0}, {222,64}, {172,64}, {72,64}, {2,64}, - }, - { - /* LED Index to Flag */ - 2, 4, 2, 4, 4, 4, 4, 4, - 2, 4, 2, 4, 2, 4, 2, - 4, 4, 4, 4, 4, 2, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 2 - } -}; -#endif diff --git a/keyboards/deng/djam/keyboard.json b/keyboards/deng/djam/keyboard.json index a39c234bfa..51b2f45ce7 100644 --- a/keyboards/deng/djam/keyboard.json +++ b/keyboards/deng/djam/keyboard.json @@ -15,7 +15,40 @@ "solid_reactive_multinexus": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 224, "y": 14, "flags": 2}, + {"matrix": [1, 7], "x": 224, "y": 24, "flags": 4}, + {"x": 224, "y": 33, "flags": 2}, + {"matrix": [2, 6], "x": 212, "y": 57, "flags": 4}, + {"matrix": [2, 5], "x": 192, "y": 57, "flags": 4}, + {"matrix": [1, 6], "x": 192, "y": 38, "flags": 4}, + {"matrix": [1, 5], "x": 172, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 152, "y": 38, "flags": 4}, + {"x": 152, "y": 57, "flags": 2}, + {"matrix": [2, 4], "x": 142, "y": 57, "flags": 4}, + {"x": 132, "y": 57, "flags": 2}, + {"matrix": [2, 3], "x": 112, "y": 57, "flags": 4}, + {"x": 92, "y": 57, "flags": 2}, + {"matrix": [2, 2], "x": 82, "y": 57, "flags": 4}, + {"x": 72, "y": 57, "flags": 2}, + {"matrix": [1, 3], "x": 72, "y": 38, "flags": 4}, + {"matrix": [1, 2], "x": 52, "y": 38, "flags": 4}, + {"matrix": [1, 1], "x": 32, "y": 38, "flags": 4}, + {"matrix": [2, 1], "x": 32, "y": 57, "flags": 4}, + {"matrix": [2, 0], "x": 12, "y": 57, "flags": 4}, + {"x": 0, "y": 33, "flags": 2}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 92, "y": 0, "flags": 2}, + {"x": 132, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 222, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 72, "y": 64, "flags": 2}, + {"x": 2, "y": 64, "flags": 2} + ] }, "features": { "backlight": true, diff --git a/keyboards/deng/thirty/keyboard.json b/keyboards/deng/thirty/keyboard.json index da36ae19f5..394d7b427b 100644 --- a/keyboards/deng/thirty/keyboard.json +++ b/keyboards/deng/thirty/keyboard.json @@ -57,6 +57,38 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 4, "y": 4, "flags": 4}, + {"matrix": [0, 1], "x": 28, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 52, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 76, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 100, "y": 4, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 32, "flags": 4}, + {"matrix": [1, 3], "x": 76, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 52, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 60, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 60, "flags": 4}, + {"matrix": [2, 2], "x": 52, "y": 60, "flags": 4}, + {"matrix": [2, 3], "x": 76, "y": 60, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 60, "flags": 4}, + {"matrix": [5, 4], "x": 124, "y": 60, "flags": 4}, + {"matrix": [5, 3], "x": 148, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 172, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 196, "y": 60, "flags": 4}, + {"matrix": [5, 0], "x": 220, "y": 60, "flags": 4}, + {"matrix": [4, 0], "x": 220, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 196, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 172, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 148, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 124, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 124, "y": 4, "flags": 4}, + {"matrix": [3, 3], "x": 148, "y": 4, "flags": 4}, + {"matrix": [3, 2], "x": 172, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 196, "y": 4, "flags": 4}, + {"matrix": [3, 0], "x": 220, "y": 4, "flags": 4} + ], "max_brightness": 200 }, "matrix_pins": { diff --git a/keyboards/deng/thirty/thirty.c b/keyboards/deng/thirty/thirty.c index 7d49bc1b03..ce7a76c703 100644 --- a/keyboards/deng/thirty/thirty.c +++ b/keyboards/deng/thirty/thirty.c @@ -15,38 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - /* Key Matrix to LED Index */ - { 0, 1, 2, 3, 4 }, - { 9, 8, 7, 6, 5 }, - { 10, 11, 12, 13, 14 }, - { 29, 28, 27, 26, 25 }, - { 20, 21, 22, 23, 24 }, - { 19, 18, 17, 16, 15 }, - }, - { - /* LED Index to Physical Position */ - // Switch LEDs - {4,4}, {28,4}, {52,4}, {76,4}, {100,4}, - {100,32}, {76,32}, {52,32}, {28,32}, {4,32}, - {4,60}, {28,60}, {52,60}, {76,60}, {100,60}, - {124,60}, {148,60}, {172,60}, {196,60}, {220,60}, - {220,32}, {196,32}, {172,32}, {148,32}, {124,32}, - {124,4}, {148,4}, {172,4}, {196,4}, {220,4}, - // Underglow LEDs - }, - { - /* LED Index to Flag */ - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - -#endif - void board_init(void) { // Remap B11 AF to TIM2_CH4 AFIO->MAPR |= AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2; diff --git a/keyboards/densus/alveus/mx/readme.md b/keyboards/densus/alveus/mx/readme.md index 3a90c9b0f3..ea985c540f 100644 --- a/keyboards/densus/alveus/mx/readme.md +++ b/keyboards/densus/alveus/mx/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 4 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 * **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Hardware reset**: Press reset button (located on the bottom side of the PCB) \ No newline at end of file +* **Hardware reset**: Press reset button (located on the bottom side of the PCB) diff --git a/keyboards/dichotomy/matrix.c b/keyboards/dichotomy/matrix.c index a3c94275eb..0dfdac0460 100755 --- a/keyboards/dichotomy/matrix.c +++ b/keyboards/dichotomy/matrix.c @@ -34,15 +34,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #define MAIN_ROWMASK 0xFFF0; diff --git a/keyboards/dj505/picofx/keyboard.json b/keyboards/dj505/picofx/keyboard.json new file mode 100644 index 0000000000..802d4e9791 --- /dev/null +++ b/keyboards/dj505/picofx/keyboard.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "dj505", + "keyboard_name": "PicoFX", + "maintainer": "jjc1138", + "bootloader": "rp2040", + "bootloader_instructions": "Hold down the BOOTSEL button on the microcontroller when connecting the USB cable", + "features": { + "bootmagic": true, + "extrakey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["GP19", null, "GP6", "GP27", null, "GP0"], + [null, "GP10", null, null, "GP2", null], + ["GP21", null, "GP8", "GP17", null, "GP4"], + ["GP14", "GP15", null, null, null, null] + ] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "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_splash": true, + "splash": true + }, + "driver": "ws2812", + "layout": [ + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} + ], + "sleep": true + }, + "url": "https://github.com/dj505/PicoFX", + "usb": { + "device_version": "1.0.0", + "pid": "0x4658", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP22" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "P1 UL", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "P1 UR", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "P2 UL", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "P2 UR", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "P1 CN", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "P2 CN", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "P1 DL", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "P1 DR", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "P2 DL", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "P2 DR", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "Service", "matrix": [3, 0], "x": 6.5, "y": 0.5}, + {"label": "Test", "matrix": [3, 1], "x": 6.5, "y": 1.5} + ] + } + } +} diff --git a/keyboards/dj505/picofx/keymaps/allinone/keymap.json b/keyboards/dj505/picofx/keymaps/allinone/keymap.json new file mode 100644 index 0000000000..22e8b804d3 --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/allinone/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "dj505/picofx", + "keymap": "allinone", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_TAB", "KC_UP", + + "KC_X", "KC_G", + + "KC_A", "KC_D", "KC_SPC", "KC_DOWN", + + "LT(1,KC_ESC)", "KC_ENT" + ], + + [ + "KC_F1", "KC_F2", "KC_F5", "KC_F6", + + "KC_TRNS", "KC_TRNS", + + "KC_F3", "KC_F4", "KC_F7", "KC_F8", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picofx/keymaps/allinone/readme.md b/keyboards/dj505/picofx/keymaps/allinone/readme.md new file mode 100644 index 0000000000..c82751b106 --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/allinone/readme.md @@ -0,0 +1,21 @@ +# PicoFX All-in-one Keymap + +The 'allinone' keymap puts most of the buttons that you need for navigating the Pump It Up Rise menus in the main mode. If you configure the game to use those buttons for gameplay as well, then you can play the game and navigate most of the menus without having to switch modes. + +``` + Q E Tab Up + X G + A D Space Down + + Service: Esc when tapped, or temporarily activates the mode below when held + Test: Enter +``` + +When Service is held the buttons have these meanings instead: +``` + F1 F2 F5 F6 + - - + F3 F4 F7 F8 + + Test: Bootloader mode +``` diff --git a/keyboards/dj505/picofx/keymaps/default/keymap.json b/keyboards/dj505/picofx/keymaps/default/keymap.json new file mode 100644 index 0000000000..bd814f333a --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/default/keymap.json @@ -0,0 +1,16 @@ +{ + "keyboard": "dj505/picofx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "KC_ESC", "KC_ENT" + ] + ] +} diff --git a/keyboards/dj505/picofx/keymaps/default/readme.md b/keyboards/dj505/picofx/keymaps/default/readme.md new file mode 100644 index 0000000000..b3a6f482eb --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/default/readme.md @@ -0,0 +1,12 @@ +# PicoFX Default Keymap + +The default keymap matches the 'Basic 2' preset in Pump It Up Rise. In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the matching preset. + +``` + Q E R Y + S G + Z C V N + + Service: Escape + Test: Enter +``` diff --git a/keyboards/dj505/picofx/keymaps/menumode/keymap.json b/keyboards/dj505/picofx/keymaps/menumode/keymap.json new file mode 100644 index 0000000000..21b3697b42 --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/menumode/keymap.json @@ -0,0 +1,36 @@ +{ + "keyboard": "dj505/picofx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "MO(2)", "TG(1)" + ], + + [ + "KC_Q", "KC_E", "KC_TAB", "KC_UP", + + "KC_ESC", "KC_ENT", + + "KC_LEFT", "KC_RGHT", "KC_SPC", "KC_DOWN", + + "LT(2,KC_F1)", "KC_TRNS" + ], + + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picofx/keymaps/menumode/readme.md b/keyboards/dj505/picofx/keymaps/menumode/readme.md new file mode 100644 index 0000000000..74bfa8c96a --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/menumode/readme.md @@ -0,0 +1,28 @@ +# PicoFX Menu Mode Keymap + +The 'menumode' keymap is like the 'default' keymap in that it matches the 'Basic 2' preset in Pump It Up Rise, but it also includes the ability the toggle into a menu mode that provides most of the keys you need to navigate the game's menus. + +In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the 'Basic 2' preset. + +The keymap in normal mode: +``` + Q E R Y + S G + Z C V N + + Test: Toggle to menu mode +``` + +And when in menu mode: +``` + Q E Tab Up + Esc Enter + Left Right Space Down + + Service: F1 + Test: Toggle back to game mode +``` + +It might take a little bit of practice to remember where everything is in menu mode. The rule of thumb is that the layout roughly corresponds to where those controls appear on the game's song selection screen. + +In either mode, holding the Service button and pressing the Test button will put the controller into bootloader mode for installing new firmware versions. diff --git a/keyboards/dj505/picofx/readme.md b/keyboards/dj505/picofx/readme.md new file mode 100644 index 0000000000..3f72323d34 --- /dev/null +++ b/keyboards/dj505/picofx/readme.md @@ -0,0 +1,34 @@ +# dj505/picofx + +![PicoFX controller](https://i.imgur.com/YNsJPg0.png) + +PicoFX: A compact keyboard-style controller for the *Pump It Up* rhythm game series. This firmware is intended for using the controller with the [Pump It Up Rise](https://store.steampowered.com/app/2756930/PUMP_IT_UP_RISE/) home version of the game. + +* Hardware Supported: [PicoFX](https://github.com/dj505/PicoFX) +* Keyboard Maintainer: [jjc1138](https://github.com/jjc1138) + +Make example for this keyboard (after setting up your build environment): + + make dj505/picofx:default + +Flashing example for this keyboard: + + make dj505/picofx: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). + +## Keymaps + +There are three keymaps provided, or you can build your own using the instructions below. + + * [default](keymaps/default/readme.md) + * [menumode](keymaps/menumode/readme.md) + * [allinone](keymaps/allinone/readme.md) + +### Bootloader + +Put the controller in bootloader mode in one of three ways: + +* **Physical reset button**: Hold down the BOOTSEL button on the microcontroller when connecting the USB cable. +* **Bootmagic reset**: If a version of this firmware is already installed, hold down the top-left button on the keyboard when connecting the USB cable. +* **Keycode in keymap**: If a version of this firmware is already installed with the 'menumode' or 'allinone' keymap, hold down the Service button and press the Test button. Or press a button mapped to `QK_BOOT` in your own keymap. diff --git a/keyboards/dj505/picolx/keyboard.json b/keyboards/dj505/picolx/keyboard.json new file mode 100644 index 0000000000..111ccaf9fc --- /dev/null +++ b/keyboards/dj505/picolx/keyboard.json @@ -0,0 +1,115 @@ +{ + "manufacturer": "dj505", + "keyboard_name": "PicoLX", + "maintainer": "jjc1138", + "bootloader": "rp2040", + "bootloader_instructions": "Hold down the BOOTSEL button on the underside of the PCB when connecting the USB cable", + "features": { + "bootmagic": true, + "extrakey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["GP24", null, "GP22", "GP4", null, "GP0"], + [null, "GP23", null, null, "GP3", null], + ["GP19", null, "GP18", "GP2", null, "GP1"], + ["GP12", "GP13", null, null, null, null] + ] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "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_splash": true, + "splash": true + }, + "default": { + "animation": "gradient_up_down", + "hue": 176, + "speed": 254, + "val": 64 + }, + "driver": "ws2812", + "layout": [ + {"x": 112, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"matrix": [0, 5], "x": 212, "y": 18, "flags": 4}, + {"matrix": [2, 5], "x": 212, "y": 57, "flags": 4}, + {"matrix": [1, 4], "x": 174, "y": 37, "flags": 4}, + {"matrix": [2, 3], "x": 136, "y": 57, "flags": 4}, + {"matrix": [0, 3], "x": 136, "y": 18, "flags": 4}, + {"matrix": [0, 2], "x": 88, "y": 18, "flags": 4}, + {"matrix": [2, 2], "x": 88, "y": 57, "flags": 4}, + {"matrix": [1, 1], "x": 50, "y": 37, "flags": 4}, + {"matrix": [2, 0], "x": 12, "y": 57, "flags": 4}, + {"matrix": [0, 0], "x": 12, "y": 18, "flags": 4}, + {"x": 131, "y": 32, "flags": 2}, + {"x": 112, "y": 32, "flags": 2}, + {"x": 94, "y": 32, "flags": 2} + ], + "sleep": true + }, + "url": "https://github.com/dj505/PicoLX", + "usb": { + "device_version": "1.0.0", + "pid": "0x4C58", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP21" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "P1 UL", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "P1 UR", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "P2 UL", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "P2 UR", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "P1 CN", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "P2 CN", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "P1 DL", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "P1 DR", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "P2 DL", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "P2 DR", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "Service", "matrix": [3, 0], "x": 6.5, "y": 0.5}, + {"label": "Test", "matrix": [3, 1], "x": 6.5, "y": 1.5} + ] + } + } +} diff --git a/keyboards/dj505/picolx/keymaps/allinone/keymap.json b/keyboards/dj505/picolx/keymaps/allinone/keymap.json new file mode 100644 index 0000000000..87ca0fdc25 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/allinone/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "dj505/picolx", + "keymap": "allinone", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_TAB", "KC_UP", + + "KC_X", "KC_G", + + "KC_A", "KC_D", "KC_SPC", "KC_DOWN", + + "LT(1,KC_ESC)", "KC_ENT" + ], + + [ + "KC_F1", "KC_F2", "KC_F5", "KC_F6", + + "KC_TRNS", "KC_TRNS", + + "KC_F3", "KC_F4", "KC_F7", "KC_F8", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picolx/keymaps/allinone/readme.md b/keyboards/dj505/picolx/keymaps/allinone/readme.md new file mode 100644 index 0000000000..9107d8e534 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/allinone/readme.md @@ -0,0 +1,21 @@ +# PicoLX All-in-one Keymap + +The 'allinone' keymap puts most of the buttons that you need for navigating the Pump It Up Rise menus in the main mode. If you configure the game to use those buttons for gameplay as well, then you can play the game and navigate most of the menus without having to switch modes. + +``` + Q E Tab Up + X G + A D Space Down + + Service: Esc when tapped, or temporarily activates the mode below when held + Test: Enter +``` + +When Service is held the buttons have these meanings instead: +``` + F1 F2 F5 F6 + - - + F3 F4 F7 F8 + + Test: Bootloader mode +``` diff --git a/keyboards/dj505/picolx/keymaps/default/keymap.json b/keyboards/dj505/picolx/keymaps/default/keymap.json new file mode 100644 index 0000000000..31419baca9 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/default/keymap.json @@ -0,0 +1,16 @@ +{ + "keyboard": "dj505/picolx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "KC_ESC", "KC_ENT" + ] + ] +} diff --git a/keyboards/dj505/picolx/keymaps/default/readme.md b/keyboards/dj505/picolx/keymaps/default/readme.md new file mode 100644 index 0000000000..92658390b5 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/default/readme.md @@ -0,0 +1,12 @@ +# PicoLX Default Keymap + +The default keymap matches the 'Basic 2' preset in Pump It Up Rise. In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the matching preset. + +``` + Q E R Y + S G + Z C V N + + Service: Escape + Test: Enter +``` diff --git a/keyboards/dj505/picolx/keymaps/menumode/keymap.json b/keyboards/dj505/picolx/keymaps/menumode/keymap.json new file mode 100644 index 0000000000..ccf158ffa9 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/menumode/keymap.json @@ -0,0 +1,36 @@ +{ + "keyboard": "dj505/picolx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "MO(2)", "TG(1)" + ], + + [ + "KC_Q", "KC_E", "KC_TAB", "KC_UP", + + "KC_ESC", "KC_ENT", + + "KC_LEFT", "KC_RGHT", "KC_SPC", "KC_DOWN", + + "LT(2,KC_F1)", "KC_TRNS" + ], + + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picolx/keymaps/menumode/readme.md b/keyboards/dj505/picolx/keymaps/menumode/readme.md new file mode 100644 index 0000000000..d0eddd4c9c --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/menumode/readme.md @@ -0,0 +1,28 @@ +# PicoLX Menu Mode Keymap + +The 'menumode' keymap is like the 'default' keymap in that it matches the 'Basic 2' preset in Pump It Up Rise, but it also includes the ability the toggle into a menu mode that provides most of the keys you need to navigate the game's menus. + +In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the 'Basic 2' preset. + +The keymap in normal mode: +``` + Q E R Y + S G + Z C V N + + Test: Toggle to menu mode +``` + +And when in menu mode: +``` + Q E Tab Up + Esc Enter + Left Right Space Down + + Service: F1 + Test: Toggle back to game mode +``` + +It might take a little bit of practice to remember where everything is in menu mode. The rule of thumb is that the layout roughly corresponds to where those controls appear on the game's song selection screen. + +In either mode, holding the Service button and pressing the Test button will put the controller into bootloader mode for installing new firmware versions. diff --git a/keyboards/dj505/picolx/keymaps/rgbmode/keymap.json b/keyboards/dj505/picolx/keymaps/rgbmode/keymap.json new file mode 100644 index 0000000000..0c78fad6a5 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/rgbmode/keymap.json @@ -0,0 +1,36 @@ +{ + "keyboard": "dj505/picolx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "MO(2)", "TG(1)" + ], + + [ + "RM_HUEU", "RM_SATU", "RM_VALU", "RM_SPDU", + + "RM_PREV", "RM_NEXT", + + "RM_HUED", "RM_SATD", "RM_VALD", "RM_SPDD", + + "KC_TRNS", "KC_TRNS" + ], + + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picolx/keymaps/rgbmode/readme.md b/keyboards/dj505/picolx/keymaps/rgbmode/readme.md new file mode 100644 index 0000000000..476d7b32c0 --- /dev/null +++ b/keyboards/dj505/picolx/keymaps/rgbmode/readme.md @@ -0,0 +1,24 @@ +# PicoLX RGB Mode Keymap + +The 'rgbmode' keymap is like the 'default' keymap, but with a mode for experimenting with RGB settings. Your RGB settings will be retained if you use the keyboard shortcut described below to enter bootloader mode and install a different firmware version. If you hold down the top-left key when plugging in the USB cable, then that will reset your RGB settings. + +The keymap in normal mode: +``` + Q E R Y + S G + Z C V N + + Test: Toggle to RGB mode +``` + +And when in RGB mode: +``` + Hue ↑ Saturation ↑ Value ↑ Speed ↑ + Previous Next + Animation Animation + Hue ↓ Saturation ↓ Value ↓ Speed ↓ + + Test: Toggle back to game mode +``` + +In either mode, holding the Service button and pressing the Test button will put the controller into bootloader mode for installing new firmware versions. diff --git a/keyboards/dj505/picolx/readme.md b/keyboards/dj505/picolx/readme.md new file mode 100644 index 0000000000..4042aa2d6b --- /dev/null +++ b/keyboards/dj505/picolx/readme.md @@ -0,0 +1,35 @@ +# dj505/picolx + +![PicoLX controller](https://i.imgur.com/BHRRYl3.jpeg) + +PicoLX: A compact keyboard-style controller for the *Pump It Up* rhythm game series. This firmware is intended for using the controller with the [Pump It Up Rise](https://store.steampowered.com/app/2756930/PUMP_IT_UP_RISE/) home version of the game. + +* Hardware Supported: [PicoLX](https://github.com/dj505/PicoLX) +* Keyboard Maintainer: [jjc1138](https://github.com/jjc1138) + +Make example for this keyboard (after setting up your build environment): + + make dj505/picolx:default + +Flashing example for this keyboard: + + make dj505/picolx: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). + +## Keymaps + +There are four keymaps provided. + + * [default](keymaps/default/readme.md) + * [menumode](keymaps/menumode/readme.md) + * [allinone](keymaps/allinone/readme.md) + * [rgbmode](keymaps/rgbmode/readme.md) + +### Bootloader + +Put the controller in bootloader mode in one of three ways: + +* **Physical reset button**: Hold down the BOOTSEL button on the underside of the PCB (by poking something through the hole on the bottom of the case) when connecting the USB cable. +* **Bootmagic reset**: If a version of this firmware is already installed, hold down the top-left button on the keyboard when connecting the USB cable. +* **Keycode in keymap**: If a version of this firmware is already installed with the 'menumode', 'rgbmode', or 'allinone' keymap, hold down the Service button and press the Test button. Or press a button mapped to `QK_BOOT` in your own keymap. diff --git a/keyboards/dmqdesign/spin/keyboard.json b/keyboards/dmqdesign/spin/keyboard.json index dd3cbaa838..374fb7d7de 100644 --- a/keyboards/dmqdesign/spin/keyboard.json +++ b/keyboards/dmqdesign/spin/keyboard.json @@ -49,19 +49,19 @@ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, {"matrix": [2, 0], "x": 2, "y": 0}, - {"matrix": [2, 4], "x": 3.5, "y": 0}, + {"matrix": [2, 4], "x": 3.5, "y": 0, "encoder": 0}, {"matrix": [0, 1], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [2, 1], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1.5}, + {"matrix": [1, 4], "x": 3.5, "y": 1.5, "encoder": 1}, {"matrix": [0, 2], "x": 0, "y": 2}, {"matrix": [1, 2], "x": 1, "y": 2}, {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [0, 4], "x": 3.5, "y": 3}, + {"matrix": [0, 4], "x": 3.5, "y": 3, "encoder": 2}, {"matrix": [0, 3], "x": 0, "y": 3}, {"matrix": [1, 3], "x": 1, "y": 3}, {"matrix": [2, 3], "x": 2, "y": 3} diff --git a/keyboards/dnworks/frltkl/readme.md b/keyboards/dnworks/frltkl/readme.md index cc9946284a..c8119ae7c9 100644 --- a/keyboards/dnworks/frltkl/readme.md +++ b/keyboards/dnworks/frltkl/readme.md @@ -22,4 +22,4 @@ 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 `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dnworks/numpad/keyboard.json b/keyboards/dnworks/numpad/keyboard.json index 26fbcbf146..e89c180ee6 100644 --- a/keyboards/dnworks/numpad/keyboard.json +++ b/keyboards/dnworks/numpad/keyboard.json @@ -70,4 +70,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/dnworks/numpad/readme.md b/keyboards/dnworks/numpad/readme.md index 080ced6f77..d2bf3016dc 100644 --- a/keyboards/dnworks/numpad/readme.md +++ b/keyboards/dnworks/numpad/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top left key and plug in the keyboard * **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dnworks/sbl/readme.md b/keyboards/dnworks/sbl/readme.md index 0c6569f125..420ba8f039 100644 --- a/keyboards/dnworks/sbl/readme.md +++ b/keyboards/dnworks/sbl/readme.md @@ -24,4 +24,4 @@ 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**: Short the 'USB_BOOT' button and plug in keyboard or briefly short the `RESET` and `GND` pads on the SWD header twice -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/dnworks/tkl87/readme.md b/keyboards/dnworks/tkl87/readme.md index 121cdccddf..ffeec62612 100644 --- a/keyboards/dnworks/tkl87/readme.md +++ b/keyboards/dnworks/tkl87/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down escape and plug in the keyboard * **Physical reset button**: Short the 'USB_BOOT' button and plug in keyboard or press the 'RESET' button twice with the keyboard plugged in. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/do60/readme.md b/keyboards/do60/readme.md index c4122361f2..b384f3aa35 100644 --- a/keyboards/do60/readme.md +++ b/keyboards/do60/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make do60:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/doio/kb03/kb03.c b/keyboards/doio/kb03/kb03.c index 9368bc5d41..0d34c370df 100644 --- a/keyboards/doio/kb03/kb03.c +++ b/keyboards/doio/kb03/kb03.c @@ -6,32 +6,6 @@ #ifdef RGB_MATRIX_ENABLE -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case RM_TOGG: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/doio/kb03/keyboard.json b/keyboards/doio/kb03/keyboard.json index d2a214c92f..a3e77369fc 100644 --- a/keyboards/doio/kb03/keyboard.json +++ b/keyboards/doio/kb03/keyboard.json @@ -6,7 +6,7 @@ "diode_direction": "COL2ROW", "encoder": { "rotary": [ - {"pin_a": "B5", "pin_b": "B6", "resolution": 4}, + {"pin_a": "B5", "pin_b": "B6"}, {"pin_a": "A2", "pin_b": "A1", "resolution": 2} ] }, diff --git a/keyboards/doio/kb04/keyboard.json b/keyboards/doio/kb04/keyboard.json index ea5c58c71c..611a4c7156 100644 --- a/keyboards/doio/kb04/keyboard.json +++ b/keyboards/doio/kb04/keyboard.json @@ -106,4 +106,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/doio/kb04/keymaps/default/rules.mk b/keyboards/doio/kb04/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/doio/kb04/keymaps/default/rules.mk +++ b/keyboards/doio/kb04/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/doio/kb09/keyboard.json b/keyboards/doio/kb09/keyboard.json index a9c0e2a579..a816866e98 100644 --- a/keyboards/doio/kb09/keyboard.json +++ b/keyboards/doio/kb09/keyboard.json @@ -117,4 +117,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/doio/kb38/kb38.c b/keyboards/doio/kb38/kb38.c index 2eaf62fa73..907b357289 100644 --- a/keyboards/doio/kb38/kb38.c +++ b/keyboards/doio/kb38/kb38.c @@ -66,4 +66,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/doio/kb38/rgb_matrix_kb.inc b/keyboards/doio/kb38/rgb_matrix_kb.inc index 6e672c889d..c89aad47ec 100644 --- a/keyboards/doio/kb38/rgb_matrix_kb.inc +++ b/keyboards/doio/kb38/rgb_matrix_kb.inc @@ -24,4 +24,4 @@ static bool trans(effect_params_t* params) { return rgb_matrix_check_finished_leds(led_max); } -#endif \ No newline at end of file +#endif diff --git a/keyboards/doio/kb3x/keyboard.json b/keyboards/doio/kb3x/keyboard.json index eb9e843745..b8ad0541ab 100644 --- a/keyboards/doio/kb3x/keyboard.json +++ b/keyboards/doio/kb3x/keyboard.json @@ -121,4 +121,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/donutcables/readme.md b/keyboards/donutcables/readme.md index d68b6a743c..9e39aefcf0 100644 --- a/keyboards/donutcables/readme.md +++ b/keyboards/donutcables/readme.md @@ -9,4 +9,4 @@ Website: https://donutcables.com/ Email: contact@donutcables.com Reddit: /u/donutcat_cables Geekhack/DeskThority: donutcat -Discord: @donutcat on the #mechkeys Discord \ No newline at end of file +Discord: @donutcat on the #mechkeys Discord diff --git a/keyboards/donutcables/scrabblepad/keymaps/default/readme.md b/keyboards/donutcables/scrabblepad/keymaps/default/readme.md index 4dca7ad272..3f9aeb7a4b 100644 --- a/keyboards/donutcables/scrabblepad/keymaps/default/readme.md +++ b/keyboards/donutcables/scrabblepad/keymaps/default/readme.md @@ -3,4 +3,4 @@ This is the default keymap for the ScrabblePad. On each row, each key is used to spell out each character in -the following string: " scrabblepad ". \ No newline at end of file +the following string: " scrabblepad ". diff --git a/keyboards/doro67/readme.md b/keyboards/doro67/readme.md index 1648fbde57..d35d2f0a4f 100644 --- a/keyboards/doro67/readme.md +++ b/keyboards/doro67/readme.md @@ -9,4 +9,4 @@ There were 3 different PCBs available for this group buy. **Regular:** PCB made for the China GB which only had 1 layout. **Multi:** PCB made for the international GB comprising of multiple layouts. While several layouts were possible, layout was determined by the integrated plate layout chosen by the customer. -**RGB:** PCB made for the international GB which had an identical switch matrix and layout to the regular PCB, with the addition of per key RGB LEDs. \ No newline at end of file +**RGB:** PCB made for the international GB which had an identical switch matrix and layout to the regular PCB, with the addition of per key RGB LEDs. diff --git a/keyboards/doro67/regular/keymaps/default/readme.md b/keyboards/doro67/regular/keymaps/default/readme.md index 0af057d780..ab273cbc41 100644 --- a/keyboards/doro67/regular/keymaps/default/readme.md +++ b/keyboards/doro67/regular/keymaps/default/readme.md @@ -2,4 +2,4 @@ **THIS IS THE DEFAULT KEYMAP DIRECTORY (AVAILABILITY: CHINA GB ONLY)** If you are a non-china buyer, you probably have the multi PCB or rgb PCB. -Please look at the "multi" and "rgb" readme files. \ No newline at end of file +Please look at the "multi" and "rgb" readme files. diff --git a/keyboards/doro67/rgb/keyboard.json b/keyboards/doro67/rgb/keyboard.json index de95db63d6..46f1d775ab 100644 --- a/keyboards/doro67/rgb/keyboard.json +++ b/keyboards/doro67/rgb/keyboard.json @@ -51,7 +51,76 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/doro67/rgb/keymaps/default/readme.md b/keyboards/doro67/rgb/keymaps/default/readme.md index eb5c49419d..857cb12148 100644 --- a/keyboards/doro67/rgb/keymaps/default/readme.md +++ b/keyboards/doro67/rgb/keymaps/default/readme.md @@ -4,4 +4,4 @@ The "rgb" directory includes the keymap for the RGB PCB. The multi-layout PCB and RGB pcb were the only two options available to NON-china buyers. -If you purchased a non-rgb PCB, please see the 'multi' directory. \ No newline at end of file +If you purchased a non-rgb PCB, please see the 'multi' directory. diff --git a/keyboards/doro67/rgb/rgb.c b/keyboards/doro67/rgb/rgb.c deleted file mode 100644 index 280c1b6774..0000000000 --- a/keyboards/doro67/rgb/rgb.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2019 MechMerlin - * - * 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 "quantum.h" - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, 61, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 225, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 225, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 225, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, { 225, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; diff --git a/keyboards/dotlen/queue/keyboard.json b/keyboards/dotlen/queue/keyboard.json new file mode 100644 index 0000000000..3dd3807194 --- /dev/null +++ b/keyboards/dotlen/queue/keyboard.json @@ -0,0 +1,187 @@ +{ + "manufacturer": "DotLen", + "keyboard_name": "Queue.Len()", + "maintainer": "lental", + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B0", "pin_b": "B7"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "E6"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "https://github.com/lental/keyboard-firmware", + "usb": { + "device_version": "0.0.1", + "pid": "0x000A", + "vid": "0xFACE" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_triple_space" + }, + "layouts": { + "LAYOUT_standard_space": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "split", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "rotary", "matrix": [2, 14], "x": 15, "y": 0, "encoder":0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Bksp", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "pgup", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "pgup", "matrix": [2, 13], "x": 15, "y": 2}, + {"label": "split", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "pgup", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 6], "x": 10, "y": 4}, + {"label": "Win", "matrix": [4, 7], "x": 11, "y": 4}, + {"label": "Ctrl", "matrix": [4, 8], "x": 12, "y": 4}, + {"label": "left", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "down", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "right", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_triple_space": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "split", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "rotary", "matrix": [2, 14], "x": 15, "y": 0, "encoder":0}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "Bksp", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "pgup", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "pgup", "matrix": [2, 13], "x": 15, "y": 2}, + {"label": "split", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Up", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "pgup", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 7.25, "y": 4, "w": 2.75}, + {"label": "Alt", "matrix": [4, 6], "x": 10, "y": 4}, + {"label": "Win", "matrix": [4, 7], "x": 11, "y": 4}, + {"label": "Ctrl", "matrix": [4, 8], "x": 12, "y": 4}, + {"label": "left", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "down", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "right", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/dotlen/queue/keymaps/default/keymap.c b/keyboards/dotlen/queue/keymaps/default/keymap.c new file mode 100644 index 0000000000..74f4cc59c2 --- /dev/null +++ b/keyboards/dotlen/queue/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2025 lental +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _BL, + _FL, + _AL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BL] = LAYOUT_all( + KC_GRAVE, 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_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, 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, MO(_FL), KC_Z , KC_X, KC_C , KC_V , KC_B, KC_N , KC_M , KC_COMM, KC_DOT, KC_SLASH, KC_RSFT , KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC,KC_SPC, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[_FL] = LAYOUT_all( + KC_TRNS, 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_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_AL), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + +[_AL] = LAYOUT_all( + QK_BOOT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) + +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [_FL] = { ENCODER_CCW_CW(_______, _______)}, + [_AL] = { ENCODER_CCW_CW(_______, _______)} +}; +#endif diff --git a/keyboards/dotlen/queue/readme.md b/keyboards/dotlen/queue/readme.md new file mode 100644 index 0000000000..7929ce6ba6 --- /dev/null +++ b/keyboards/dotlen/queue/readme.md @@ -0,0 +1,28 @@ +# Queue.len() + +![Queue.len()](https://i.imgur.com/8JKbm6P.png) + +A 65% keyboard with multiple layout support. + +* Keyboard Maintainer: [Lental](https://github.com/lental) +* Hardware Supported: Custom PCB +* Hardware Availability: Private Group Buy +* Keyboard Layout Editor [Link](https://www.keyboard-layout-editor.com/#/gists/d54fc38f606ce3e990a88044e9b71858) + +Make example for this keyboard (after setting up your build environment): + + make dotlen/queue:default + +Flashing example for this keyboard: + + make dotlen/queue: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/dotmod/dymium65/dymium65.c b/keyboards/dotmod/dymium65/dymium65.c index 45eaa0251c..fd3bab633e 100644 --- a/keyboards/dotmod/dymium65/dymium65.c +++ b/keyboards/dotmod/dymium65/dymium65.c @@ -18,30 +18,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, NO_LED}, - {28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, NO_LED, NO_LED}, - {29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED, 41, 14, 42}, - {55, NO_LED, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED, 44, 43, NO_LED}, - {56, 57, 58, NO_LED, NO_LED, NO_LED, 59, NO_LED, NO_LED, 60, 61, NO_LED, 62, 63, 64, 65} - }, { - {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0},{196, 0}, - {224, 16},{196, 16},{182, 16},{168, 16},{154, 16},{140, 16},{126, 16},{112, 16}, {98, 16}, {84, 16}, {70, 16}, {56, 16}, {42, 16} ,{28, 16}, {14, 16}, - {14, 32}, {28, 32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {196, 32}, {224, 32}, - {224, 48}, {196, 48},{168, 48},{154, 48},{140, 48},{126, 48},{112, 48}, {98, 48}, {84, 48}, {70, 48}, {56, 48}, {42, 48}, {14, 48}, - {14, 64}, {28, 64}, {42, 64}, {98, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64},{196, 64}, {224, 64} - }, { - 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - 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; diff --git a/keyboards/dotmod/dymium65/keyboard.json b/keyboards/dotmod/dymium65/keyboard.json index a76bc91cd6..8ef9587489 100644 --- a/keyboards/dotmod/dymium65/keyboard.json +++ b/keyboards/dotmod/dymium65/keyboard.json @@ -68,6 +68,74 @@ "solid_reactive_nexus": true, "splash": true }, + "layout": [ + {"matrix": [0, 0], "x": 14, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 42, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 0, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 0, "flags": 4}, + {"matrix": [1, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 196, "y": 0, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 16, "flags": 4}, + {"matrix": [2, 12], "x": 182, "y": 16, "flags": 4}, + {"matrix": [2, 11], "x": 168, "y": 16, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 16, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 16, "flags": 4}, + {"matrix": [2, 8], "x": 126, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 14, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 14, "y": 32, "flags": 12}, + {"matrix": [3, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 32, "flags": 4}, + {"matrix": [3, 6], "x": 98, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 126, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 140, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 32, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 32, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 196, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 140, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 126, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 98, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 70, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 56, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 14, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 14, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 28, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 98, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 140, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 154, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 182, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 4} + ], "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/dotmod/dymium65/keymaps/default/rules.mk b/keyboards/dotmod/dymium65/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/dotmod/dymium65/keymaps/default/rules.mk +++ b/keyboards/dotmod/dymium65/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/dp60/readme.md b/keyboards/dp60/readme.md index d1ea24d603..a1bfd4fa68 100644 --- a/keyboards/dp60/readme.md +++ b/keyboards/dp60/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make dp60:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/draculad/keyboard.json b/keyboards/draculad/keyboard.json index 9c21b2a97d..f4464da35f 100644 --- a/keyboards/draculad/keyboard.json +++ b/keyboards/draculad/keyboard.json @@ -39,7 +39,7 @@ "encoder": { "right": { "rotary": [ - {"pin_a": "B2", "pin_b": "B6", "resolution": 4}, + {"pin_a": "B2", "pin_b": "B6"}, {"pin_a": "B4", "pin_b": "B5", "resolution": 1} ] } diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h index 2dfae36a49..4499054785 100644 --- a/keyboards/drop/alt/v2/config.h +++ b/keyboards/drop/alt/v2/config.h @@ -18,5 +18,4 @@ #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_MATRIX_CYCLE_ZONES_ENABLE #define RGB_MATRIX_CAPS_LOCK_INDEX 30 diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h index c0a259492b..297e297abe 100644 --- a/keyboards/drop/ctrl/v2/config.h +++ b/keyboards/drop/ctrl/v2/config.h @@ -18,5 +18,4 @@ #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_MATRIX_CYCLE_ZONES_ENABLE #define RGB_MATRIX_CAPS_LOCK_INDEX 50 diff --git a/keyboards/drop/lib/common.c b/keyboards/drop/lib/common.c index 53fa70882e..a4300b4e8e 100644 --- a/keyboards/drop/lib/common.c +++ b/keyboards/drop/lib/common.c @@ -19,35 +19,4 @@ bool rgb_matrix_indicators_kb(void) { return true; } # endif - -# ifdef RGB_MATRIX_CYCLE_ZONES_ENABLE -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - - if (!record->event.pressed) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - break; - case LED_FLAG_UNDERGLOW: - rgb_matrix_set_flags(LED_FLAG_NONE); - break; - default: - rgb_matrix_set_flags(LED_FLAG_ALL); - break; - } - return false; - } - } - return true; -}; -# endif - #endif diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h index 448d223d48..539f3d5714 100644 --- a/keyboards/drop/sense75/config.h +++ b/keyboards/drop/sense75/config.h @@ -13,5 +13,4 @@ #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ -#define RGB_MATRIX_CYCLE_ZONES_ENABLE #define RGB_MATRIX_CAPS_LOCK_INDEX 62 diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h index e912e3805f..dc3b171868 100644 --- a/keyboards/drop/shift/v2/config.h +++ b/keyboards/drop/shift/v2/config.h @@ -18,5 +18,3 @@ #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC #define IS31FL3733_I2C_ADDRESS_3 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ - -#define RGB_MATRIX_CYCLE_ZONES_ENABLE diff --git a/keyboards/dtisaac/cg108/keymaps/default/keymap.c b/keyboards/dtisaac/cg108/keymaps/default/keymap.c index dbd9b3e4eb..bfc748f01e 100644 --- a/keyboards/dtisaac/cg108/keymaps/default/keymap.c +++ b/keyboards/dtisaac/cg108/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PCMM, KC_PDOT, KC_PENT ) -}; \ No newline at end of file +}; diff --git a/keyboards/dtisaac/dosa40rgb/dosa40rgb.c b/keyboards/dtisaac/dosa40rgb/dosa40rgb.c deleted file mode 100644 index 35ae8eb018..0000000000 --- a/keyboards/dtisaac/dosa40rgb/dosa40rgb.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 DTIsaac - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, - {23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, - {41, 40, 39, NO_LED, 38, NO_LED, 37, 36, 35, 34, 11} -}, { - //LED Index to Physical Positon - { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 203, 0}, { 224, 0}, - {203, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21}, - { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 203,42}, - {203, 64}, {183, 64}, {162,64 }, {122, 64}, { 81,64}, { 40, 64}, { 20, 64}, { 0, 64}, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, -} }; - -#endif \ No newline at end of file diff --git a/keyboards/dtisaac/dosa40rgb/keyboard.json b/keyboards/dtisaac/dosa40rgb/keyboard.json index 4f5522947a..29a63e80f3 100644 --- a/keyboards/dtisaac/dosa40rgb/keyboard.json +++ b/keyboards/dtisaac/dosa40rgb/keyboard.json @@ -62,6 +62,50 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [3, 10], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 1}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 1}, + {"matrix": [3, 9], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 122, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1} + ], "max_brightness": 150, "react_on_keyup": true }, diff --git a/keyboards/duck/lightsaver/lightsaver.c b/keyboards/duck/lightsaver/lightsaver.c index 60d21a1bae..62006c6e09 100644 --- a/keyboards/duck/lightsaver/lightsaver.c +++ b/keyboards/duck/lightsaver/lightsaver.c @@ -55,4 +55,4 @@ bool led_update_kb(led_t led_state) { indicator_leds_set(leds); } return res; -} \ No newline at end of file +} diff --git a/keyboards/duck/octagon/keymaps/default/keymap.c b/keyboards/duck/octagon/keymaps/default/keymap.c index 21b4743bf3..a82c6c9e40 100644 --- a/keyboards/duck/octagon/keymaps/default/keymap.c +++ b/keyboards/duck/octagon/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/duck/tcv3/keymaps/default/keymap.c b/keyboards/duck/tcv3/keymaps/default/keymap.c index f56db0fe85..f0d2560eda 100644 --- a/keyboards/duck/tcv3/keymaps/default/keymap.c +++ b/keyboards/duck/tcv3/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/dumbpad/v3x/keyboard.json b/keyboards/dumbpad/v3x/keyboard.json index 58b8da5b3a..0e1c5bc791 100644 --- a/keyboards/dumbpad/v3x/keyboard.json +++ b/keyboards/dumbpad/v3x/keyboard.json @@ -36,6 +36,24 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 224, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 149, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 149, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 149, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 0, "y": 64, "flags": 4} + ], "timeout": 300000, "sleep": true }, diff --git a/keyboards/dumbpad/v3x/v3x.c b/keyboards/dumbpad/v3x/v3x.c index 181e9d4a0d..ebc829d91a 100644 --- a/keyboards/dumbpad/v3x/v3x.c +++ b/keyboards/dumbpad/v3x/v3x.c @@ -16,36 +16,6 @@ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = {{// Key Matrix to LED Index - {NO_LED, 0, 1, 2, 3}, - {NO_LED, 7, 6, 5, 4}, - {NO_LED, 8, 9, 10, 11}, - {NO_LED, 15, 14, 13, 12}}, - {// LED Index to Physical Position - {0, 0}, - {75, 0}, - {149, 0}, - {224, 0}, - - {224, 21}, - {149, 21}, - {75, 21}, - {0, 21}, - - {0, 43}, - {75, 43}, - {149, 43}, - {224, 43}, - - {224, 64}, - {149, 64}, - {75, 64}, - {0, 64}}, - {// LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}}; -#endif - void keyboard_pre_init_kb(void) { // Set LED IO as outputs gpio_set_pin_output(LED_00); diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c index 5d08163109..a0f5126bf6 100644 --- a/keyboards/durgod/dgk6x/galaxy/galaxy.c +++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c @@ -1,4 +1,4 @@ -/* Copyright 2021 Don Kjer +/* Copyright 2021 Don Kjer * * 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 @@ -116,27 +116,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS14, SW5_CS14, SW4_CS14}, // Down {1, SW6_CS15, SW5_CS15, SW4_CS15} // Right }; - -led_config_t g_led_config = {{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, NO_LED }, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, 58, 59, NO_LED }, - { 60, NO_LED, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED }, - { 74, 75, 76, NO_LED, NO_LED, NO_LED, 77, NO_LED, NO_LED, 78, 79, 80, 81, 82, 83, NO_LED } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, { 240, 0 }, - { 0, 13 }, { 16, 13 }, { 32, 13 }, { 48, 13 }, { 64, 13 }, { 80, 13 }, { 96, 13 }, { 112, 13 }, { 128, 13 }, { 144, 13 }, { 160, 13 }, { 176, 13 }, { 192, 13 }, { 216, 13 }, { 240, 13 }, - { 4, 26 }, { 24, 26 }, { 40, 26 }, { 56, 26 }, { 72, 26 }, { 88, 26 }, { 104, 26 }, { 120, 26 }, { 136, 26 }, { 152, 26 }, { 168, 26 }, { 184, 26 }, { 200, 26 }, { 220, 26 }, { 240, 26 }, - { 6, 38 }, { 28, 38 }, { 44, 38 }, { 60, 38 }, { 76, 38 }, { 92, 38 }, { 108, 38 }, { 124, 38 }, { 140, 38 }, { 156, 38 }, { 172, 38 }, { 188, 38 }, { 214, 38 }, { 240, 38 }, - { 10, 51 }, { 36, 51 }, { 52, 51 }, { 68, 51 }, { 84, 51 }, { 100, 51 }, { 116, 51 }, { 132, 51 }, { 148, 51 }, { 164, 51 }, { 180, 51 }, { 202, 51 }, { 224, 51 }, { 240, 51 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4 -}}; #endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/durgod/dgk6x/galaxy/keyboard.json b/keyboards/durgod/dgk6x/galaxy/keyboard.json index 4f80ef9d51..7421f70481 100644 --- a/keyboards/durgod/dgk6x/galaxy/keyboard.json +++ b/keyboards/durgod/dgk6x/galaxy/keyboard.json @@ -13,6 +13,94 @@ "rows": ["A0", "A1", "A2", "A3", "A4", "A5"] }, "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "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": 120, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 135, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 150, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 180, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 13, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 43, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 58, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 73, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 88, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 163, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 178, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 10, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 36, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 51, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 66, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 111, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 141, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 156, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 171, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 51, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 51, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 98, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 149, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["75_ansi"], "layouts": { "LAYOUT_75_ansi": { diff --git a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c index d092310814..d62acf1bc3 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c +++ b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c @@ -1,4 +1,4 @@ -/* Copyright 2021 Jessica Sullivan and Don Kjer +/* Copyright 2021 Jessica Sullivan and Don Kjer * * 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 @@ -100,24 +100,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW3_CS14, SW2_CS14, SW1_CS14}, // DOWN {1, SW3_CS15, SW2_CS15, SW1_CS15} // RIGHT }; - -led_config_t g_led_config = {{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, { 240, 0 }, - { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, { 240, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 214, 32 }, { 240, 32 }, - { 10, 48 }, { 36, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 202, 48 }, { 224, 48 }, { 240, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4 -}}; #endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/durgod/dgk6x/hades_ansi/keyboard.json b/keyboards/durgod/dgk6x/hades_ansi/keyboard.json index 00cfcdc5f0..7a41352d20 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/keyboard.json +++ b/keyboards/durgod/dgk6x/hades_ansi/keyboard.json @@ -13,6 +13,78 @@ "rows": ["A0", "A1", "A2", "A3", "A4"] }, "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 43, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 58, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 73, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 88, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 118, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 133, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 163, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 66, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 81, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 111, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 126, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 141, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 156, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 171, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 38, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 98, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 149, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["65_ansi"], "layouts": { "LAYOUT_65_ansi": { diff --git a/keyboards/durgod/dgk6x/readme.md b/keyboards/durgod/dgk6x/readme.md index a14dfcb9f4..58ba599069 100644 --- a/keyboards/durgod/dgk6x/readme.md +++ b/keyboards/durgod/dgk6x/readme.md @@ -11,7 +11,8 @@ This DGK6X code is shared between the ANSI variants of Venus, Hades and Galaxy k ### Build Instructions for building the Venus, Hades and Galaxy firmware can be found here: -* [Venus](venus/readme.md) +* [Venus ANSI](venus_ansi/readme.md) +* [Venus ISO](venus_iso/readme.md) * [Hades ANSI](hades_ansi/readme.md) * [Hades ISO](hades_iso/readme.md) * [Galaxy](galaxy/readme.md) diff --git a/keyboards/durgod/dgk6x/venus/keyboard.json b/keyboards/durgod/dgk6x/venus/keyboard.json deleted file mode 100644 index cc7b321e23..0000000000 --- a/keyboards/durgod/dgk6x/venus/keyboard.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "keyboard_name": "DURGOD Venus (QMK)", - "manufacturer": "Hoksi Technology", - "url": "https://www.amazon.com/dp/B07XFP5MMZ", - "maintainer": "J-Sully", - "usb": { - "vid": "0xD60D", - "pid": "0x7EC5", - "device_version": "0.0.1" - }, - "matrix_pins": { - "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"], - "rows": ["A0", "A1", "A2", "A3", "A4"] - }, - "diode_direction": "ROW2COL", - "community_layouts": ["60_ansi"], - "layouts": { - "LAYOUT_60_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, "w": 2}, - - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, - {"matrix": [1, 1], "x": 1.5, "y": 1}, - {"matrix": [1, 2], "x": 2.5, "y": 1}, - {"matrix": [1, 3], "x": 3.5, "y": 1}, - {"matrix": [1, 4], "x": 4.5, "y": 1}, - {"matrix": [1, 5], "x": 5.5, "y": 1}, - {"matrix": [1, 6], "x": 6.5, "y": 1}, - {"matrix": [1, 7], "x": 7.5, "y": 1}, - {"matrix": [1, 8], "x": 8.5, "y": 1}, - {"matrix": [1, 9], "x": 9.5, "y": 1}, - {"matrix": [1, 10], "x": 10.5, "y": 1}, - {"matrix": [1, 11], "x": 11.5, "y": 1}, - {"matrix": [1, 12], "x": 12.5, "y": 1}, - {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, - - {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, - {"matrix": [2, 1], "x": 1.75, "y": 2}, - {"matrix": [2, 2], "x": 2.75, "y": 2}, - {"matrix": [2, 3], "x": 3.75, "y": 2}, - {"matrix": [2, 4], "x": 4.75, "y": 2}, - {"matrix": [2, 5], "x": 5.75, "y": 2}, - {"matrix": [2, 6], "x": 6.75, "y": 2}, - {"matrix": [2, 7], "x": 7.75, "y": 2}, - {"matrix": [2, 8], "x": 8.75, "y": 2}, - {"matrix": [2, 9], "x": 9.75, "y": 2}, - {"matrix": [2, 10], "x": 10.75, "y": 2}, - {"matrix": [2, 11], "x": 11.75, "y": 2}, - {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, - - {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, - {"matrix": [3, 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": 2.75}, - - {"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, 9], "x": 10, "y": 4, "w": 1.25}, - {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, - {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, - {"matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} - ] - } - } -} diff --git a/keyboards/durgod/dgk6x/venus/config.h b/keyboards/durgod/dgk6x/venus_ansi/config.h similarity index 100% rename from keyboards/durgod/dgk6x/venus/config.h rename to keyboards/durgod/dgk6x/venus_ansi/config.h diff --git a/keyboards/durgod/dgk6x/venus_ansi/keyboard.json b/keyboards/durgod/dgk6x/venus_ansi/keyboard.json new file mode 100644 index 0000000000..a32a5b1065 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_ansi/keyboard.json @@ -0,0 +1,153 @@ +{ + "keyboard_name": "DURGOD Venus (QMK)", + "manufacturer": "Hoksi Technology", + "url": "https://www.amazon.com/dp/B07XFP5MMZ", + "maintainer": "J-Sully", + "usb": { + "vid": "0xD60D", + "pid": "0x7EC5", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"], + "rows": ["A0", "A1", "A2", "A3", "A4"] + }, + "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 222, "y": 64, "flags": 1} + ] + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_60_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, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 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": 2.75}, + + {"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, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json similarity index 98% rename from keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json rename to keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json index 8acd302a05..be4d435839 100644 --- a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/dgk6x/venus", + "keyboard": "durgod/dgk6x/venus_ansi", "keymap": "default", "layout": "LAYOUT_60_ansi", "layers": [ diff --git a/keyboards/durgod/dgk6x/venus/keymaps/default/readme.md b/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/readme.md similarity index 100% rename from keyboards/durgod/dgk6x/venus/keymaps/default/readme.md rename to keyboards/durgod/dgk6x/venus_ansi/keymaps/default/readme.md diff --git a/keyboards/durgod/dgk6x/venus/readme.md b/keyboards/durgod/dgk6x/venus_ansi/readme.md similarity index 90% rename from keyboards/durgod/dgk6x/venus/readme.md rename to keyboards/durgod/dgk6x/venus_ansi/readme.md index 9e37d49633..d8009dcb22 100644 --- a/keyboards/durgod/dgk6x/venus/readme.md +++ b/keyboards/durgod/dgk6x/venus_ansi/readme.md @@ -12,11 +12,11 @@ This is a standard off-the-shelf Durgod Venus 60% ANSI Layout keyboard with RGB Make command example for this keyboard (after setting up your build environment): - make durgod/venus:default + make durgod/dgk6x/venus_ansi:default Flashing example for this keyboard: - make durgod/venus:default:flash + make durgod/dgk6x/venus_ansi:default:flash See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c similarity index 68% rename from keyboards/durgod/dgk6x/venus/venus.c rename to keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c index 5433266e3b..30735fc80e 100644 --- a/keyboards/durgod/dgk6x/venus/venus.c +++ b/keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c @@ -92,24 +92,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW3_CS12, SW2_CS12, SW1_CS12}, // RCtrl/Fn2 {1, SW3_CS13, SW2_CS13, SW1_CS13}, // LEFT/RCtrl }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, NO_LED, NO_LED }, - { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, 60, NO_LED } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, - { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 214, 32 }, - { 10, 48 }, { 36, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 }, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 -} }; #endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h b/keyboards/durgod/dgk6x/venus_iso/config.h similarity index 90% rename from keyboards/handwired/hnah40rgb/keymaps/ansi/config.h rename to keyboards/durgod/dgk6x/venus_iso/config.h index 66cd76a901..f23b355905 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h +++ b/keyboards/durgod/dgk6x/venus_iso/config.h @@ -1,4 +1,4 @@ -/* Copyright 2019 HnahKB +/* Copyright 2021 Jessica Sullivan and Don Kjer * * 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 @@ -15,4 +15,5 @@ */ #pragma once -#define ansi \ No newline at end of file + +#define CAPS_LED 29 diff --git a/keyboards/durgod/dgk6x/venus_iso/keyboard.json b/keyboards/durgod/dgk6x/venus_iso/keyboard.json new file mode 100644 index 0000000000..46b88427eb --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/keyboard.json @@ -0,0 +1,151 @@ +{ + "manufacturer": "Hoksi Technology", + "keyboard_name": "DURGOD Venus (QMK)", + "maintainer": "pascalhansjosten", + "diode_direction": "ROW2COL", + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"], + "rows": ["A0", "A1", "A2", "A3", "A4"] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 204, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 220, "y": 24, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 19, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 222, "y": 64, "flags": 4} + ] + }, + "url": "https://www.amazon.com/dp/B07XFP5MMZ", + "usb": { + "device_version": "0.0.1", + "pid": "0x7EC6", + "vid": "0xD60D" + }, + "community_layouts": ["60_iso"], + "layouts": { + "LAYOUT_60_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "@", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "#", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "CapsLock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K45", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn1", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Fn2", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json new file mode 100644 index 0000000000..da53f1d9b5 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json @@ -0,0 +1,37 @@ +{ + "keyboard": "durgod/dgk6x/venus_iso", + "keymap": "default", + "layout": "LAYOUT_60_iso", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "RSFT_T(KC_UP)", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT","LT(1,KC_LEFT)","LT(2,KC_DOWN)","RCTL_T(KC_RIGHT)" + ], + [ + "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_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PSCR", "KC_INS", "KC_HOME", "KC_END", "KC_DEL", + "KC_TRNS", "KC_LEFT", "KC_DOWN", "KC_RIGHT","KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "KC_PGDN", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS" + ], + [ + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", + "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_SPDU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS", "KC_TRNS" + ], + [ + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "RM_SATU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "RM_HUED", "RM_SATD", "RM_HUEU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "KC_TRNS", "KC_TRNS", "XXXXXXX" + ] + ], + "author":"pascalhansjosten", + "version":1 +} diff --git a/keyboards/durgod/dgk6x/venus_iso/readme.md b/keyboards/durgod/dgk6x/venus_iso/readme.md new file mode 100644 index 0000000000..2f40fedd96 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/readme.md @@ -0,0 +1,26 @@ +# Venus + +This is a standard off-the-shelf Durgod Venus 60% ISO Layout keyboard with RGB matrix. + +* Keyboard Maintainer: [pascalhansjosten](https://github.com/pascalhansjosten), based on the work of [J-Sully](https://github.com/J-Sully) and [dkjer](https://github.com/dkjer) +* Hardware Supported: Durgod Venus ISO board with STM32F070RBT6 +* Hardware Availability: https://www.amazon.de/dp/B08H28DNQV/ + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/dgk6x/venus_iso:default + +Flashing example for this keyboard: + + make durgod/dgk6x/venus_iso: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). + +### Initial Flash + +Instructions for Flashing from initial Stock Firmware: +* [Initial Flashing](../readme.md#initial-flash) diff --git a/keyboards/durgod/dgk6x/venus_iso/venus_iso.c b/keyboards/durgod/dgk6x/venus_iso/venus_iso.c new file mode 100644 index 0000000000..4cc9bf3364 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/venus_iso.c @@ -0,0 +1,97 @@ +/* Copyright 2021 Jessica Sullivan and Don Kjer + * + * 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 "dgk6x.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + + {0, SW3_CS1, SW2_CS1, SW1_CS1}, // Esc + {0, SW3_CS2, SW2_CS2, SW1_CS2}, // 1 + {0, SW3_CS3, SW2_CS3, SW1_CS3}, // 2 + {0, SW3_CS4, SW2_CS4, SW1_CS4}, // 3 + {0, SW3_CS5, SW2_CS5, SW1_CS5}, // 4 + {0, SW3_CS6, SW2_CS6, SW1_CS6}, // 5 + {0, SW3_CS7, SW2_CS7, SW1_CS7}, // 6 + {0, SW3_CS8, SW2_CS8, SW1_CS8}, // 7 + {0, SW3_CS9, SW2_CS9, SW1_CS9}, // 8 + {0, SW3_CS10, SW2_CS10, SW1_CS10}, // 9 + {0, SW3_CS11, SW2_CS11, SW1_CS11}, // 0 + {0, SW3_CS12, SW2_CS12, SW1_CS12}, // - + {0, SW3_CS13, SW2_CS13, SW1_CS13}, // = + {0, SW3_CS14, SW2_CS14, SW1_CS14}, // Bksp + + {0, SW6_CS1, SW5_CS1, SW4_CS1}, // Tab + {0, SW6_CS2, SW5_CS2, SW4_CS2}, // Q + {0, SW6_CS3, SW5_CS3, SW4_CS3}, // W + {0, SW6_CS4, SW5_CS4, SW4_CS4}, // E + {0, SW6_CS5, SW5_CS5, SW4_CS5}, // R + {0, SW6_CS6, SW5_CS6, SW4_CS6}, // T + {0, SW6_CS7, SW5_CS7, SW4_CS7}, // Y + {0, SW6_CS8, SW5_CS8, SW4_CS8}, // U + {0, SW6_CS9, SW5_CS9, SW4_CS9}, // I + {0, SW6_CS10, SW5_CS10, SW4_CS10}, // O + {0, SW6_CS11, SW5_CS11, SW4_CS11}, // P + {0, SW6_CS12, SW5_CS12, SW4_CS12}, // [ + {0, SW6_CS13, SW5_CS13, SW4_CS13}, // ] + + {0, SW9_CS1, SW8_CS1, SW7_CS1}, // Caps + {0, SW9_CS2, SW8_CS2, SW7_CS2}, // A + {0, SW9_CS3, SW8_CS3, SW7_CS3}, // S + {0, SW9_CS4, SW8_CS4, SW7_CS4}, // D + {0, SW9_CS5, SW8_CS5, SW7_CS5}, // F + {0, SW9_CS6, SW8_CS6, SW7_CS6}, // G + {0, SW9_CS7, SW8_CS7, SW7_CS7}, // H + {0, SW9_CS8, SW8_CS8, SW7_CS8}, // J + {0, SW9_CS9, SW8_CS9, SW7_CS9}, // K + {0, SW9_CS10, SW8_CS10, SW7_CS10}, // L + {0, SW9_CS11, SW8_CS11, SW7_CS11}, // : + {0, SW9_CS12, SW8_CS12, SW7_CS12}, // ' + {0, SW9_CS13, SW8_CS13, SW7_CS13}, // NUHS + {0, SW9_CS14, SW8_CS14, SW7_CS14}, // Enter + + {0, SW12_CS1, SW11_CS1, SW10_CS1}, // LShift + {0, SW12_CS2, SW11_CS2, SW10_CS2}, // NUBS + {0, SW12_CS3, SW11_CS3, SW10_CS3}, // Z + {0, SW12_CS4, SW11_CS4, SW10_CS4}, // X + {0, SW12_CS5, SW11_CS5, SW10_CS5}, // C + {0, SW12_CS6, SW11_CS6, SW10_CS6}, // V + {0, SW12_CS7, SW11_CS7, SW10_CS7}, // B + {0, SW12_CS8, SW11_CS8, SW10_CS8}, // N + {0, SW12_CS9, SW11_CS9, SW10_CS9}, // M + {0, SW12_CS10, SW11_CS10, SW10_CS10}, // < + {0, SW12_CS11, SW11_CS11, SW10_CS11}, // > + {0, SW12_CS12, SW11_CS12, SW10_CS12}, // ? + {0, SW12_CS13, SW11_CS13, SW10_CS13}, // RShift + + {1, SW3_CS1, SW2_CS1, SW1_CS1}, // LCtrl + {1, SW3_CS2, SW2_CS2, SW1_CS2}, // LAlt + {1, SW3_CS3, SW2_CS3, SW1_CS3}, // Windows + {1, SW3_CS6, SW2_CS6, SW1_CS6}, // Space + {1, SW3_CS10, SW2_CS10, SW1_CS10}, // Fn1/RAlt hades/venus + {1, SW3_CS11, SW2_CS11, SW1_CS11}, // Fn2/Fn1 + {1, SW3_CS12, SW2_CS12, SW1_CS12}, // RCtrl/Fn2 + {1, SW3_CS13, SW2_CS13, SW1_CS13}, // LEFT/RCtrl +}; + +#endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/durgod/venus/readme.md b/keyboards/durgod/venus/readme.md index c2228583a9..685a9d2bc0 100644 --- a/keyboards/durgod/venus/readme.md +++ b/keyboards/durgod/venus/readme.md @@ -1,3 +1,3 @@ # Venus -See: [Venus](../dgk6x/venus/readme.md) +See: [Venus ANSI](../dgk6x/venus_ansi/readme.md) and [Venus ISO](../dgk6x/venus_iso/readme.md) diff --git a/keyboards/dz60/keymaps/iso_4th_row_all_1u/readme.md b/keyboards/dz60/keymaps/iso_4th_row_all_1u/readme.md index 6182800543..7ae2b5f4d4 100644 --- a/keyboards/dz60/keymaps/iso_4th_row_all_1u/readme.md +++ b/keyboards/dz60/keymaps/iso_4th_row_all_1u/readme.md @@ -31,4 +31,4 @@ FN Layer |-----------------------------------------------------------------------------------------+ | | | | | | |Home |PGDn | End | `-----------------------------------------------------------------------------------------' -``` \ No newline at end of file +``` diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c index 207fccd4f9..e729f6d578 100644 --- a/keyboards/dztech/dz60rgb/dz60rgb.c +++ b/keyboards/dztech/dz60rgb/dz60rgb.c @@ -71,28 +71,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 }, - { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 }, - { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json index 1bcc77c605..c4f87c70f0 100644 --- a/keyboards/dztech/dz60rgb/info.json +++ b/keyboards/dztech/dz60rgb/info.json @@ -5,6 +5,73 @@ "usb": { "vid": "0x445A" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c index cdc5148e11..20dd1a8b95 100644 --- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c +++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c @@ -69,28 +69,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED }, - { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 210, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, - { 222, 64 }, { 202, 64 }, { 182, 64 }, { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz60rgb_ansi/info.json b/keyboards/dztech/dz60rgb_ansi/info.json index dddbd47315..b5f962b997 100644 --- a/keyboards/dztech/dz60rgb_ansi/info.json +++ b/keyboards/dztech/dz60rgb_ansi/info.json @@ -5,6 +5,71 @@ "usb": { "vid": "0x445A" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 24, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 11], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ] + }, "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c index b5af34be38..59cbb09a1b 100644 --- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c +++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c @@ -70,28 +70,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }, - { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 }, - { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 } - }, { - { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, - { 218, 64 }, { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 } - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz60rgb_wkl/info.json b/keyboards/dztech/dz60rgb_wkl/info.json index a4dfb63c7a..d0d66d046c 100644 --- a/keyboards/dztech/dz60rgb_wkl/info.json +++ b/keyboards/dztech/dz60rgb_wkl/info.json @@ -5,6 +5,72 @@ "usb": { "vid": "0x445A" }, + "rgb_matrix": { + "layout": [ + {"matrix": [2, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 202, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 218, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 198, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 178, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 46, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 26, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 6, "y": 64, "flags": 1} + ] + }, "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], "layout_aliases": { "LAYOUT_HHKB": "LAYOUT_60_ansi_tsangan_split_bs_rshift", diff --git a/keyboards/dztech/dz64rgb/dz64rgb.c b/keyboards/dztech/dz64rgb/dz64rgb.c index e2512c72a5..788658bdce 100644 --- a/keyboards/dztech/dz64rgb/dz64rgb.c +++ b/keyboards/dztech/dz64rgb/dz64rgb.c @@ -88,29 +88,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, - { 63, 62, 61, NO_LED, NO_LED, 60, NO_LED, NO_LED, 59, 58, 57, 56, NO_LED, 55 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 218, 48 }, { 192, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 }, { 112, 48 }, { 96, 48 },{80, 48}, { 64, 48 }, { 48, 48 }, { 32, 48 }, { 8, 48 }, - { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz64rgb/keyboard.json b/keyboards/dztech/dz64rgb/keyboard.json index ef95b52400..926721a12e 100644 --- a/keyboards/dztech/dz64rgb/keyboard.json +++ b/keyboards/dztech/dz64rgb/keyboard.json @@ -40,6 +40,72 @@ "animation": "cycle_all" }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 218, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/dztech/dz65rgb/v1/keyboard.json b/keyboards/dztech/dz65rgb/v1/keyboard.json index 32b830052d..cdbd9ae10d 100644 --- a/keyboards/dztech/dz65rgb/v1/keyboard.json +++ b/keyboards/dztech/dz65rgb/v1/keyboard.json @@ -39,6 +39,76 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_process_limit": 4, "led_flush_limit": 26, "max_brightness": 200, diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c index 6e8cf96e4c..e05e35b74b 100644 --- a/keyboards/dztech/dz65rgb/v1/v1.c +++ b/keyboards/dztech/dz65rgb/v1/v1.c @@ -91,29 +91,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 0, C9_16, C7_15, C6_15 } }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz65rgb/v2/keyboard.json b/keyboards/dztech/dz65rgb/v2/keyboard.json index bf7331e101..7c922bc273 100644 --- a/keyboards/dztech/dz65rgb/v2/keyboard.json +++ b/keyboards/dztech/dz65rgb/v2/keyboard.json @@ -39,6 +39,76 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_process_limit": 4, "led_flush_limit": 26, "max_brightness": 200, diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c index a9f7fc104f..2591a4ddcb 100644 --- a/keyboards/dztech/dz65rgb/v2/v2.c +++ b/keyboards/dztech/dz65rgb/v2/v2.c @@ -91,29 +91,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 0, C9_16, C7_15, C6_15 } }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz65rgb/v3/keyboard.json b/keyboards/dztech/dz65rgb/v3/keyboard.json index 8fef8b3468..6ed8b8c9da 100644 --- a/keyboards/dztech/dz65rgb/v3/keyboard.json +++ b/keyboards/dztech/dz65rgb/v3/keyboard.json @@ -53,6 +53,76 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_process_limit": 4, "led_flush_limit": 26, "sleep": true diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c index bf54a8cdfc..f5f863de9a 100755 --- a/keyboards/dztech/dz65rgb/v3/v3.c +++ b/keyboards/dztech/dz65rgb/v3/v3.c @@ -93,26 +93,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW7_CS39, SW7_CS38, SW7_CS37} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/dztech/endless80/readme.md b/keyboards/dztech/endless80/readme.md index 18b813566c..c066c1359d 100644 --- a/keyboards/dztech/endless80/readme.md +++ b/keyboards/dztech/endless80/readme.md @@ -15,4 +15,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down esc in the keyboard then replug * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/ealdin/readme.md b/keyboards/ealdin/readme.md index b36afb718c..fcaa23c1b9 100644 --- a/keyboards/ealdin/readme.md +++ b/keyboards/ealdin/readme.md @@ -4,4 +4,4 @@ All files related to firmware of keyboards designed by Ealdin. ## Keyboards -* [Quadrant](./quadrant/): maintainer [Ealdin](https://github.com/Ealdin) \ No newline at end of file +* [Quadrant](./quadrant/): maintainer [Ealdin](https://github.com/Ealdin) diff --git a/keyboards/ebastler/e80_1800/chconf.h b/keyboards/ebastler/e80_1800/chconf.h index ee4fd213a2..bf78b9871c 100644 --- a/keyboards/ebastler/e80_1800/chconf.h +++ b/keyboards/ebastler/e80_1800/chconf.h @@ -18,4 +18,4 @@ #define CH_CFG_ST_RESOLUTION 16 #define CH_CFG_INTERVALS_SIZE 16 -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/ebastler/e80_1800/config.h b/keyboards/ebastler/e80_1800/config.h index baa7073176..cd739fe07f 100644 --- a/keyboards/ebastler/e80_1800/config.h +++ b/keyboards/ebastler/e80_1800/config.h @@ -31,4 +31,4 @@ #define I2C1_TIMINGR_SCLH 3U #define I2C1_TIMINGR_SCLL 9U -#endif \ No newline at end of file +#endif diff --git a/keyboards/ebastler/e80_1800/halconf.h b/keyboards/ebastler/e80_1800/halconf.h index 974b0086ad..34af46ea7a 100644 --- a/keyboards/ebastler/e80_1800/halconf.h +++ b/keyboards/ebastler/e80_1800/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c index c10a556755..34e08aa022 100644 --- a/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c index fca80299af..8c3731dfbd 100644 --- a/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/keymaps/default/keymap.c b/keyboards/ebastler/e80_1800/keymaps/default/keymap.c index acaecbb414..a275fe2d8c 100644 --- a/keyboards/ebastler/e80_1800/keymaps/default/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/default/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c index 4929c9d6ce..92da13955c 100644 --- a/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/mcuconf.h b/keyboards/ebastler/e80_1800/mcuconf.h index cff1dd5788..5fe7e5951b 100644 --- a/keyboards/ebastler/e80_1800/mcuconf.h +++ b/keyboards/ebastler/e80_1800/mcuconf.h @@ -29,4 +29,4 @@ #define STM32_I2C_USE_DMA TRUE #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) \ No newline at end of file +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) diff --git a/keyboards/ebastler/e80_1800/readme.md b/keyboards/ebastler/e80_1800/readme.md index 87fd9756b6..89c23ed698 100644 --- a/keyboards/ebastler/e80_1800/readme.md +++ b/keyboards/ebastler/e80_1800/readme.md @@ -22,4 +22,4 @@ Flash example for this keyboard (after setting up your build environment): make ebastler/e80_1800:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/ebastler/readme.md b/keyboards/ebastler/readme.md index 4b6efd2f71..e99d783f18 100644 --- a/keyboards/ebastler/readme.md +++ b/keyboards/ebastler/readme.md @@ -5,4 +5,4 @@ I'm a hobbyist designing keyboards for fun. [My homepage](https://mpwr.xyz). All * [isometria75](isometria_75) - 75% ISO-only board with rotary encoder, RGB underglow and single color backlight. [Github repo](https://github.com/ebastler/isometria-75). -* [E80-1800](E80_1800) - drop-in replacement PCB for the Cherry G80-1800. Requires minor case modifications, but adds backlight, native USB-C and (obviously) QMK. [Github repo](https://github.com/ebastler/E80-1800). \ No newline at end of file +* [E80-1800](E80_1800) - drop-in replacement PCB for the Cherry G80-1800. Requires minor case modifications, but adds backlight, native USB-C and (obviously) QMK. [Github repo](https://github.com/ebastler/E80-1800). diff --git a/keyboards/eco/readme.md b/keyboards/eco/readme.md index fac80e0a1b..bd79fa2880 100644 --- a/keyboards/eco/readme.md +++ b/keyboards/eco/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make eco/rev2:that_canadian -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/edda/config.h b/keyboards/edda/config.h index cfdf4e1a54..6a724b0682 100644 --- a/keyboards/edda/config.h +++ b/keyboards/edda/config.h @@ -16,4 +16,4 @@ along with this program. If not, see . // Indicators #define INDICATOR_PIN_0 B2 #define INDICATOR_PIN_1 B1 -#define INDICATOR_PIN_2 B0 \ No newline at end of file +#define INDICATOR_PIN_2 B0 diff --git a/keyboards/edi/hardlight/mk1/keymaps/.gitignore b/keyboards/edi/hardlight/mk1/keymaps/.gitignore index 08a0f321a2..bb7b3c960d 100644 --- a/keyboards/edi/hardlight/mk1/keymaps/.gitignore +++ b/keyboards/edi/hardlight/mk1/keymaps/.gitignore @@ -1 +1 @@ -fate \ No newline at end of file +fate diff --git a/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c b/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c index 5d901a7982..0b5cb1b091 100644 --- a/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c +++ b/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c @@ -112,4 +112,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _SET); -} \ No newline at end of file +} diff --git a/keyboards/edi/hardlight/mk2/keymaps/.gitignore b/keyboards/edi/hardlight/mk2/keymaps/.gitignore index 08a0f321a2..bb7b3c960d 100644 --- a/keyboards/edi/hardlight/mk2/keymaps/.gitignore +++ b/keyboards/edi/hardlight/mk2/keymaps/.gitignore @@ -1 +1 @@ -fate \ No newline at end of file +fate diff --git a/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c b/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c index 0928d4d769..60251e1474 100644 --- a/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c +++ b/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c @@ -112,4 +112,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _SET); -} \ No newline at end of file +} diff --git a/keyboards/edi/hardlight/mk2/mcuconf.h b/keyboards/edi/hardlight/mk2/mcuconf.h index 95e698d9ec..c320ee6e00 100644 --- a/keyboards/edi/hardlight/mk2/mcuconf.h +++ b/keyboards/edi/hardlight/mk2/mcuconf.h @@ -29,4 +29,4 @@ along with this program. If not, see . //Enable SPI #undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE \ No newline at end of file +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/eek/eek.c b/keyboards/eek/eek.c deleted file mode 100644 index 8e7a19f820..0000000000 --- a/keyboards/eek/eek.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright 2020 klackygears - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - - // Logical Layout - // Columns - // 0 1 2 3 4 - // ROWS - // 4 3 2 1 0 0 - // 5 6 7 8 9 1 - // 14 13 12 11 10 2 - // 15 16 17 3 - - // Logical Layout v1.3 - // Columns - // 0 1 2 3 4 5 6 7 8 9 - // ROWS - // 0 1 2 3 4 5 6 7 8 9 0 - // 19 18 17 16 15 14 13 12 11 10 1 - // 20 21 22 23 24 25 26 27 28 29 2 - // 35 34 33 32 31 30 3 - - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - { 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { NO_LED, NO_LED, 35, 34, 33, 32, 31, 30, NO_LED, NO_LED } -}, { - { 31, 0 }, { 46, 0 }, { 62, 0 }, { 77, 7 }, { 93, 13 }, { 131, 13 }, { 147, 7 }, { 162, 0 }, { 178, 0 }, { 193, 0 }, - { 201, 10 }, { 185, 10 }, { 170, 10 }, { 154, 17 }, { 139, 24 }, { 85, 24 }, { 70, 17 }, { 54, 10 }, { 39, 10 }, { 23, 10 }, - { 15, 20 }, { 31, 20 }, { 46, 20 }, { 62, 27 }, { 77, 34 }, { 147, 34 }, { 162, 27 }, { 178, 20 }, { 193, 20 }, { 209, 20 }, - { 185, 34 }, { 170, 37 }, { 154, 44 }, { 70, 44 }, { 54, 37 }, { 39, 34 }, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 1, 1, 1, 1, -} }; -#endif diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index 0e510e282a..eaa68c9b41 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -13,6 +13,44 @@ "val": 150 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 46, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 62, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 77, "y": 7, "flags": 4}, + {"matrix": [0, 4], "x": 93, "y": 13, "flags": 4}, + {"matrix": [0, 5], "x": 131, "y": 13, "flags": 4}, + {"matrix": [0, 6], "x": 147, "y": 7, "flags": 4}, + {"matrix": [0, 7], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 193, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 201, "y": 10, "flags": 4}, + {"matrix": [1, 8], "x": 185, "y": 10, "flags": 4}, + {"matrix": [1, 7], "x": 170, "y": 10, "flags": 4}, + {"matrix": [1, 6], "x": 154, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 139, "y": 24, "flags": 4}, + {"matrix": [1, 4], "x": 85, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 70, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 54, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 39, "y": 10, "flags": 4}, + {"matrix": [1, 0], "x": 23, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 15, "y": 20, "flags": 4}, + {"matrix": [2, 1], "x": 31, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 46, "y": 20, "flags": 4}, + {"matrix": [2, 3], "x": 62, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 147, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 178, "y": 20, "flags": 4}, + {"matrix": [2, 8], "x": 193, "y": 20, "flags": 4}, + {"matrix": [2, 9], "x": 209, "y": 20, "flags": 4}, + {"matrix": [3, 7], "x": 185, "y": 34, "flags": 1}, + {"matrix": [3, 6], "x": 170, "y": 37, "flags": 1}, + {"matrix": [3, 5], "x": 154, "y": 44, "flags": 1}, + {"matrix": [3, 4], "x": 70, "y": 44, "flags": 1}, + {"matrix": [3, 3], "x": 54, "y": 37, "flags": 1}, + {"matrix": [3, 2], "x": 39, "y": 34, "flags": 1} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/eek/silk_up/readme.md b/keyboards/eek/silk_up/readme.md index 1b24b95453..fe8d0d4eb1 100644 --- a/keyboards/eek/silk_up/readme.md +++ b/keyboards/eek/silk_up/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): Flashing example for this keyboard: make eek/silk_up:default:flash - \ No newline at end of file + diff --git a/keyboards/ein_60/ein_60.c b/keyboards/ein_60/ein_60.c index af11e48235..8a0e69cee4 100644 --- a/keyboards/ein_60/ein_60.c +++ b/keyboards/ein_60/ein_60.c @@ -15,37 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE - - // Logical Layout - // Columns - // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 - // ROWS - // 37 0 1 2 3 4 5 6 7 8 9 10 11 12 0 - // 36 13 1 - // 35 14 2 - // 34 15 3 - // 33 16 3 - // 32 17 4 - // 31 30 29 28 27 26 25 24 23 22 21 20 19 18 5 - -led_config_t g_led_config = { { - { 36, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 13 }, - { 34, 1, 2, 3, 4, 5, NO_LED, 6, 7, 8, 9, 10, 15 }, - { 33, 30, 29, 28, 27, 26, NO_LED, 23, 22, 21, 20, 19, 16 }, - { 32, 30, 29, 28, 27, 26, 24, 23, 22, 21, 20, 19, 17 } -}, { - { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 119, 0 }, { 134, 0 }, { 149, 0 }, { 164, 0 }, { 179, 0 }, { 194, 0 }, { 209, 0 }, { 224, 11 }, - { 224, 21 }, { 224, 32 }, { 224, 43 }, { 224, 53 }, { 209, 64 }, { 194, 64 }, { 179, 64 }, { 164, 64 }, { 149, 64 }, { 134, 64 }, { 119, 64 }, { 105, 64 }, { 90, 64 }, - { 75, 64 }, { 60, 64 }, { 45, 64 }, { 30, 64 }, { 15, 64 }, { 0, 53 }, { 0, 43 }, { 0, 32 }, { 0, 21 }, { 0, 11 }, { 15, 0 }, -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, -} }; -#endif - #ifdef AUDIO_ENABLE const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = { {30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39, 40, 41}, diff --git a/keyboards/ein_60/keyboard.json b/keyboards/ein_60/keyboard.json index b1e48f1747..99c5040f8d 100644 --- a/keyboards/ein_60/keyboard.json +++ b/keyboards/ein_60/keyboard.json @@ -12,6 +12,46 @@ "val": 150 }, "driver": "ws2812", + "layout": [ + {"x": 30, "y": 0, "flags": 2}, + {"matrix": [1, 1], "x": 45, "y": 0, "flags": 2}, + {"matrix": [1, 2], "x": 60, "y": 0, "flags": 2}, + {"matrix": [1, 3], "x": 75, "y": 0, "flags": 2}, + {"matrix": [1, 4], "x": 90, "y": 0, "flags": 2}, + {"matrix": [1, 5], "x": 105, "y": 0, "flags": 2}, + {"matrix": [1, 7], "x": 119, "y": 0, "flags": 2}, + {"matrix": [1, 8], "x": 134, "y": 0, "flags": 2}, + {"matrix": [1, 9], "x": 149, "y": 0, "flags": 2}, + {"matrix": [1, 10], "x": 164, "y": 0, "flags": 2}, + {"matrix": [1, 11], "x": 179, "y": 0, "flags": 2}, + {"x": 194, "y": 0, "flags": 2}, + {"x": 209, "y": 0, "flags": 2}, + {"matrix": [0, 12], "x": 224, "y": 11, "flags": 1}, + {"x": 224, "y": 21, "flags": 1}, + {"matrix": [1, 12], "x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 224, "y": 43, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 53, "flags": 1}, + {"x": 209, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 194, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 179, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 164, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 149, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 134, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 119, "y": 64, "flags": 1}, + {"x": 105, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 90, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 75, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 45, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 64, "flags": 1}, + {"x": 15, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 53, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1}, + {"x": 0, "y": 21, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 11, "flags": 1}, + {"x": 15, "y": 0, "flags": 2} + ], "max_brightness": 200 }, "rgblight": { diff --git a/keyboards/elephant42/elephant42.c b/keyboards/elephant42/elephant42.c deleted file mode 100644 index 1ffb5e8083..0000000000 --- a/keyboards/elephant42/elephant42.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright 2021 illness072 - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { - { // keymap to LED number - // left - { 19, 18, 13, 12, 7, 6}, // R3 - { 20, 17, 14, 11, 8, 5}, // R2 - {NO_LED, 16, 15, 10, 9, 4}, // R1 - {NO_LED, NO_LED, 0, 1, 2, 3}, // R0 - // right - { 46, 45, 40, 39, 34, 33}, // R3 - { 47, 44, 41, 38, 35, 32}, // R2 - {NO_LED, 43, 42, 37, 36, 31}, // R1 - {NO_LED, NO_LED, 27, 28, 29, 30}, // R0 - }, - {// phisical LED position, {x, y} : x = 0..224, y = 0..64 - // left-bg [LED_01-21] - {56, 65}, {77, 68}, {95, 79}, {109, 91}, - {87, 46}, {87, 29}, {87, 12}, { 69, 43}, { 69, 26}, { 69, 8}, - {52, 35}, {52, 17}, {52, 0}, { 35, 4}, { 35, 21}, { 35, 38}, - {17, 54}, {17, 36}, {17, 19}, { 0, 26}, { 0, 43}, - // left-ug [LED_22-27] - {25, 49}, {26, 19}, {60, 14}, {106, 33}, {107, 72}, { 70, 66}, - // right-bg [LED_28-48] - {199, 65}, {179, 68}, {160, 79}, {146, 91}, - {168, 46}, {168, 29}, {168, 12}, {186, 43}, {186, 26}, {186, 8}, - {203, 35}, {203, 17}, {203, 0}, {220, 4}, {220, 21}, {220, 38}, - {238, 54}, {238, 36}, {238, 19}, {255, 26}, {255, 43}, - // right-ug [LED_49-54] - {230, 49}, {230, 19}, {195, 14}, {149, 33}, {148, 72}, {185, 66}, - }, - {// LED Index to Flag - // Left-bg [LED_01-21] - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - // left-ug [LED_22-27] - LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, - // right-bg [LED_28-48] - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - // right-ug [LED_49-54] - LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW - } -}; -#endif diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json index 60b135b086..5911fcbab8 100644 --- a/keyboards/elephant42/keyboard.json +++ b/keyboards/elephant42/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "elephant42", "manufacturer": "illness072", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/elephant42", "maintainer": "illness072", "usb": { "vid": "0x4649", @@ -13,6 +12,62 @@ "sat_steps": 8, "val_steps": 8, "speed_steps": 8, + "layout": [ + {"matrix": [3, 2], "x": 52, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4}, + {"matrix": [3, 4], "x": 86, "y": 58, "flags": 4}, + {"matrix": [3, 5], "x": 103, "y": 64, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 34, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 8, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 7, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 20, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 33, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 6, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 19, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 44, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 31, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 18, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 37, "flags": 4}, + {"x": 26, "y": 42, "flags": 2}, + {"x": 26, "y": 19, "flags": 2}, + {"x": 61, "y": 7, "flags": 2}, + {"x": 103, "y": 21, "flags": 2}, + {"x": 103, "y": 51, "flags": 2}, + {"x": 69, "y": 45, "flags": 2}, + {"matrix": [7, 2], "x": 172, "y": 45, "flags": 4}, + {"matrix": [7, 3], "x": 155, "y": 51, "flags": 4}, + {"matrix": [7, 4], "x": 138, "y": 58, "flags": 4}, + {"matrix": [7, 5], "x": 121, "y": 64, "flags": 4}, + {"matrix": [6, 5], "x": 138, "y": 34, "flags": 4}, + {"matrix": [5, 5], "x": 138, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 138, "y": 8, "flags": 4}, + {"matrix": [4, 4], "x": 155, "y": 7, "flags": 4}, + {"matrix": [5, 4], "x": 155, "y": 20, "flags": 4}, + {"matrix": [6, 4], "x": 155, "y": 33, "flags": 4}, + {"matrix": [6, 3], "x": 172, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 172, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 189, "y": 6, "flags": 4}, + {"matrix": [5, 2], "x": 189, "y": 19, "flags": 4}, + {"matrix": [6, 2], "x": 189, "y": 32, "flags": 4}, + {"matrix": [6, 1], "x": 206, "y": 44, "flags": 4}, + {"matrix": [5, 1], "x": 206, "y": 31, "flags": 4}, + {"matrix": [4, 1], "x": 206, "y": 18, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 24, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 37, "flags": 4}, + {"x": 197, "y": 42, "flags": 2}, + {"x": 197, "y": 19, "flags": 2}, + {"x": 163, "y": 7, "flags": 2}, + {"x": 121, "y": 21, "flags": 2}, + {"x": 121, "y": 51, "flags": 2}, + {"x": 155, "y": 45, "flags": 2} + ], "max_brightness": 170, "split_count": [27, 27] }, diff --git a/keyboards/enmeseoz/enmepad3x4/readme.md b/keyboards/enmeseoz/enmepad3x4/readme.md index dd7391daac..8326649e6d 100644 --- a/keyboards/enmeseoz/enmepad3x4/readme.md +++ b/keyboards/enmeseoz/enmepad3x4/readme.md @@ -22,4 +22,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/enviousdesign/65m/keyboard.json b/keyboards/enviousdesign/65m/keyboard.json index e0661dc9fa..fa4b4eb357 100644 --- a/keyboards/enviousdesign/65m/keyboard.json +++ b/keyboards/enviousdesign/65m/keyboard.json @@ -388,4 +388,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/commissions/mini1800/keyboard.json b/keyboards/enviousdesign/commissions/mini1800/keyboard.json index 5eb78225a0..ff37c73ccd 100644 --- a/keyboards/enviousdesign/commissions/mini1800/keyboard.json +++ b/keyboards/enviousdesign/commissions/mini1800/keyboard.json @@ -105,4 +105,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/delirium/rev0/keyboard.json b/keyboards/enviousdesign/delirium/rev0/keyboard.json index 75ff24a9ef..23de3bf9c6 100644 --- a/keyboards/enviousdesign/delirium/rev0/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev0/keyboard.json @@ -116,4 +116,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/delirium/rev1/keyboard.json b/keyboards/enviousdesign/delirium/rev1/keyboard.json index 83001140bb..c6925759f8 100644 --- a/keyboards/enviousdesign/delirium/rev1/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev1/keyboard.json @@ -300,4 +300,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/delirium/rgb/rgb.c b/keyboards/enviousdesign/delirium/rgb/rgb.c index e6a3354b29..b57f3c1175 100644 --- a/keyboards/enviousdesign/delirium/rgb/rgb.c +++ b/keyboards/enviousdesign/delirium/rgb/rgb.c @@ -32,4 +32,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/enviousdesign/mcro/rev1/keyboard.json b/keyboards/enviousdesign/mcro/rev1/keyboard.json index 6e846f9621..c6ab8809ce 100644 --- a/keyboards/enviousdesign/mcro/rev1/keyboard.json +++ b/keyboards/enviousdesign/mcro/rev1/keyboard.json @@ -39,4 +39,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/divine/config.h b/keyboards/era/divine/config.h index e1083fe5e2..790bb5b1dd 100644 --- a/keyboards/era/divine/config.h +++ b/keyboards/era/divine/config.h @@ -17,4 +17,4 @@ #pragma once #define BACKLIGHT_PWM_DRIVER PWMD0 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/era/divine/halconf.h b/keyboards/era/divine/halconf.h index 5a527da781..441e62f83a 100644 --- a/keyboards/era/divine/halconf.h +++ b/keyboards/era/divine/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/divine/keyboard.json b/keyboards/era/divine/keyboard.json index 83da9f0854..4a2e718350 100644 --- a/keyboards/era/divine/keyboard.json +++ b/keyboards/era/divine/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/divine/keymaps/default/keymap.c b/keyboards/era/divine/keymaps/default/keymap.c index a37cfdc059..f14a3f9e64 100644 --- a/keyboards/era/divine/keymaps/default/keymap.c +++ b/keyboards/era/divine/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/divine/mcuconf.h b/keyboards/era/divine/mcuconf.h index 7698b5d139..ce4246f2eb 100644 --- a/keyboards/era/divine/mcuconf.h +++ b/keyboards/era/divine/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef RP_PWM_USE_PWM0 -#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM0 TRUE diff --git a/keyboards/era/divine/readme.md b/keyboards/era/divine/readme.md index 3049e3b840..1ca6c8c5e6 100644 --- a/keyboards/era/divine/readme.md +++ b/keyboards/era/divine/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/era65/config.h b/keyboards/era/era65/config.h index bd42a703f8..6a1a27f077 100644 --- a/keyboards/era/era65/config.h +++ b/keyboards/era/era65/config.h @@ -25,4 +25,4 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U // Timeout window in ms in which the double tap can occur. #define BACKLIGHT_PWM_DRIVER PWMD0 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/era/era65/halconf.h b/keyboards/era/era65/halconf.h index 1960fffb5d..20d804b855 100644 --- a/keyboards/era/era65/halconf.h +++ b/keyboards/era/era65/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/era65/keyboard.json b/keyboards/era/era65/keyboard.json index 2939418d72..152d7e3186 100644 --- a/keyboards/era/era65/keyboard.json +++ b/keyboards/era/era65/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/era65/mcuconf.h b/keyboards/era/era65/mcuconf.h index c9de0026f1..bca2b0e53d 100644 --- a/keyboards/era/era65/mcuconf.h +++ b/keyboards/era/era65/mcuconf.h @@ -5,4 +5,4 @@ /* Used for backlight display */ #undef RP_PWM_USE_PWM0 -#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM0 TRUE diff --git a/keyboards/era/era65/readme.md b/keyboards/era/era65/readme.md index cd25aafb1f..671a0e86b9 100644 --- a/keyboards/era/era65/readme.md +++ b/keyboards/era/era65/readme.md @@ -22,4 +22,4 @@ 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**: Short the reset hole of the PCB twice within 1 second. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/fave65s/readme.md b/keyboards/era/linx3/fave65s/readme.md index e31b3acef9..90583e765e 100644 --- a/keyboards/era/linx3/fave65s/readme.md +++ b/keyboards/era/linx3/fave65s/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/n86/config.h b/keyboards/era/linx3/n86/config.h index 8b294dd91b..ee5043c48c 100644 --- a/keyboards/era/linx3/n86/config.h +++ b/keyboards/era/linx3/n86/config.h @@ -5,4 +5,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U diff --git a/keyboards/era/linx3/n86/keymaps/default/keymap.c b/keyboards/era/linx3/n86/keymaps/default/keymap.c index 49ae04a5a7..29b29b95c3 100644 --- a/keyboards/era/linx3/n86/keymaps/default/keymap.c +++ b/keyboards/era/linx3/n86/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/linx3/n86/readme.md b/keyboards/era/linx3/n86/readme.md index ba68109068..81692a0d90 100644 --- a/keyboards/era/linx3/n86/readme.md +++ b/keyboards/era/linx3/n86/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/n87/config.h b/keyboards/era/linx3/n87/config.h index 8b294dd91b..ee5043c48c 100644 --- a/keyboards/era/linx3/n87/config.h +++ b/keyboards/era/linx3/n87/config.h @@ -5,4 +5,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U diff --git a/keyboards/era/linx3/n87/keyboard.json b/keyboards/era/linx3/n87/keyboard.json index 5a03a5cbc5..3123b5b2da 100644 --- a/keyboards/era/linx3/n87/keyboard.json +++ b/keyboards/era/linx3/n87/keyboard.json @@ -451,4 +451,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/linx3/n87/keymaps/default/keymap.c b/keyboards/era/linx3/n87/keymaps/default/keymap.c index a16e6a2110..4a9982779f 100644 --- a/keyboards/era/linx3/n87/keymaps/default/keymap.c +++ b/keyboards/era/linx3/n87/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/linx3/n87/readme.md b/keyboards/era/linx3/n87/readme.md index ff5b29d3bd..c7d2152230 100644 --- a/keyboards/era/linx3/n87/readme.md +++ b/keyboards/era/linx3/n87/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/n8x/halconf.h b/keyboards/era/linx3/n8x/halconf.h index 3dbc886a83..05a72ec00c 100644 --- a/keyboards/era/linx3/n8x/halconf.h +++ b/keyboards/era/linx3/n8x/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/linx3/n8x/keyboard.json b/keyboards/era/linx3/n8x/keyboard.json index c018874bd1..0a896b250f 100644 --- a/keyboards/era/linx3/n8x/keyboard.json +++ b/keyboards/era/linx3/n8x/keyboard.json @@ -1226,4 +1226,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/linx3/n8x/keymaps/default/keymap.c b/keyboards/era/linx3/n8x/keymaps/default/keymap.c index 3dd2571ab8..e2b0630731 100644 --- a/keyboards/era/linx3/n8x/keymaps/default/keymap.c +++ b/keyboards/era/linx3/n8x/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/linx3/n8x/mcuconf.h b/keyboards/era/linx3/n8x/mcuconf.h index 9a4b5b1c61..4cec0fede3 100644 --- a/keyboards/era/linx3/n8x/mcuconf.h +++ b/keyboards/era/linx3/n8x/mcuconf.h @@ -6,4 +6,4 @@ #include_next #undef RP_PWM_USE_PWM1 -#define RP_PWM_USE_PWM1 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM1 TRUE diff --git a/keyboards/era/linx3/n8x/readme.md b/keyboards/era/linx3/n8x/readme.md index b414e14975..894babb51b 100644 --- a/keyboards/era/linx3/n8x/readme.md +++ b/keyboards/era/linx3/n8x/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/brick65/keyboard.json b/keyboards/era/sirind/brick65/keyboard.json index 3d35bc0d98..513a807972 100644 --- a/keyboards/era/sirind/brick65/keyboard.json +++ b/keyboards/era/sirind/brick65/keyboard.json @@ -198,4 +198,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/brick65s/brick65s.c b/keyboards/era/sirind/brick65s/brick65s.c index ae76a3968c..825a00b4e6 100644 --- a/keyboards/era/sirind/brick65s/brick65s.c +++ b/keyboards/era/sirind/brick65s/brick65s.c @@ -21,4 +21,4 @@ bool rgb_matrix_indicators_kb(void) { } return true; -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/brick65s/keyboard.json b/keyboards/era/sirind/brick65s/keyboard.json index 489b0da323..03a0d2857d 100644 --- a/keyboards/era/sirind/brick65s/keyboard.json +++ b/keyboards/era/sirind/brick65s/keyboard.json @@ -247,4 +247,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/brick65s/readme.md b/keyboards/era/sirind/brick65s/readme.md index e173ba4e73..3ed95cf9a7 100644 --- a/keyboards/era/sirind/brick65s/readme.md +++ b/keyboards/era/sirind/brick65s/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/chickpad/readme.md b/keyboards/era/sirind/chickpad/readme.md index fd6ad72d4f..de7bb146e9 100644 --- a/keyboards/era/sirind/chickpad/readme.md +++ b/keyboards/era/sirind/chickpad/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/klein_hs/config.h b/keyboards/era/sirind/klein_hs/config.h index bbd4387363..54731b7aa9 100644 --- a/keyboards/era/sirind/klein_hs/config.h +++ b/keyboards/era/sirind/klein_hs/config.h @@ -18,4 +18,4 @@ /* BACKLIGHT PWM */ #define BACKLIGHT_PWM_DRIVER PWMD7 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/era/sirind/klein_hs/halconf.h b/keyboards/era/sirind/klein_hs/halconf.h index f57e86df01..ec9ad4659c 100644 --- a/keyboards/era/sirind/klein_hs/halconf.h +++ b/keyboards/era/sirind/klein_hs/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/sirind/klein_hs/keyboard.json b/keyboards/era/sirind/klein_hs/keyboard.json index 01395c3af1..b2451d5a1d 100644 --- a/keyboards/era/sirind/klein_hs/keyboard.json +++ b/keyboards/era/sirind/klein_hs/keyboard.json @@ -463,4 +463,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c b/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c index 88878bbcd9..e01fecf381 100644 --- a/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c +++ b/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/klein_hs/mcuconf.h b/keyboards/era/sirind/klein_hs/mcuconf.h index b82cc49d7d..e2af8e5c26 100644 --- a/keyboards/era/sirind/klein_hs/mcuconf.h +++ b/keyboards/era/sirind/klein_hs/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef RP_PWM_USE_PWM7 -#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM7 TRUE diff --git a/keyboards/era/sirind/klein_hs/readme.md b/keyboards/era/sirind/klein_hs/readme.md index 86343271bb..e7dc568c75 100644 --- a/keyboards/era/sirind/klein_hs/readme.md +++ b/keyboards/era/sirind/klein_hs/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/klein_sd/halconf.h b/keyboards/era/sirind/klein_sd/halconf.h index f57e86df01..ec9ad4659c 100644 --- a/keyboards/era/sirind/klein_sd/halconf.h +++ b/keyboards/era/sirind/klein_sd/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/sirind/klein_sd/keyboard.json b/keyboards/era/sirind/klein_sd/keyboard.json index b2fbe33290..5591fd6d72 100644 --- a/keyboards/era/sirind/klein_sd/keyboard.json +++ b/keyboards/era/sirind/klein_sd/keyboard.json @@ -588,4 +588,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c b/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c index 88878bbcd9..e01fecf381 100644 --- a/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c +++ b/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/klein_sd/mcuconf.h b/keyboards/era/sirind/klein_sd/mcuconf.h index b82cc49d7d..e2af8e5c26 100644 --- a/keyboards/era/sirind/klein_sd/mcuconf.h +++ b/keyboards/era/sirind/klein_sd/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef RP_PWM_USE_PWM7 -#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM7 TRUE diff --git a/keyboards/era/sirind/klein_sd/readme.md b/keyboards/era/sirind/klein_sd/readme.md index a021b843d7..0ec1c84543 100644 --- a/keyboards/era/sirind/klein_sd/readme.md +++ b/keyboards/era/sirind/klein_sd/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/tomak/config.h b/keyboards/era/sirind/tomak/config.h index 0f34f674df..ac531cf18b 100644 --- a/keyboards/era/sirind/tomak/config.h +++ b/keyboards/era/sirind/tomak/config.h @@ -12,4 +12,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U diff --git a/keyboards/era/sirind/tomak/keymaps/default/keymap.c b/keyboards/era/sirind/tomak/keymaps/default/keymap.c index bf070bd9fa..4b56db1eb2 100644 --- a/keyboards/era/sirind/tomak/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c index 7a1edcb15f..94afa64abc 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c index 20d99d5fa7..a741395321 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c index e5d064cb47..368633aee5 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c index c85224d234..6c0a2f15fc 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/readme.md b/keyboards/era/sirind/tomak/readme.md index 0834dfd6a8..eb3e5c231b 100644 --- a/keyboards/era/sirind/tomak/readme.md +++ b/keyboards/era/sirind/tomak/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the 'top-left(ESC, F7)' key and plug in the keyboard. * **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/era/sirind/tomak/tomak.c b/keyboards/era/sirind/tomak/tomak.c index 8533cd4a73..4bc0ae6e95 100644 --- a/keyboards/era/sirind/tomak/tomak.c +++ b/keyboards/era/sirind/tomak/tomak.c @@ -13,4 +13,4 @@ bool rgb_matrix_indicators_kb(void) { rgb_matrix_set_color(98, 0, 128, 128); } return true; -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79h/config.h b/keyboards/era/sirind/tomak79h/config.h index f04429bcd8..4b1caf25f7 100644 --- a/keyboards/era/sirind/tomak79h/config.h +++ b/keyboards/era/sirind/tomak79h/config.h @@ -12,4 +12,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/tomak79h/keyboard.json b/keyboards/era/sirind/tomak79h/keyboard.json index d1764bb668..1caffa2dff 100644 --- a/keyboards/era/sirind/tomak79h/keyboard.json +++ b/keyboards/era/sirind/tomak79h/keyboard.json @@ -389,4 +389,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c index d1434f8cd0..87ea2491cb 100644 --- a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak79h/readme.md b/keyboards/era/sirind/tomak79h/readme.md index 528731ef12..652784e16f 100644 --- a/keyboards/era/sirind/tomak79h/readme.md +++ b/keyboards/era/sirind/tomak79h/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the 'top-left(ESC, F7)' key and plug in the keyboard. * **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/era/sirind/tomak79h/tomak79h.c b/keyboards/era/sirind/tomak79h/tomak79h.c index 580a1ba68b..29cbdfa964 100644 --- a/keyboards/era/sirind/tomak79h/tomak79h.c +++ b/keyboards/era/sirind/tomak79h/tomak79h.c @@ -13,4 +13,4 @@ bool rgb_matrix_indicators_kb(void) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79s/config.h b/keyboards/era/sirind/tomak79s/config.h index f04429bcd8..4b1caf25f7 100644 --- a/keyboards/era/sirind/tomak79s/config.h +++ b/keyboards/era/sirind/tomak79s/config.h @@ -12,4 +12,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/tomak79s/keyboard.json b/keyboards/era/sirind/tomak79s/keyboard.json index 2e68ad788d..d28c96e565 100644 --- a/keyboards/era/sirind/tomak79s/keyboard.json +++ b/keyboards/era/sirind/tomak79s/keyboard.json @@ -671,4 +671,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c index 9ac7334d48..d2816d3173 100644 --- a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, RM_NEXT, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak79s/readme.md b/keyboards/era/sirind/tomak79s/readme.md index 5fc275bc65..6026c12533 100644 --- a/keyboards/era/sirind/tomak79s/readme.md +++ b/keyboards/era/sirind/tomak79s/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the 'top-left(ESC, F7)' key and plug in the keyboard. * **Physical reset**: Short the 'RESET' and 'GND' holes twice within one second, or plug in the keyboard with the 'BOOT' and 'GND' holes shorted. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/era/sirind/tomak79s/tomak79s.c b/keyboards/era/sirind/tomak79s/tomak79s.c index f5f3165b64..400ce2b7fe 100644 --- a/keyboards/era/sirind/tomak79s/tomak79s.c +++ b/keyboards/era/sirind/tomak79s/tomak79s.c @@ -13,4 +13,4 @@ bool rgb_matrix_indicators_kb(void) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 9fdc814834..d2e89772c6 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -275,42 +275,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C2_11, C1_11, C3_11}, // LED23 {1, C5_11, C4_11, C6_11} // LED24 }; - - -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 28, 33, 38, 43, 47, NO_LED }, - { 27, 32, 37, 42, 46, NO_LED }, - { 26, 31, 36, 41, 45, NO_LED }, - { 25, 30, 35, 40, 44, NO_LED }, - { 24, 29, 34, 39, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 0, 5, 10, 15, NO_LED, NO_LED }, - { 1, 6, 11, 16, 20, NO_LED }, - { 2, 7, 12, 17, 21, NO_LED }, - { 3, 8, 13, 18, 22, NO_LED }, - { 4, 9, 14, 19, 23, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - { 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 }, - { 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 }, - { 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 }, - { 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 }, - { 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 }, - { 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 }, - { 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 }, - { 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 } -}, { - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1 -} }; // clang-format on # ifdef ORYX_CONFIGURATOR diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index f7b20b19e0..8ef8ed376d 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -69,6 +69,56 @@ "pixel_fractal": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [8, 0], "x": 137, "y": 0, "flags": 4}, + {"matrix": [9, 0], "x": 154, "y": 0, "flags": 4}, + {"matrix": [10, 0], "x": 172, "y": 0, "flags": 4}, + {"matrix": [11, 0], "x": 189, "y": 0, "flags": 4}, + {"matrix": [12, 0], "x": 206, "y": 0, "flags": 4}, + {"matrix": [8, 1], "x": 137, "y": 12, "flags": 4}, + {"matrix": [9, 1], "x": 154, "y": 12, "flags": 4}, + {"matrix": [10, 1], "x": 172, "y": 12, "flags": 4}, + {"matrix": [11, 1], "x": 189, "y": 12, "flags": 4}, + {"matrix": [12, 1], "x": 206, "y": 12, "flags": 4}, + {"matrix": [8, 2], "x": 137, "y": 25, "flags": 4}, + {"matrix": [9, 2], "x": 154, "y": 25, "flags": 4}, + {"matrix": [10, 2], "x": 172, "y": 25, "flags": 4}, + {"matrix": [11, 2], "x": 189, "y": 25, "flags": 4}, + {"matrix": [12, 2], "x": 206, "y": 25, "flags": 4}, + {"matrix": [8, 3], "x": 137, "y": 38, "flags": 4}, + {"matrix": [9, 3], "x": 154, "y": 38, "flags": 4}, + {"matrix": [10, 3], "x": 172, "y": 38, "flags": 4}, + {"matrix": [11, 3], "x": 189, "y": 38, "flags": 4}, + {"matrix": [12, 3], "x": 206, "y": 38, "flags": 4}, + {"matrix": [9, 4], "x": 154, "y": 51, "flags": 1}, + {"matrix": [10, 4], "x": 172, "y": 51, "flags": 1}, + {"matrix": [11, 4], "x": 189, "y": 51, "flags": 1}, + {"matrix": [12, 4], "x": 206, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 86, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 68, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 34, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 17, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 86, "y": 12, "flags": 4}, + {"matrix": [4, 1], "x": 68, "y": 12, "flags": 4}, + {"matrix": [3, 1], "x": 51, "y": 12, "flags": 4}, + {"matrix": [2, 1], "x": 34, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 12, "flags": 4}, + {"matrix": [5, 2], "x": 86, "y": 25, "flags": 4}, + {"matrix": [4, 2], "x": 68, "y": 25, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 25, "flags": 4}, + {"matrix": [1, 2], "x": 17, "y": 25, "flags": 4}, + {"matrix": [5, 3], "x": 86, "y": 38, "flags": 4}, + {"matrix": [4, 3], "x": 68, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 34, "y": 38, "flags": 4}, + {"matrix": [1, 3], "x": 17, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 68, "y": 51, "flags": 1}, + {"matrix": [3, 4], "x": 51, "y": 51, "flags": 1}, + {"matrix": [2, 4], "x": 34, "y": 51, "flags": 1}, + {"matrix": [1, 4], "x": 17, "y": 51, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 5, "sleep": true diff --git a/keyboards/ergodox_ez/keymaps/default/readme.md b/keyboards/ergodox_ez/keymaps/default/readme.md index 1150a4f709..f1634c1e98 100644 --- a/keyboards/ergodox_ez/keymaps/default/readme.md +++ b/keyboards/ergodox_ez/keymaps/default/readme.md @@ -12,4 +12,4 @@ This is what we ship with out of the factory. :) The image says it all: -![Default](https://i.imgur.com/Be53jH7.png) \ No newline at end of file +![Default](https://i.imgur.com/Be53jH7.png) diff --git a/keyboards/ergodox_ez/keymaps/rgb_layer/config.h b/keyboards/ergodox_ez/keymaps/rgb_layer/config.h index edd1f130cc..7623e37e73 100644 --- a/keyboards/ergodox_ez/keymaps/rgb_layer/config.h +++ b/keyboards/ergodox_ez/keymaps/rgb_layer/config.h @@ -8,7 +8,7 @@ #undef PERMISSIVE_HOLD -#define FORCE_NKRO +#define NKRO_DEFAULT_ON true #ifndef TAPPING_TOGGLE #define TAPPING_TOGGLE 1 diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md index 59a2840fd0..08bfc91d15 100644 --- a/keyboards/ergodox_ez/readme.md +++ b/keyboards/ergodox_ez/readme.md @@ -25,7 +25,7 @@ If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, this enable ### Indicator LEDs -You can use the `LED_LEVEL` keycode to cycle through the brightness levels for the LEDs on the top right of the keyboard. These settings are saved in eeprom (persistant memory). +You can use the `LED_LEVEL` keycode to cycle through the brightness levels for the LEDs on the top right of the keyboard. These settings are saved in eeprom (persistent memory). Alternatively, you can set the brightness by calling the following functions: diff --git a/keyboards/eternal_keypad/keyboard.json b/keyboards/eternal_keypad/keyboard.json index 1951c7fa09..97421204ff 100644 --- a/keyboards/eternal_keypad/keyboard.json +++ b/keyboards/eternal_keypad/keyboard.json @@ -15,6 +15,11 @@ "nkro": true, "rgblight": true }, + "host": { + "default": { + "nkro": true + } + }, "qmk": { "locking": { "enabled": true, diff --git a/keyboards/eternal_keypad/keymaps/default/config.h b/keyboards/eternal_keypad/keymaps/default/config.h index 36ab46334c..58be405e6b 100644 --- a/keyboards/eternal_keypad/keymaps/default/config.h +++ b/keyboards/eternal_keypad/keymaps/default/config.h @@ -16,4 +16,3 @@ #pragma once #define ONESHOT_TIMEOUT 2000 -#define FORCE_NKRO diff --git a/keyboards/etiennecollin/wave/keymaps/test/keymap.json b/keyboards/etiennecollin/wave/keymaps/test/keymap.json index e73c867273..c7973a13f2 100644 --- a/keyboards/etiennecollin/wave/keymaps/test/keymap.json +++ b/keyboards/etiennecollin/wave/keymaps/test/keymap.json @@ -19,4 +19,4 @@ "KC_ESC", "KC_SPC", "KC_TAB", "KC_ENT", "KC_BSPC", "KC_DEL" ] ] -} \ No newline at end of file +} diff --git a/keyboards/evancookaudio/sleepingdinosaur/readme.md b/keyboards/evancookaudio/sleepingdinosaur/readme.md index 064e4981fe..58993abe5d 100644 --- a/keyboards/evancookaudio/sleepingdinosaur/readme.md +++ b/keyboards/evancookaudio/sleepingdinosaur/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). ## Enter the bootloader: -* **Physical reset button**: On the underside of the board, near the USB connector and microcontroller, press and hold the small button labeled reset for more than one second to enter the bootloader. \ No newline at end of file +* **Physical reset button**: On the underside of the board, near the USB connector and microcontroller, press and hold the small button labeled reset for more than one second to enter the bootloader. diff --git a/keyboards/evancookaudio/tenpad/readme.md b/keyboards/evancookaudio/tenpad/readme.md index 0bcb7a7bce..facf658121 100644 --- a/keyboards/evancookaudio/tenpad/readme.md +++ b/keyboards/evancookaudio/tenpad/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). ## Enter the bootloader: -* **Physical reset button**: Briefly short the pair of pins marked "reset" on the top right corner of the bottom PCB of the keyboard. \ No newline at end of file +* **Physical reset button**: Briefly short the pair of pins marked "reset" on the top right corner of the bottom PCB of the keyboard. diff --git a/keyboards/evyd13/atom47/rev5/keyboard.json b/keyboards/evyd13/atom47/rev5/keyboard.json index 86ff90c19c..daf7e3677f 100644 --- a/keyboards/evyd13/atom47/rev5/keyboard.json +++ b/keyboards/evyd13/atom47/rev5/keyboard.json @@ -39,7 +39,57 @@ "pixel_flow": true, "pixel_fractal": true }, - "driver": "is31fl3733" + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 9, "y": 8, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 43, "y": 8, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 8, "flags": 4}, + {"matrix": [0, 4], "x": 78, "y": 8, "flags": 4}, + {"matrix": [0, 5], "x": 95, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 112, "y": 8, "flags": 4}, + {"matrix": [0, 7], "x": 129, "y": 8, "flags": 4}, + {"matrix": [0, 8], "x": 146, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 164, "y": 8, "flags": 4}, + {"matrix": [0, 10], "x": 181, "y": 8, "flags": 4}, + {"matrix": [0, 11], "x": 198, "y": 8, "flags": 1}, + {"matrix": [0, 12], "x": 215, "y": 8, "flags": 1}, + {"matrix": [1, 0], "x": 11, "y": 24, "flags": 1}, + {"matrix": [1, 1], "x": 30, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 47, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 24, "flags": 4}, + {"matrix": [1, 4], "x": 82, "y": 24, "flags": 4}, + {"matrix": [1, 5], "x": 99, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 116, "y": 24, "flags": 4}, + {"matrix": [1, 7], "x": 134, "y": 24, "flags": 4}, + {"matrix": [1, 8], "x": 151, "y": 24, "flags": 4}, + {"matrix": [1, 9], "x": 168, "y": 24, "flags": 4}, + {"matrix": [1, 10], "x": 185, "y": 24, "flags": 4}, + {"matrix": [1, 12], "x": 209, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 15, "y": 40, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 22, "flags": 8}, + {"matrix": [2, 2], "x": 39, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 73, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 90, "y": 40, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 40, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 40, "flags": 4}, + {"matrix": [2, 8], "x": 142, "y": 40, "flags": 4}, + {"matrix": [2, 9], "x": 159, "y": 40, "flags": 4}, + {"matrix": [2, 10], "x": 177, "y": 40, "flags": 4}, + {"matrix": [2, 11], "x": 196, "y": 40, "flags": 1}, + {"matrix": [2, 12], "x": 215, "y": 40, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 56, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 56, "flags": 1}, + {"matrix": [3, 2], "x": 47, "y": 56, "flags": 1}, + {"matrix": [3, 3], "x": 64, "y": 56, "flags": 1}, + {"matrix": [3, 5], "x": 88, "y": 56, "flags": 1}, + {"matrix": [3, 7], "x": 127, "y": 56, "flags": 1}, + {"matrix": [3, 9], "x": 159, "y": 56, "flags": 1}, + {"matrix": [3, 10], "x": 177, "y": 56, "flags": 1}, + {"matrix": [3, 11], "x": 194, "y": 56, "flags": 1}, + {"matrix": [3, 12], "x": 213, "y": 56, "flags": 1} + ] }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "E6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c index b8ea0688cd..7e9eb6307d 100644 --- a/keyboards/evyd13/atom47/rev5/rev5.c +++ b/keyboards/evyd13/atom47/rev5/rev5.c @@ -77,73 +77,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW11_CS13, SW12_CS13, SW10_CS13} }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NO_LED, 24 }, - { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 }, - { 38, 39, 40, 41, NO_LED, 42, NO_LED, 43, NO_LED, 44, 45, 46, 47 } -}, { - // LED Index to Physical Position - { 9, 8 }, - { 26, 8 }, - { 43, 8 }, - { 60, 8 }, - { 78, 8 }, - { 95, 8 }, - { 112, 8 }, - { 129, 8 }, - { 146, 8 }, - { 164, 8 }, - { 181, 8 }, - { 198, 8 }, - { 215, 8 }, - - { 11, 24 }, - { 30, 24 }, - { 47, 24 }, - { 64, 24 }, - { 82, 24 }, - { 99, 24 }, - { 116, 24 }, - { 134, 24 }, - { 151, 24 }, - { 168, 24 }, - { 185, 24 }, - { 209, 24 }, - - { 15, 40 }, - { 20, 22 }, - { 39, 40 }, - { 56, 40 }, - { 73, 40 }, - { 90, 40 }, - { 108, 40 }, - { 125, 40 }, - { 142, 40 }, - { 159, 40 }, - { 177, 40 }, - { 196, 40 }, - { 215, 40 }, - - { 11, 56 }, - { 30, 56 }, - { 47, 56 }, - { 64, 56 }, - { 88, 56 }, - { 127, 56 }, - { 159, 56 }, - { 177, 56 }, - { 194, 56 }, - { 213, 56 }, -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/evyd13/eon40/keymaps/default/keymap.c b/keyboards/evyd13/eon40/keymaps/default/keymap.c index 1ddd92ce27..b5fbf6f654 100644 --- a/keyboards/evyd13/eon40/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon40/keymaps/default/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon40/readme.md b/keyboards/evyd13/eon40/readme.md index 5a4e8e3f2d..f3e82ae0b2 100644 --- a/keyboards/evyd13/eon40/readme.md +++ b/keyboards/evyd13/eon40/readme.md @@ -18,4 +18,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon40:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/eon65/keymaps/default/keymap.c b/keyboards/evyd13/eon65/keymaps/default/keymap.c index 2a55a12d6d..34d410cc20 100644 --- a/keyboards/evyd13/eon65/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon65/keymaps/default/keymap.c @@ -29,4 +29,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon65/readme.md b/keyboards/evyd13/eon65/readme.md index e7487e4c86..2415df87a1 100644 --- a/keyboards/evyd13/eon65/readme.md +++ b/keyboards/evyd13/eon65/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon65:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/eon75/keymaps/default/keymap.c b/keyboards/evyd13/eon75/keymaps/default/keymap.c index 24a8883005..bac0846348 100644 --- a/keyboards/evyd13/eon75/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon75/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon75/readme.md b/keyboards/evyd13/eon75/readme.md index 7b3ee43f1b..9afcb30e68 100644 --- a/keyboards/evyd13/eon75/readme.md +++ b/keyboards/evyd13/eon75/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon75:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/eon87/keymaps/default/keymap.c b/keyboards/evyd13/eon87/keymaps/default/keymap.c index 2f66cc5ebd..ecea82a353 100644 --- a/keyboards/evyd13/eon87/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon87/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon87/readme.md b/keyboards/evyd13/eon87/readme.md index 6eea6c20ec..e35f3b2feb 100644 --- a/keyboards/evyd13/eon87/readme.md +++ b/keyboards/evyd13/eon87/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon87:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/eon95/keymaps/default/keymap.c b/keyboards/evyd13/eon95/keymaps/default/keymap.c index 779f592784..84179d5d5f 100644 --- a/keyboards/evyd13/eon95/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon95/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon95/readme.md b/keyboards/evyd13/eon95/readme.md index 0bb43f6513..61b78dd159 100644 --- a/keyboards/evyd13/eon95/readme.md +++ b/keyboards/evyd13/eon95/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon95:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/gh80_1800/keymaps/default/keymap.c b/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c index cd22f7bf56..1962bb071e 100644 --- a/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c +++ b/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_PPLS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT ), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/gh80_1800/readme.md b/keyboards/evyd13/gh80_1800/readme.md index fd392988cf..56cd86e941 100644 --- a/keyboards/evyd13/gh80_1800/readme.md +++ b/keyboards/evyd13/gh80_1800/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/gh80_1800:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/gh80_3700/readme.md b/keyboards/evyd13/gh80_3700/readme.md index 11366f9a14..cba195173d 100644 --- a/keyboards/evyd13/gh80_3700/readme.md +++ b/keyboards/evyd13/gh80_3700/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/gh80_3700:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/minitomic/keymaps/default/keymap.c b/keyboards/evyd13/minitomic/keymaps/default/keymap.c index 400c5e364d..f1c4d58e70 100644 --- a/keyboards/evyd13/minitomic/keymaps/default/keymap.c +++ b/keyboards/evyd13/minitomic/keymaps/default/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/minitomic/readme.md b/keyboards/evyd13/minitomic/readme.md index f4330d4d54..3f74986d22 100644 --- a/keyboards/evyd13/minitomic/readme.md +++ b/keyboards/evyd13/minitomic/readme.md @@ -20,4 +20,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/minitomic:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/mx5160/readme.md b/keyboards/evyd13/mx5160/readme.md index 677b16072d..3bfd980dd8 100644 --- a/keyboards/evyd13/mx5160/readme.md +++ b/keyboards/evyd13/mx5160/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/mx5160:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/omrontkl/keymaps/default/keymap.c b/keyboards/evyd13/omrontkl/keymaps/default/keymap.c index d0e930b4b3..9b1a049da5 100644 --- a/keyboards/evyd13/omrontkl/keymaps/default/keymap.c +++ b/keyboards/evyd13/omrontkl/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/omrontkl/readme.md b/keyboards/evyd13/omrontkl/readme.md index e45117c27c..64e3095f2e 100644 --- a/keyboards/evyd13/omrontkl/readme.md +++ b/keyboards/evyd13/omrontkl/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/omrontkl:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/evyd13/pockettype/readme.md b/keyboards/evyd13/pockettype/readme.md index c32568a800..84a47e20e3 100644 --- a/keyboards/evyd13/pockettype/readme.md +++ b/keyboards/evyd13/pockettype/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/pockettype:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c index 9a7856306b..7e3bed8f2f 100644 --- a/keyboards/exclusive/e6_rgb/e6_rgb.c +++ b/keyboards/exclusive/e6_rgb/e6_rgb.c @@ -90,81 +90,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW5_CS16, SW4_CS16, SW6_CS16}, {0, SW2_CS16, SW1_CS16, SW3_CS16}, }; - -led_config_t g_led_config = { { - { 0, 1, 4, 5, 12, 13, 36, 20, 21, 24, 25, 16, 17, 28 }, - { 2, 6, 7, 14, 15, 37, 38, 22, 23, 26, 27, 18, 19, 30 }, - { 3, 8, 9, 32, 33, 39, 40, 44, 45, 48, 49, 52, 31, NO_LED }, - { 59, 10, 11, 34, 35, 41, 42, 46, 47, 50, 53, 54, 56, NO_LED }, - { 60, 61, 62, NO_LED, NO_LED, 43, 51, 55, 58, 57, NO_LED, NO_LED, NO_LED, NO_LED } -}, { -//cs1 - { 0, 0 }, { 17, 0 }, { 0, 16 }, { 0, 32 }, -//cs2 - { 34, 0 }, { 51, 0 }, { 17, 16 }, { 34, 16 }, -//cs3 - { 17, 32 }, { 34, 32 }, { 17, 48 }, { 34, 48 }, -//cs4 - { 68, 0 }, { 85, 0 }, { 51, 16 }, { 68, 16 }, -//cs5 - { 187, 0 }, { 204, 0 }, { 187, 16 }, { 204, 16 }, -//cs6 - { 119, 0 }, { 136, 0 }, { 119, 16 }, { 136, 16 }, -//cs7 - { 153, 0 }, { 170, 0 }, { 153, 16 }, { 170, 16 }, -//cs8 - { 221, 0 }, { 221, 0 }, { 221, 32 }, { 221, 16 }, -//cs9 - { 51, 32 }, { 68, 32 }, { 51, 48 }, { 68, 48 }, -//cs10 - { 102, 0 }, { 85, 16 }, { 102, 16 }, { 85, 32 }, -//cs11 - { 102, 32 }, { 85, 48 }, { 102, 48 }, { 102, 64 }, -//cs12 - { 119, 32 }, { 136, 32 }, { 119, 48 }, { 136, 48 }, -//cs13 - { 153, 32 }, { 170, 32 }, { 153, 48 }, { 136, 48 }, -//cs14 - { 187, 32 }, { 170, 48 }, { 187, 48 }, { 153, 48 }, -//cs15 - { 221, 48 }, { 221, 64 }, { 204, 64 }, -//cs16 - { 0, 48 }, { 0, 64 }, { 17, 64 }, { 34, 64 } -}, { -//cs1 - 1, 4, 1, 1, -//cs2 - 4, 4, 4, 4, -//cs3 - 4, 4, 4, 4, -//cs4 - 4, 4, 4, 4, -//cs5 - 4, 4, 4, 4, -//cs6 - 4, 4, 4, 4, -//cs7 - 4, 4, 4, 4, -//cs8 - 4, 4, 1, 1, -//cs9 - 4, 4, 4, 4, -//cs10 - 4, 4, 4, 4, -//cs11 - 4, 4, 4, 4, -//cs12 - 4, 4, 4, 4, -//cs13 - 4, 4, 4, 1, -//cs14 - 4, 4, 1, 1, -//cs15 - 1, 1, 1, -//cs16 - 1, 1, 1, 1 -} }; - #endif bool process_record_kb(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/exclusive/e6_rgb/keyboard.json b/keyboards/exclusive/e6_rgb/keyboard.json index 52d77dfcaa..d65893cf31 100644 --- a/keyboards/exclusive/e6_rgb/keyboard.json +++ b/keyboards/exclusive/e6_rgb/keyboard.json @@ -8,7 +8,72 @@ "device_version": "0.6.2" }, "rgb_matrix": { - "driver": "is31fl3733" + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 51, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [0, 11], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 204, "y": 0, "flags": 4}, + {"matrix": [1, 11], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 204, "y": 16, "flags": 4}, + {"matrix": [0, 7], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 136, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 119, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [0, 9], "x": 153, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 170, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 170, "y": 16, "flags": 4}, + {"matrix": [0, 13], "x": 221, "y": 0, "flags": 4}, + {"x": 221, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 221, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 221, "y": 16, "flags": 1}, + {"matrix": [2, 3], "x": 51, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 102, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 102, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 102, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 102, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [2, 7], "x": 119, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 119, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4}, + {"matrix": [2, 9], "x": 153, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 170, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 136, "y": 48, "flags": 1}, + {"matrix": [2, 11], "x": 187, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 170, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 187, "y": 48, "flags": 1}, + {"matrix": [4, 7], "x": 153, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 221, "y": 48, "flags": 1}, + {"matrix": [4, 9], "x": 221, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 204, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c b/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c index b785a3279e..7e3755f0b9 100644 --- a/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c +++ b/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c @@ -8,4 +8,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_MENU, KC_SPACE, KC_SPACE, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), -}; \ No newline at end of file +}; diff --git a/keyboards/exclusive/e6v2/oe/readme.md b/keyboards/exclusive/e6v2/oe/readme.md index 9d5dd62615..cdf27dd9dd 100644 --- a/keyboards/exclusive/e6v2/oe/readme.md +++ b/keyboards/exclusive/e6v2/oe/readme.md @@ -16,4 +16,4 @@ Or to make and flash: make e6v2/oe:default:dfu -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/exclusive/e7v2/keyboard.json b/keyboards/exclusive/e7v2/keyboard.json new file mode 100644 index 0000000000..542237e1bf --- /dev/null +++ b/keyboards/exclusive/e7v2/keyboard.json @@ -0,0 +1,392 @@ +{ + "manufacturer": "Exclusive / E-Team", + "keyboard_name": "E7V2", + "maintainer": "Aidan Smith", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "ws2812": { + "pin": "E2" + }, + "rgblight": { + "driver": "ws2812", + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 54, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, + "backlight": { + "pin": "B6", + "levels": 6 + }, + "matrix_pins": { + "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["C6", "B0", "B1", "B2", "B3", "B7"] + }, + "processor": "atmega32u4", + "url": "https://exclusive.run/collections/e7-v2", + "usb": { + "device_version": "1.0.0", + "pid": "0xE702", + "vid": "0x4558" + }, + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [5, 14], "x": 15.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_75_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1.25, "y": 0}, + {"matrix": [0, 2], "x": 2.25, "y": 0}, + {"matrix": [0, 3], "x": 3.25, "y": 0}, + {"matrix": [0, 4], "x": 4.25, "y": 0}, + {"matrix": [0, 5], "x": 5.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 14], "x": 13, "y": 1.25, "w": 2}, + {"matrix": [5, 14], "x": 15.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_75_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": [0, 5], "x": 5.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [2, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_75_iso_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": [0, 5], "x": 5.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "y": 0}, + {"matrix": [0, 9], "x": 9.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [0, 13], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [1, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 14], "x": 14, "y": 1.25}, + {"matrix": [5, 14], "x": 15.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14.25, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25}, + {"matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/exclusive/e7v2/keymaps/default/keymap.c b/keyboards/exclusive/e7v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..f41b387732 --- /dev/null +++ b/keyboards/exclusive/e7v2/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] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│ │Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt │ GUI │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [0] = LAYOUT_75_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_DEL, KC_PSCR, + 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_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c b/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..e6cff42f3f --- /dev/null +++ b/keyboards/exclusive/e7v2/keymaps/default_iso/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] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│ │PSC│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ENT │PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt │ GUI │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [0] = LAYOUT_75_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_DEL, KC_PSCR, + 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_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_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_NUHS, 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/exclusive/e7v2/readme.md b/keyboards/exclusive/e7v2/readme.md new file mode 100644 index 0000000000..77345ede70 --- /dev/null +++ b/keyboards/exclusive/e7v2/readme.md @@ -0,0 +1,27 @@ +# E7-V2 + +![E7-V2](https://i.imgur.com/p7Gi1fZ.jpeg) + +The second revision of a 75% keyboard made by Exclusive and run in a Geekhack group buy. + +* Keyboard Maintainer: [AidanSmith.dev](https://github.com/Aidan-OS) +* Hardware Supported: E7-V2 QMK Solder PCB +* Hardware Availability: [Exclusive's Website](https://exclusive.run/collections/e7-v2) + +Make example for this keyboard (after setting up your build environment): + + make exclusive/e7v2:default + +Flashing example for this keyboard: + + make exclusive/e7v2: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/exclusive/readme.md b/keyboards/exclusive/readme.md index bee613bf45..7bfc559d79 100644 --- a/keyboards/exclusive/readme.md +++ b/keyboards/exclusive/readme.md @@ -7,5 +7,6 @@ All files related to firmware of keyboards designed by Exclusive. * [e6_rgb](./e6_rgb/): maintainer [astro](https://github.com/yulei) * [e6-v2](./e6v2/): maintainers [MechMerlin](https://github.com/mechmerlin), [amnesia0287](https://github.com/amnesia0287) * [e7-v1](./e7v1): maintainer [masterzen](https://github.com/masterzen) +* [e7-v2](./e7v2): [AidanSmith.dev](https://github.com/Aidan-OS) * [e6.5](./e65): maintainer [masterzen](https://github.com/masterzen) * [e8.5](./e85): maintainer [MechMerlin](https://github.com/mechmerlin) diff --git a/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c index 6e4a35a8f8..8ab1664585 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c index 3f7b131353..2e47d6d9ec 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c @@ -41,4 +41,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_RCTL ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c index 968a01308e..e51cfd2a07 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c index 8d6559f1cd..c87a59acc9 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c @@ -41,4 +41,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_LGUI ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c b/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c index 3ea5b41594..dba3c066d0 100644 --- a/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c +++ b/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FUNCTN), KC_RCTL, KC_HOME, KC_PGDN, KC_END ) -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/theboulevard/readme.md b/keyboards/eyeohdesigns/theboulevard/readme.md index bfe330ab21..da18dd4ed8 100644 --- a/keyboards/eyeohdesigns/theboulevard/readme.md +++ b/keyboards/eyeohdesigns/theboulevard/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: To enter the bootloader, either depress the reset button on the back of the PCB, or use the `QK_BOOT` keycode found on the function layer. -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). \ No newline at end of file +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/fancytech/fancyalice66/fancyalice66.c b/keyboards/fancytech/fancyalice66/fancyalice66.c index 72e5355a31..a3ba6da13f 100644 --- a/keyboards/fancytech/fancyalice66/fancyalice66.c +++ b/keyboards/fancytech/fancyalice66/fancyalice66.c @@ -26,4 +26,4 @@ bool rgb_matrix_indicators_kb(void) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/fancytech/fancyalice66/keyboard.json b/keyboards/fancytech/fancyalice66/keyboard.json index c1f0a93f26..bfd0547130 100644 --- a/keyboards/fancytech/fancyalice66/keyboard.json +++ b/keyboards/fancytech/fancyalice66/keyboard.json @@ -249,4 +249,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c index 7ce470a71c..03cbfe5bd5 100644 --- a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c +++ b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, _______, RM_NEXT, _______, RM_VALD, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/fatotesa/keyboard.json b/keyboards/fatotesa/keyboard.json index 3013e8b812..f300daa8ce 100644 --- a/keyboards/fatotesa/keyboard.json +++ b/keyboards/fatotesa/keyboard.json @@ -32,9 +32,9 @@ "rows": ["B6", "E6", "D4", "D7", "B4", "B5"] } }, - "bootmagic": { - "matrix": [4, 1] - } + }, + "bootmagic": { + "matrix": [4, 1] }, "matrix_pins": { "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6", null], @@ -43,7 +43,7 @@ "usb": { "device_version": "1.0.0", "pid": "0x0000", - "vid": "0xFEED" + "vid": "0x5347" }, "layouts": { "LAYOUT": { diff --git a/keyboards/fatotesa/keymaps/default/keymap.c b/keyboards/fatotesa/keymaps/default/keymap.c index 1f6aa80488..a9fadb4142 100644 --- a/keyboards/fatotesa/keymaps/default/keymap.c +++ b/keyboards/fatotesa/keymaps/default/keymap.c @@ -13,18 +13,20 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_END, KC_INSERT, KC_DELETE, KC_KB_MUTE, - 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, - LT(1, 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_ENTER, - KC_LEFT_CTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, - KC_LEFT_SHIFT, KC_LEFT_ANGLE_BRACKET, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, - CW_TOGG, KC_LWIN, KC_LEFT_ALT, KC_BACKSPACE, KC_LEFT_ALT, KC_SPACE, KC_RIGHT_ALT, KC_RIGHT_CTRL, KC_NO, KC_NO - ), + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_END, KC_INSERT, KC_DELETE, KC_KB_MUTE, + 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_ENTER, + OSM(MOD_LCTL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, + OSM(MOD_LSFT), KC_LEFT_ANGLE_BRACKET, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, OSM(MOD_RSFT), + CW_TOGG, OSM(MOD_LGUI), KC_LEFT_ALT, MO(1), OSM(MOD_LALT), KC_SPACE, OSM(MOD_RALT), KC_RIGHT_CTRL, KC_NO, KC_NO + ), + [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______ - )}; + QK_REBOOT, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/fc660c/keymaps/default/README.md b/keyboards/fc660c/keymaps/default/README.md index f813ed0c3e..e1adcd19cc 100644 --- a/keyboards/fc660c/keymaps/default/README.md +++ b/keyboards/fc660c/keymaps/default/README.md @@ -2,4 +2,4 @@ Emulates original keymap. -![](https://i.imgur.com/fg89nez.jpg) \ No newline at end of file +![](https://i.imgur.com/fg89nez.jpg) diff --git a/keyboards/fc660c/keymaps/default_rgb/rules.mk b/keyboards/fc660c/keymaps/default_rgb/rules.mk index 7ad666d1a3..1e3cebb145 100644 --- a/keyboards/fc660c/keymaps/default_rgb/rules.mk +++ b/keyboards/fc660c/keymaps/default_rgb/rules.mk @@ -1 +1 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/fearherbs1/blue_team_pad/config.h b/keyboards/fearherbs1/blue_team_pad/config.h index 63b26f864d..3c12da6290 100644 --- a/keyboards/fearherbs1/blue_team_pad/config.h +++ b/keyboards/fearherbs1/blue_team_pad/config.h @@ -7,6 +7,5 @@ #define I2C1_SCL_PIN GP27 #define I2C1_SDA_PIN GP26 #define I2C_DRIVER I2CD1 -#define OLED_DISPLAY_128X32 #define OLED_BRIGHTNESS 128 #endif diff --git a/keyboards/feker/ik75/ik75.c b/keyboards/feker/ik75/ik75.c index c4da77a844..d93de7f2ec 100644 --- a/keyboards/feker/ik75/ik75.c +++ b/keyboards/feker/ik75/ik75.c @@ -161,31 +161,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW10_CS15, SW12_CS15, SW11_CS15}, // 125, Underglow 39 {1, SW10_CS16, SW12_CS16, SW11_CS16}, // 126, Underglow 40 }; - -led_config_t g_led_config = { { - { 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, NO_LED, NO_LED }, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, 102 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, NO_LED, 105 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, 103, 106 }, - { 48, NO_LED, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, NO_LED, 59, 45, 101 }, - { 93, 94, 14, NO_LED, NO_LED, NO_LED, 15, NO_LED, NO_LED, 30, 31, NO_LED, 47, 60, 61, 62 } -}, { - {0 , 15}, {14 , 15}, {29 , 15}, {43 , 15}, {58 , 15}, {72 , 15}, {87 , 15}, {101, 15}, {116, 15}, {130, 15}, {145, 15}, {159, 15}, {173, 15}, {195, 15}, {38 , 61}, {92 , 61}, - {4 , 26}, {22 , 26}, {36 , 26}, {51 , 26}, {65 , 26}, {79 , 26}, {94 , 26}, {108, 26}, {123, 26}, {137, 26}, {152, 26}, {166, 26}, {181, 26}, {199, 26}, {173, 61}, {159, 61}, - {5 , 38}, {25 , 38}, {40 , 38}, {54 , 38}, {69 , 38}, {83 , 38}, {98 , 38}, {112, 38}, {126, 38}, {141, 38}, {155, 38}, {170, 38}, {193, 38}, {206, 52}, {210, 12}, {145, 61}, - {9 , 49}, {33 , 49}, {47 , 49}, {61 , 49}, {76 , 49}, {90 , 49}, {105, 49}, {119, 49}, {134, 49}, {148, 49}, {163, 49}, {182, 49}, {191, 64}, {206, 64}, {220, 64}, - {14 , 0}, {28 , 0}, {53 , 0}, {63 , 0}, {74 , 0}, {88 , 0}, {102, 0}, {116, 0}, {130, 0}, {144, 0}, {158, 0}, {172, 0}, {189, 0}, {210, 0}, {224, 0}, {224, 11}, - {0 , 0}, {18 , 0}, {33 , 0}, {47 , 0}, {61 , 0}, {79 , 0}, {94 , 0}, {108, 0}, {123, 0}, {141, 0}, {155, 0}, {170, 0}, {184, 0}, {202, 0}, {2 , 61}, {20 , 61}, - {0 , 0}, {0 , 11}, {0 , 27}, {0 , 37}, {224, 5}, {210, 5}, {217, 0}, {224, 15}, {224, 38}, {210, 18}, {224, 26}, {224, 49}, {224, 56}, {224, 45}, {224, 35}, {224, 24}, - {0 , 48}, {0 , 56}, {0 , 64}, {14 , 64}, {28 , 64}, {49 , 64}, {67 , 64}, {84 , 64}, {98 , 64}, {112, 64}, {126, 64}, {140, 64}, {158, 64}, {172, 64}, {196, 64}, {224, 64}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 8, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 2, 2, 2, 2, 1, 1, 4, 4, 4, 8, 4, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif diff --git a/keyboards/feker/ik75/keyboard.json b/keyboards/feker/ik75/keyboard.json index 03b86e5d8b..c368c188a7 100644 --- a/keyboards/feker/ik75/keyboard.json +++ b/keyboards/feker/ik75/keyboard.json @@ -55,6 +55,135 @@ "solid_multisplash": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 58, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 116, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 159, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 173, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 195, "y": 15, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 92, "y": 61, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 79, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 123, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 137, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 152, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 166, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 181, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 199, "y": 26, "flags": 4}, + {"matrix": [5, 9], "x": 173, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 159, "y": 61, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 83, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 141, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 155, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 170, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 193, "y": 38, "flags": 1}, + {"matrix": [4, 14], "x": 206, "y": 52, "flags": 4}, + {"x": 210, "y": 12, "flags": 8}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 47, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 76, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 90, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 119, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 148, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 163, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 182, "y": 49, "flags": 1}, + {"matrix": [5, 13], "x": 191, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 206, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 220, "y": 64, "flags": 4}, + {"x": 14, "y": 0, "flags": 2}, + {"x": 28, "y": 0, "flags": 2}, + {"x": 53, "y": 0, "flags": 2}, + {"x": 63, "y": 0, "flags": 2}, + {"x": 74, "y": 0, "flags": 2}, + {"x": 88, "y": 0, "flags": 2}, + {"x": 102, "y": 0, "flags": 2}, + {"x": 116, "y": 0, "flags": 2}, + {"x": 130, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 158, "y": 0, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 189, "y": 0, "flags": 2}, + {"x": 210, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 11, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 79, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 141, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 170, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 184, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 11, "flags": 2}, + {"x": 0, "y": 27, "flags": 2}, + {"x": 0, "y": 37, "flags": 2}, + {"x": 224, "y": 5, "flags": 1}, + {"x": 210, "y": 5, "flags": 1}, + {"matrix": [4, 15], "x": 217, "y": 0, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4}, + {"x": 210, "y": 18, "flags": 8}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 49, "flags": 4}, + {"x": 224, "y": 56, "flags": 2}, + {"x": 224, "y": 45, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"x": 224, "y": 24, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 14, "y": 64, "flags": 2}, + {"x": 28, "y": 64, "flags": 2}, + {"x": 49, "y": 64, "flags": 2}, + {"x": 67, "y": 64, "flags": 2}, + {"x": 84, "y": 64, "flags": 2}, + {"x": 98, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 126, "y": 64, "flags": 2}, + {"x": 140, "y": 64, "flags": 2}, + {"x": 158, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 196, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 200 }, "build": { diff --git a/keyboards/feker/ik75/keymaps/default/keymap.c b/keyboards/feker/ik75/keymaps/default/keymap.c index 7dd762a6ec..836beb7e0e 100644 --- a/keyboards/feker/ik75/keymaps/default/keymap.c +++ b/keyboards/feker/ik75/keymaps/default/keymap.c @@ -101,39 +101,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_UNDERGLOW): { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - } - - return true; -} - bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(46, 0, 0, 0); rgb_matrix_set_color(104, 0, 0, 0); diff --git a/keyboards/ferris/readme.md b/keyboards/ferris/readme.md index 0d1fe284fd..be4199532e 100644 --- a/keyboards/ferris/readme.md +++ b/keyboards/ferris/readme.md @@ -8,8 +8,7 @@ A split 34 keys column staggered keyboard named and decorated after the rustlang * Hardware Supported: * Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact) * Ferris 0.2 (With stm32f072 chip. Comes in 4 variants: bling, mini, high and compact) - * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout) -* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) + * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cut shapes, but with an identical pinout) Make examples for this keyboard (after setting up your build environment): diff --git a/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c b/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c index 8baf4b6f9d..754e4ef55a 100644 --- a/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c +++ b/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/fjlabs/peaker/readme.md b/keyboards/fjlabs/peaker/readme.md index ca85b99629..819923309d 100644 --- a/keyboards/fjlabs/peaker/readme.md +++ b/keyboards/fjlabs/peaker/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): 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). -You can enter the bootloader by pressing the Reset button on the back of the PCB. \ No newline at end of file +You can enter the bootloader by pressing the Reset button on the back of the PCB. diff --git a/keyboards/fjlabs/sinanju/readme.md b/keyboards/fjlabs/sinanju/readme.md index 9d3a0f4330..be9d37ce26 100644 --- a/keyboards/fjlabs/sinanju/readme.md +++ b/keyboards/fjlabs/sinanju/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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 can be entered by pressing the reset button near the main microcontroller while the board is plugged in. Alternatively, it may be entered by holding the top-left-most switch and plugging in the PCB while held. \ No newline at end of file +Bootloader can be entered by pressing the reset button near the main microcontroller while the board is plugged in. Alternatively, it may be entered by holding the top-left-most switch and plugging in the PCB while held. diff --git a/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c b/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c index 8baf4b6f9d..754e4ef55a 100644 --- a/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c +++ b/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/fjlabs/tf60ansi/readme.md b/keyboards/fjlabs/tf60ansi/readme.md index 274db0c27e..b77c773015 100644 --- a/keyboards/fjlabs/tf60ansi/readme.md +++ b/keyboards/fjlabs/tf60ansi/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c b/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c index 7d6549847a..18d069a006 100644 --- a/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c +++ b/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/fjlabs/tf60v2/readme.md b/keyboards/fjlabs/tf60v2/readme.md index 73b1473e2a..ce3ac0fac3 100644 --- a/keyboards/fjlabs/tf60v2/readme.md +++ b/keyboards/fjlabs/tf60v2/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c b/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c index 3b77e6f3d3..8548cf99e1 100644 --- a/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c +++ b/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/fjlabs/tf65rgbv2/readme.md b/keyboards/fjlabs/tf65rgbv2/readme.md index b46c40cbfe..47753b4fd7 100644 --- a/keyboards/fjlabs/tf65rgbv2/readme.md +++ b/keyboards/fjlabs/tf65rgbv2/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/flashquark/horizon_z/keyboard.json b/keyboards/flashquark/horizon_z/keyboard.json index 8e3ba47e4d..d0af1eda4e 100755 --- a/keyboards/flashquark/horizon_z/keyboard.json +++ b/keyboards/flashquark/horizon_z/keyboard.json @@ -188,4 +188,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c index eb2dbdc22d..9930ca62c5 100755 --- a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c +++ b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - }; \ No newline at end of file + }; diff --git a/keyboards/flashquark/horizon_z/readme.md b/keyboards/flashquark/horizon_z/readme.md index 0c4e8d5745..9eb848ebb9 100755 --- a/keyboards/flashquark/horizon_z/readme.md +++ b/keyboards/flashquark/horizon_z/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Press reset button on the back of keyboard. \ No newline at end of file +Press reset button on the back of keyboard. diff --git a/keyboards/fleuron/readme.md b/keyboards/fleuron/readme.md index 286ceb7cf8..b406cf345e 100644 --- a/keyboards/fleuron/readme.md +++ b/keyboards/fleuron/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make fleuron:default to build firmware make fleuron:default:dfu to make and flash with dfu -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/flx/virgo/keymaps/default/keymap.c b/keyboards/flx/virgo/keymaps/default/keymap.c index f2c72ec9b4..0117efc0b2 100644 --- a/keyboards/flx/virgo/keymaps/default/keymap.c +++ b/keyboards/flx/virgo/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/flxlb/zplit/keyboard.json b/keyboards/flxlb/zplit/keyboard.json index fdbe34fc7e..07bdfe7a57 100644 --- a/keyboards/flxlb/zplit/keyboard.json +++ b/keyboards/flxlb/zplit/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "zplit", "manufacturer": "fluxlab", - "url": "https://github.com/cccywj/qmk_firmware", "maintainer": "flxlb", "usb": { "vid": "0x7076", diff --git a/keyboards/fortitude60/readme.md b/keyboards/fortitude60/readme.md index 21884df3c3..ce0bbe50ed 100644 --- a/keyboards/fortitude60/readme.md +++ b/keyboards/fortitude60/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make fortitude60/rev1: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). \ No newline at end of file +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/foxlab/leaf60/readme.md b/keyboards/foxlab/leaf60/readme.md index 994915680c..6faebcbe6f 100644 --- a/keyboards/foxlab/leaf60/readme.md +++ b/keyboards/foxlab/leaf60/readme.md @@ -4,4 +4,4 @@ The Leaf60 is a 60% gasket mount board sold via [Geekhack Group Buy](https://gee It was available with a universal layout PCB and a hotswap tsangan PCB. -**Firmware generated for one PCB will not work on the other.** \ No newline at end of file +**Firmware generated for one PCB will not work on the other.** diff --git a/keyboards/frobiac/blackbowl/matrix.c b/keyboards/frobiac/blackbowl/matrix.c index 2a2c2618ab..1210538734 100644 --- a/keyboards/frobiac/blackbowl/matrix.c +++ b/keyboards/frobiac/blackbowl/matrix.c @@ -20,7 +20,6 @@ #include "timer.h" #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) -#define ROW_SHIFTER ((matrix_row_t)1) static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); @@ -100,10 +99,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (col_state & (1 << current_row)) { // key closed; set state bit in matrix - current_matrix[current_row] |= (ROW_SHIFTER << current_col); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << current_col); } else { // key open; clear state bit in matrix - current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine whether the matrix changed state diff --git a/keyboards/frooastboard/nano/keyboard.json b/keyboards/frooastboard/nano/keyboard.json index 45e3dc75d6..224699d121 100644 --- a/keyboards/frooastboard/nano/keyboard.json +++ b/keyboards/frooastboard/nano/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Frooastboard Nano", "manufacturer": "frooastside", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/frooastboard/nano", "maintainer": "frooastside", "diode_direction": "COL2ROW", "layouts": { diff --git a/keyboards/frooastboard/walnut/keyboard.json b/keyboards/frooastboard/walnut/keyboard.json index f1958c04a2..174adcc7db 100644 --- a/keyboards/frooastboard/walnut/keyboard.json +++ b/keyboards/frooastboard/walnut/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Frooastboard Walnut", "manufacturer": "Frooastside", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/frooastboard/walnut", "maintainer": "Frooastside", "diode_direction": "COL2ROW", "processor": "atmega32u4", @@ -48,6 +47,56 @@ "speed": 191 }, "driver": "is31fl3737", + "layout": [ + {"x": 0, "y": 62, "flags": 2}, + {"x": 0, "y": 50, "flags": 2}, + {"x": 0, "y": 38, "flags": 2}, + {"x": 0, "y": 26, "flags": 2}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 2, "flags": 2}, + {"x": 0, "y": 2, "flags": 2}, + {"x": 12, "y": 2, "flags": 2}, + {"x": 24, "y": 2, "flags": 2}, + {"x": 36, "y": 2, "flags": 2}, + {"x": 48, "y": 2, "flags": 2}, + {"x": 60, "y": 2, "flags": 2}, + {"x": 72, "y": 2, "flags": 2}, + {"x": 84, "y": 2, "flags": 2}, + {"x": 96, "y": 2, "flags": 2}, + {"x": 108, "y": 2, "flags": 2}, + {"x": 120, "y": 2, "flags": 2}, + {"x": 132, "y": 2, "flags": 2}, + {"x": 144, "y": 2, "flags": 2}, + {"x": 156, "y": 2, "flags": 2}, + {"x": 168, "y": 2, "flags": 2}, + {"x": 180, "y": 2, "flags": 2}, + {"x": 192, "y": 2, "flags": 2}, + {"x": 204, "y": 2, "flags": 2}, + {"x": 204, "y": 2, "flags": 2}, + {"x": 204, "y": 14, "flags": 2}, + {"x": 204, "y": 26, "flags": 2}, + {"x": 204, "y": 38, "flags": 2}, + {"x": 204, "y": 50, "flags": 2}, + {"x": 204, "y": 62, "flags": 2}, + {"x": 204, "y": 62, "flags": 2}, + {"x": 192, "y": 62, "flags": 2}, + {"x": 180, "y": 62, "flags": 2}, + {"x": 168, "y": 62, "flags": 2}, + {"x": 156, "y": 62, "flags": 2}, + {"x": 144, "y": 62, "flags": 2}, + {"x": 132, "y": 62, "flags": 2}, + {"x": 120, "y": 62, "flags": 2}, + {"x": 108, "y": 62, "flags": 2}, + {"x": 96, "y": 62, "flags": 2}, + {"x": 84, "y": 62, "flags": 2}, + {"x": 72, "y": 62, "flags": 2}, + {"x": 60, "y": 62, "flags": 2}, + {"x": 48, "y": 62, "flags": 2}, + {"x": 36, "y": 62, "flags": 2}, + {"x": 24, "y": 62, "flags": 2}, + {"x": 12, "y": 62, "flags": 2}, + {"x": 0, "y": 62, "flags": 2} + ], "max_brightness": 191, "sleep": true }, diff --git a/keyboards/frooastboard/walnut/walnut.c b/keyboards/frooastboard/walnut/walnut.c index 0de3467ae4..448895ec68 100644 --- a/keyboards/frooastboard/walnut/walnut.c +++ b/keyboards/frooastboard/walnut/walnut.c @@ -61,26 +61,4 @@ const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = { {0, SW2_CS11, SW1_CS11, SW3_CS11}, {0, SW2_CS12, SW1_CS12, SW3_CS12} }; - -led_config_t g_led_config = { - { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } - }, { - {0, 62}, {0, 50}, {0, 38}, {0, 26}, {0, 14}, {0, 2}, - {0, 2}, {12, 2}, {24, 2}, {36, 2}, {48, 2}, {60, 2}, {72, 2}, {84, 2}, {96, 2}, {108, 2}, {120, 2}, {132, 2}, {144, 2}, {156, 2}, {168, 2}, {180, 2}, {192, 2}, {204, 2}, - {204, 2}, {204, 14}, {204, 26}, {204, 38}, {204, 50}, {204, 62}, - {204, 62}, {192, 62}, {180, 62}, {168, 62}, {156, 62}, {144, 62}, {132, 62}, {120, 62}, {108, 62}, {96, 62}, {84, 62}, {72, 62}, {60, 62}, {48, 62}, {36, 62}, {24, 62}, {12, 62}, {0, 62} - }, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 - } -}; - #endif // defined(RGB_MATRIX_ENABLE) diff --git a/keyboards/fruitykeeb/fruitbar/r2/config.h b/keyboards/fruitykeeb/fruitbar/r2/config.h index 320889eb91..c1f6f883a6 100644 --- a/keyboards/fruitykeeb/fruitbar/r2/config.h +++ b/keyboards/fruitykeeb/fruitbar/r2/config.h @@ -19,6 +19,3 @@ along with this program. If not, see . #define I2C_DRIVER I2CD1 #define I2C1_SCL_PIN GP27 #define I2C1_SDA_PIN GP26 - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U diff --git a/keyboards/fungo/rev1/post_config.h b/keyboards/fungo/rev1/post_config.h index 16a06bf0c7..a2d7c1dff6 100644 --- a/keyboards/fungo/rev1/post_config.h +++ b/keyboards/fungo/rev1/post_config.h @@ -27,4 +27,4 @@ #ifndef MOUSEKEY_INITIAL_SPEED #define MOUSEKEY_INITIAL_SPEED 20 -#endif \ No newline at end of file +#endif diff --git a/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json index 5bc62f4bca..9e9a8798a7 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",70938],"tlw":["a",1885],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",6312],"tlw":["s",729],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",51462],"tlw":["saa",14038],"lp":["sa","saa","as","ass","wa","aas","ssa","sas","ww","aw","saas","www","assa","ssaa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2647],"tlw":["e",88],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",65201],"tlw":["ae",1518],"lp":["ae","aae","ex","ea","ax","aee","xe","xa","exa","exe","axe","aex","eae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",283077],"tlw":["de",23660],"lp":["de","ed","es","se","ede","ds","des","sse","dd","dse","ess","dde","eds","edes","ese","sed","ded","see","dede","sede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",24996],"tlw":["da",8071],"lp":["ad","da","ade","aes","aad","sae","aed","ada","sad","aede","aade","saad","aada","ads","asse","aese","dae","dda","esa","we"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",16147],"tlw":["t",62],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",52505],"tlw":["at",39486],"lp":["at","ta","af","fa","ft","att","taa","faa","aft","aat","ff","aatt","fat","fatt","aff","tat","tf","ata","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",66160],"tlw":["c",179],"lp":["st","ts","sc","sst","ct","cc","tc","cs","cst","tst","tsc","tts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",9134],"tlw":["fast",485],"lp":["sta","ast","sat","staa","ca","satt","tsa","fas","fast","fs","afs","ac","asta","sf","tas","tsaa","fst","afst","stat","tsat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",200106],"tlw":["er",24396],"lp":["er","et","te","re","ere","rt","ter","tr","tte","ret","ett","ette","rte","ert","rr","tet","tter","rer","rre","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",71256],"tlw":["fra",7354],"lp":["ar","ra","aer","fr","aar","aere","fte","fra","ef","tra","rae","are","fter","tae","eft","atte","efte","aet","fre","rf"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",50507],"tlw":["det",40064],"lp":["det","der","dt","ste","rd","dr","rs","est","dre","red","res","este","rde","ted","dere","rst","dte","rede","dst","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["aest",3267],"tlw":["satte",874],"lp":["aest","stra","stae","ader","ard","aerd","ared","rsta","saet","rda","derf","aard","fes","tad","stad","raad","dra","fred","fess","raed"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",12763],"trw":["n",53],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",107331],"trp":["na",18738],"tlw":["an",271],"trw":["naa",705],"lp":["an","aan","ann","anna","ana"],"rp":["na","naa","nan","nna","naan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2823],"trp":["ns",25305],"trw":["j",68],"lp":["sn","sj"],"rp":["ns","jn","js","nj","nss","jj"]},"19":{"input":[1,2,5],"tlp":["ans",12498],"trp":["ja",8744],"tlw":["sans",47],"trw":["ja",3506],"lp":["ans","san","sna","sja","aj","ajn","ssan","ansa","aaj","sans","snaa","wan","wn","asn","aasn"],"rp":["ja","nsa","jan","nas","nsaa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",215951],"trp":["ne",54829],"tlw":["en",31130],"trw":["nye",787],"lp":["en","ene","enn","enne","enen","een","ey","eny"],"rp":["ne","nne","yn","nen","ny","ye","nene","yne","nye","yen","nnen","nee"]},"21":{"input":[1,3,5],"tlp":["aen",11318],"trp":["nae",4921],"tlw":["anne",45],"trw":["nae",24],"lp":["aen","anne","ane","aene","aane","aaen","anen","ay","ena","any","aany","ean","eann","aenn","xen"],"rp":["nae","naae","ya","yan","naee"]},"22":{"input":[2,3,5],"tlp":["den",50813],"trp":["nd",90348],"tlw":["den",24655],"trw":["ned",3104],"lp":["den","end","ende","ens","ej","sen","sy","dn","syn"],"rp":["nd","nde","je","nden","ned","ys","ndes","jen","nes","yd","nds"]},"23":{"input":[1,2,3,5],"tlp":["and",24671],"trp":["jae",3560],"tlw":["anden",1960],"trw":["naade",237],"lp":["and","ande","dan","aend","aand","adan","ands","aden","dann","sand","anse","sjae","dans","aned"],"rp":["jae","naes","nand","nda","naad","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",1655],"trp":["nt",13043],"tlw":["b",55],"lp":["tn","bt","bn","bb","tb"],"rp":["nt","nb","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",11045],"trp":["nat",1917],"tlw":["tabt",109],"trw":["nat",438],"lp":["ba","ab","tan","ant","aab","fan","ban","baa","abt","abn","aabn","aabt","anta","tab","tabt","fb"],"rp":["nat","nf","nta","natt"]},"26":{"input":[2,4,5],"tlp":["tj",1039],"trp":["nst",1524],"lp":["tj","bj","sb","stj","stn","bs","tsj","sbj"],"rp":["nst","nc","jst","jt","nsb","nstn","ncs","ncst","nct","jnb","nbj","jnbj"]},"27":{"input":[1,2,4,5],"tlp":["stan",1647],"trp":["nsta",463],"tlw":["satan",75],"lp":["stan","fj","anc","bac","taj","abs","tja","stja","tajn","sant","bja","anst","asb","asbj","bas","tans"],"rp":["nsta","ntas","nsat","jac"]},"28":{"input":[3,4,5],"tlp":["be",22658],"trp":["nte",7013],"tlw":["byen",409],"trw":["nyt",305],"lp":["be","rn","ren","ten","br","rne","ern","erne","ent","ry","ty","eb","rb","ber","eren","bet","ente"],"rp":["nte","ner","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",3013],"trp":["naar",3178],"tlw":["bare",1165],"trw":["naar",3077],"lp":["ran","taen","bar","abe","ante","ften","arb","arbe","bra","raen","bare","fy","arn","aeb","bae","barn"],"rp":["naar","nar","naer","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",3731],"trp":["nder",8663],"tlw":["syntes",800],"trw":["jer",433],"lp":["sten","endt","bes","bed","rden","rej","bej","rejs","rbej","bejd","best","dern"],"rp":["nder","ndt","ndr","ndre","ndet","jer","ndte","yst"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",1970],"trw":["naesten",941],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",246],"trw":["i",43365],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",419],"trp":["ia",2518],"lp":["ai","za","zi","az"],"rp":["ia","iz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",39075],"trp":["ik",32997],"tlw":["si",156],"trw":["is",201],"lp":["si","sk","ski","sik","ssi","sikk","sis","skik"],"rp":["ik","kk","ikk","is","ki","ks","isk","iss","kik","ksi","ksis","kikk"]},"35":{"input":[1,2,6],"tlp":["ska",8476],"trp":["ka",23048],"tlw":["zak",168],"trw":["ka",248],"lp":["ska","ak","akk","ask","wi","aks","aask","aksi","asi","zak","aka","skaa","assi","aak"],"rp":["ka","kas","kaa","isa","ika","kass"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",2228],"trp":["ie",6094],"tlw":["ei",448],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",48],"trp":["ix",31],"trw":["ix",31],"lp":["ze","xi","axi","aie","eiz","aei","aze"],"rp":["ix","iae"]},"38":{"input":[2,3,6],"tlp":["di",14167],"trp":["ke",57169],"tlw":["disse",1266],"trw":["ikke",20180],"lp":["di","ske","ek","sid","side","esk","ekk","ekke","eske"],"rp":["ke","kke","id","ikke","ide","ked","kede","ids","ise","kked","iske"]},"39":{"input":[1,2,3,6],"tlp":["aek",2798],"trp":["kae",1766],"tlw":["skade",99],"trw":["ida",70],"lp":["aek","akke","aekk","aske","skae","adi","dska","daek","adsk","eka","skad","aesk","eska","aeks"],"rp":["kae","idda","isae","ida","kad","kade"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",51178],"trp":["iv",10524],"tlw":["vi",7341],"trw":["it",23],"lp":["ti","vi","vt","tv","tvi","tiv","viv","tti","tviv","tit","vit","vv","vitt","tivt"],"rp":["iv","it","iti","itt","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",50676],"trp":["if",1405],"tlw":["tav",135],"lp":["va","av","fi","ati","tav","avi","vaa","fti","tia","vf","avt","atti","tva","afti","tz"],"rp":["if","ift","iva","ita","itz"]},"42":{"input":[2,4,6],"tlp":["vis",7341],"trp":["ist",4703],"tlw":["sit",2281],"lp":["vis","sti","sv","sit","vist","vs","tis","tisk","ci","svi","visk","vik","tik"],"rp":["ist","kt","kv","kvi","isti","ic","kti"]},"43":{"input":[1,2,4,6],"tlp":["sva",3328],"trp":["kast",607],"tlw":["fik",1865],"trw":["kat",43],"lp":["sva","fik","akt","tak","avs","stak","takk","akti","tavs","fak","stia","fakt","fis","fisk","sav"],"rp":["kast","kat","kaf","kaff","kva"]},"44":{"input":[3,4,6],"tlp":["ve",58500],"trp":["ive",7238],"tlw":["rev",144],"trw":["iver",59],"lp":["ve","ri","ver","ev","eve","vet","eri","rv","rti","rev","vir","evet","rve","rie","vr"],"rp":["ive","ir","iver","ivet","ier"]},"45":{"input":[1,3,4,6],"tlp":["var",27429],"trp":["ifte",524],"tlw":["var",23713],"trw":["ivar",148],"lp":["var","vae","vaer","ave","vare","aev","eva","ari","fri","evae","rav","aeve","arv","arve","avet","farv","aver","verf","arie"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13008],"trp":["kr",7446],"tlw":["ved",9023],"trw":["idet",571],"lp":["ved","vd","vde","rk","tid","rke","vid","erk","dri","skr","vede","vide","erke"],"rp":["kr","ker","idt","ket","kri","idst","kker"]},"47":{"input":[1,2,3,4,6],"tlw":["svarede",1115],"trw":["kastede",275],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",55966],"trw":["h",182],"lp":[],"rp":["in","ni","nin","hi","nh","hin","inn","ih","nni","ini","hn","nnin","hinn","hini","hii","iin","hiin"]},"49":{"input":[1,5,6],"tlp":["ani",433],"trp":["ha",84475],"tlw":["zina",155],"trw":["han",28303],"lp":["ani","ah","anz","anni","zin","zina","ania"],"rp":["ha","han","haa","ina","haan","hina","inan","nha","ian","hann","nia","nz","nina"]},"50":{"input":[2,5,6],"tlp":["sin",8509],"trp":["nk",7187],"tlw":["sin",5448],"trw":["nik",30],"lp":["sin","skj","sni","sh","skin","snin"],"rp":["nk","hj","kn","nsk","kj","nsi","nik","kin","his","kni","ink","knin","nikk","nis"]},"51":{"input":[1,2,5,6],"tlp":["ansk",2386],"trp":["kan",8041],"tlw":["sank",149],"trw":["kan",7261],"lp":["ansk","ank","ansi","snak","skja","sha","sank","win"],"rp":["kan","hans","hja","kja","kna","hw","nak","nakk","nska","has","hwa","jak"]},"52":{"input":[3,5,6],"tlp":["enh",1378],"trp":["he",30604],"trw":["hen",2065],"lp":["enh","eh","eni","enin","enhe","ein"],"rp":["he","hen","ine","ien","hy","nie","nei","nhe","inne","inen","henn","ihe","hei","hein"]},"53":{"input":[1,3,5,6],"tlp":["enha",462],"trp":["hae",2302],"tlw":["annie",37],"trw":["hanne",108],"lp":["enha","eha","anie","ehan","einz","zen","enia","ahy","ehaa"],"rp":["hae","haen","nhae","hea","hena","hane","iane","haie"]},"54":{"input":[2,3,5,6],"tlp":["enk",3299],"trp":["ind",17207],"tlw":["sine",1896],"trw":["ind",4197],"lp":["enk","din","sky","ekn","enke","sine"],"rp":["ind","inde","hend","hed","ken","nke","iden","yk","nske","ky","hje","ykk","ykke","kend"]},"55":{"input":[1,2,3,5,6],"tlw":["danske",357],"trw":["hinanden",807],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",3191],"trp":["hv",22271],"tlw":["thi",704],"trw":["int",55],"lp":["vin","vn","bi","th","tin","tni","tnin","thi","bin","vint"],"rp":["hv","hvi","int","ib","nv","nti","nhv","ntin","nit","niv"]},"57":{"input":[1,4,5,6],"tlp":["van",3040],"trp":["hav",16151],"tlw":["tania",150],"trw":["navn",505],"lp":["van","fin","avn","anv","tian","tha","avni","tani","vant","bav"],"rp":["hav","hva","nav","navn","havn","haf","haft","haab","nhav","hat"]},"58":{"input":[2,4,5,6],"tlp":["ch",2279],"trp":["hvis",2968],"tlw":["skib",43],"trw":["hvis",2525],"lp":["ch","svin","stin","visn","sch","sth","skib","vsh","chs","vink"],"rp":["hvis","nkt","kvin","hist","ich","kib","inst","istn","nist","nsv"]},"59":{"input":[1,2,4,5,6],"tlw":["skabt",80],"trw":["kant",116],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",8299],"trp":["her",6089],"tlw":["ven",504],"trw":["her",3645],"lp":["ven","rin","rh","bev","vent","vne","the","erh","even","beh","evn","rbi","erin","etni"],"rp":["her","hve","hver","inte","hr","herr"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",167],"trw":["har",10914],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["vendte",689],"trw":["hvide",710],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["finde",734],"trw":["havde",11721],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",54],"trw":["o",656],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",60],"trp":["oa",43],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",30717],"trp":["os",7769],"tlw":["so",193],"trw":["os",2349],"lp":["so","sos","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",536],"trp":["ow",474],"tlw":["wos",58],"lp":["wo","aso","sow","wos","aaso","saso","aos"],"rp":["ow","osa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["oe",2132],"trw":["-",3902],"lp":["eo","e-"],"rp":["oe","-o","-e","-e-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",13],"trp":["ox",139],"trw":["-aa",53],"lp":["a-","aa-","a-e","aa-e","a-e-"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",7429],"trp":["od",24132],"tlw":["dod",445],"trw":["ode",82],"lp":["do","eso","dod","dode","soe","esso","sod","dso","sode"],"rp":["od","ode","ods","oed","ose","oede","osse","odd","-d","odde","-de"]},"71":{"input":[1,2,3,7],"tlp":["ado",19],"trp":["odsa",172],"trw":["-saa",39],"lp":["ado"],"rp":["odsa","owe","-sa","-saa","odda","oda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",20766],"trp":["og",89433],"tlw":["to",2228],"trw":["og",64213],"lp":["gt","to","go","gg","tog","tot","tott","gtt","tto","gtto","ttog","tg","tgo","ggo"],"rp":["og","ot","ogt","ott","oot","oto"]},"73":{"input":[1,4,7],"tlp":["fo",49386],"trp":["of",4123],"tlw":["gaa",1197],"trw":["of",77],"lp":["fo","ag","ga","gaa","agt","tag","aag","tfo","fg","afg","agg","fag","tof","taag","fgo","afgo"],"rp":["of","oft","off","ofa"]},"74":{"input":[2,4,7],"tlp":["sto",10153],"trp":["ogs",3950],"tlw":["sogt",61],"trw":["ost",168],"lp":["sto","gs","sog","sogt","gst","sg","co","gso","sost","stot","tos","soc","toss","gts","sgo","gc"],"rp":["ogs","ost","oc","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sag",7763],"trp":["ogsa",3841],"tlw":["sagt",613],"trw":["ogsaa",2370],"lp":["sag","gsa","gsaa","sagt","ags","sof","sga","asto","sgaa","sofa","sfo","stof","wot","tow","sfag","fos","foss"],"rp":["ogsa","ofas","osof"]},"76":{"input":[3,4,7],"tlp":["ge",73298],"trp":["or",91756],"tlw":["gore",1137],"trw":["ore",158],"lp":["ge","eg","ro","ger","get","ege","gr","tor","gte","rg","gge","tro","eget"],"rp":["or","ore","ort","oge","oget","org","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",43517],"trp":["orf",1741],"tlw":["for",18700],"trw":["ofte",682],"lp":["for","age","aeg","tage","fort","rfo","rfor","gra","rag","gaar","fore","fora","ager","agte","aget","erfo","rof"],"rp":["orf","ofte","ora"]},"78":{"input":[2,3,4,7],"tlp":["gd",7202],"trp":["ord",8900],"tlw":["dog",2587],"trw":["ord",1092],"lp":["gd","gde","stor","god","tod","dog","stod","rod","godt","ges","sor","rso","dor","ged"],"rp":["ord","ors","orst","odt","orde","oder"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",5844],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",38415],"trw":["nu",6214],"lp":[],"rp":["un","no","on","nu","unn","onn","ou","uu","ono","nun","non","uo"]},"81":{"input":[1,5,7],"tlp":["au",1436],"trp":["ua",639],"tlw":["au",12],"lp":["au","anu","anua","ano","qu","anon"],"rp":["ua","ona","uan","nua","una","nuan","uana","oan"]},"82":{"input":[2,5,7],"tlp":["su",1821],"trp":["jo",11635],"tlw":["son",331],"trw":["jo",3858],"lp":["su","son","sun","sus","sonn"],"rp":["jo","oj","us","ojn","ju","ons","jon","noj","uns","nus","jus","jun","nso","nsu","onsu"]},"83":{"input":[1,2,5,7],"tlp":["aus",420],"trp":["usa",143],"trw":["jow",70],"lp":["aus","anus","sona","ajo","asou","ajon","sua"],"rp":["usa","jow","uans","janu","oja","noja","own","onsa","joa","joan","uja","jona","onas"]},"84":{"input":[3,5,7],"tlp":["eu",269],"trp":["ue",3024],"trw":["nue",32],"lp":["eu","eno","eun","en-"],"rp":["ue","one","unne","uen","onne","oen","onen","une","oy","-n","n-","nue","-ne","yo","oye","u-"]},"85":{"input":[1,3,5,7],"tlp":["eau",73],"trp":["ux",95],"trw":["-naa",21],"lp":["eau","anue","xu","xue","que","aue","eaue","aoy","aoye","aeu"],"rp":["ux","-na","-naa","oxen","unae","-au","uxe","oux"]},"86":{"input":[2,3,5,7],"tlp":["du",10932],"trp":["ud",16891],"tlw":["du",8921],"trw":["ud",5540],"lp":["du","dnu","due"],"rp":["ud","und","unde","ude","oje","uden","uds","ndnu","ojne","ond","udse","use","nod","oden","-j","ndu","ndue"]},"87":{"input":[1,2,3,5,7],"tlw":["aa-e-ja",13],"trw":["-ja",333],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",7356],"trp":["ng",36020],"tlw":["bog",542],"trw":["ung",427],"lp":["bo","tu","gn","gu","bu","bog","tun","ton","tung"],"rp":["ng","nog","ob","ug","ut","ung","ngt","ub","ugt","ont","utt"]},"89":{"input":[1,4,5,7],"tlp":["ang",11845],"trp":["uf",1211],"tlw":["gang",1991],"trw":["nabo",19],"lp":["ang","gan","gang","bag","fu","atu","angt","agn","fun","fang","fug","tau","bang","gna"],"rp":["uf","natu","nga","uft","nfo","ngan"]},"90":{"input":[2,4,5,7],"tlp":["gj",4375],"trp":["ngs",1845],"tlw":["sgu",306],"trw":["just",195],"lp":["gj","gjo","stu","boj","bjo","tus","sgu","toj","stun","goj","gnus"],"rp":["ngs","ust","ojt","ngst","ngso","unst","job","just","jont"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",347],"trw":["jagt",44],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",17731],"trp":["nge",16467],"tlw":["bort",849],"trw":["noget",4194],"lp":["gen","ru","eng","bor","enge","beg","gne","run","gy","egy","bru"],"rp":["nge","noge","ur","ngen","yg","nger","ogen","orn","oren"]},"93":{"input":[1,3,4,5,7],"tlw":["foran",718],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",1269],"trw":["jeg",26496],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",378],"trw":["udenfor",361],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",52340],"trw":["lo",488],"lp":[],"rp":["il","li","ll","ol","lo","ill","lli","io","illi","olo","oli","lil","lill","oi","oll","ili","iol","ioli","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",35773],"trp":["la",34392],"tlw":["al",773],"trw":["laa",896],"lp":["al","all","aal","alli","ali","ala","aall","zo","ail","alo","aala"],"rp":["la","laa","lia","llia","lla","ola","ial","illa","olla"]},"98":{"input":[2,6,7],"tlp":["sl",6546],"trp":["ko",17253],"tlw":["sol",272],"trw":["los",173],"lp":["sl","sko","sol","slo","sio"],"rp":["ko","ls","ok","kl","lk","lik","kol","lsk","olk","ilk","okk","ils","lok","klo","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",4331],"trp":["kal",5704],"tlw":["skal",4257],"trw":["las",152],"lp":["skal","sla","wil","will","saal","sal","als","slaa","alk","wol","woll"],"rp":["kal","kla","las","kola","lska","oka","lass","okal","kalk"]},"100":{"input":[3,6,7],"tlp":["el",52483],"trp":["le",62636],"tlw":["el",13],"trw":["lille",1799],"lp":["el","ell","elle","eli","ele","elli","elo","eol"],"rp":["le","lle","ille","ole","ile","olle","lie","iel","oie","ilie","lel","olel"]},"101":{"input":[1,3,6,7],"tlp":["ale",5962],"trp":["lae",8065],"tlw":["alle",3178],"trw":["lae",133],"lp":["ale","ael","alle","aale","aell","ela","aele","ella","elae","alie","alae","eal"],"rp":["lae","iale","laae","lox","lela","lea","i-a","li-a"]},"102":{"input":[2,3,6,7],"tlp":["els",7813],"trp":["ld",24257],"tlw":["del",897],"trw":["lod",1333],"lp":["els","sel","del","else","deli","eld","dl"],"rp":["ld","lde","lse","old","led","ild","kel","lede","ilde","lid","lod","keli","olde"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",615],"trw":["lad",680],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",31908],"trp":["ig",74754],"tlw":["til",24015],"trw":["liv",1247],"lp":["til","vo","vil","gi","gl","tig","till"],"rp":["ig","lig","ov","lt","igt","lv","liv","ligt","log","lg","ogi","logi","olog"]},"105":{"input":[1,4,6,7],"tlp":["alt",7650],"trp":["lag",2904],"tlw":["alt",2353],"trw":["lagt",315],"lp":["alt","fl","tal","fol","fal","talt","gla","alti","alv","gav","fla","folg","atio","flo","folt"],"rp":["lag","lav","lof","loft","lf"]},"106":{"input":[2,4,6,7],"tlp":["sig",18329],"trp":["lst",1082],"tlw":["sig",13498],"trw":["livs",105],"lp":["sig","gik","stil","sigt","vilk","stol","gvis","skov","slog","sov","tils","stig","vok","vikl","voks"],"rp":["lst","kov","lts","isto","ilst"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",871],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",11354],"trp":["ige",17245],"tlw":["eller",3955],"trw":["over",5694],"lp":["vor","elig","rl","elv","rig","rli","rlig","vel","elt","gle"],"rp":["ige","ove","ler","lige","over","lev","ller","live","let","lte"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1118],"trw":["lave",376],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["selv",3736],"trw":["lidt",2473],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",1646],"trw":["lagde",628],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hu",19153],"trw":["hun",14886],"lp":[],"rp":["hu","ho","hun","ul","lu","hol","lin","ion","nl","nol","nolo","nli","uli","ull","llin","lun","oh","hoi","hul","uh"]},"113":{"input":[1,5,6,7],"tlp":["anl",545],"trp":["lan",8187],"tlw":["alanzo",70],"trw":["hal",31],"lp":["anl","anli","anal","alin","alan","anla"],"rp":["lan","hal","lau","nal","llan","oha","ohan","nla","olau","laan","lina","hali","onal","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sku",5017],"trp":["ku",16083],"tlw":["suk",140],"trw":["kun",2632],"lp":["sku","skul","slu"],"rp":["ku","kun","kul","uk","nok","hoj","kon","kunn","kno","hus","knol","ukk","hos","kjo","jl","luk","lukk"]},"115":{"input":[1,2,5,6,7],"tlw":["slank",25],"trw":["nikola",431],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",625],"trp":["ly",6399],"tlw":["ellen",583],"trw":["hele",1963],"lp":["eho","enl","elen","enli"],"rp":["ly","hel","len","yl","hele","llen","hell","ulle","ule","ione","olen","lene","nel","niel","line","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",617],"trw":["hallen",39],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",2683],"trw":["kunde",4358],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",328],"trw":["land",483],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",19380],"trp":["ing",14039],"tlw":["blot",846],"trw":["lob",434],"lp":["bl","bli","bliv","blo","gh","tilb","ting","bil"],"rp":["ing","hvo","ning","lb","igh","hov","ilb","ligh","nlig","nogl","ling","hvil"]},"121":{"input":[1,4,5,6,7],"tlw":["blaa",246],"trw":["langt",805],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",653],"trw":["hojt",407],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",951],"trw":["langs",456],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",4782],"trw":["hvor",4842],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1940],"trw":["laenge",871],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["teknologi",565],"trw":["holdt",1084],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1214],"trw":["hvordan",1085],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",3391],"trw":["p",397],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",2081],"trp":["pa",29683],"trw":["paa",14960],"lp":["ap","app","apa"],"rp":["pa","paa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",6812],"trp":["ps",284],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",699],"trp":["pas",1008],"trw":["pas",96],"lp":["spa","asp","aspa","aps","spaa"],"rp":["pas","pass","psa","paas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1393],"trp":["pe",8158],"trw":["'",36],"lp":["ep","epp","eppe","e'","epe"],"rp":["pe","ppe","'e","pee","pep"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",769],"trp":["pae",506],"tlw":["a'",18],"trw":["pae'",18],"lp":["a'","appe","aep","aepp","aa'","a'e","ae'"],"rp":["pae","pae'"]},"134":{"input":[2,3,8],"tlp":["spe",642],"trp":["ped",539],"lp":["spe","dsp","esp","espe","sep","s'","dp","es'","dep","depe","edp","dpe","edpe","desp"],"rp":["ped","pede","pd","pped","pes","pess"]},"135":{"input":[1,2,3,8],"tlp":["spae",341],"trp":["pda",378],"tlw":["saa'",120],"trw":["passe",116],"lp":["spae","saa'","spad","sa'","aspe","wes'","da'","da'e"],"rp":["pda","pad","paed","pads","peda","pda'","pade","psae"]},"136":{"input":[4,8],"trp":["pt",1019],"trw":["pt",16],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",205],"trp":["pf",375],"lp":["apt","apta","tap","tapp"],"rp":["pf","pta","pfa","pfat","pat","paat","paaf","paf","pafa"]},"138":{"input":[2,4,8],"trp":["pst",120],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["casp",50],"trp":["past",205],"lp":["casp","cap","fsp","afsp"],"rp":["past","psta"]},"140":{"input":[3,4,8],"tlp":["rp",670],"trp":["pr",5960],"tlw":["er'et",22],"trw":["per",374],"lp":["rp","erp","rep","rpt","epr","ept","tep","rpe"],"rp":["pr","per","pper","pet","pre","'r","ppet","pete","'er","pere","ptr","pte"]},"141":{"input":[1,3,4,8],"tlp":["rap",388],"trp":["pra",1908],"tlw":["ta'r",85],"trw":["par",1154],"lp":["rap","rapp","rpa","trap","rpaa","taep","arp","erpa","a'r","ta'","apr","arpt","ta'r"],"rp":["pra","par","prae","part","pare","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1019],"trp":["pers",530],"tlw":["spredte",60],"trw":["peder",77],"lp":["spr","derp","sper","spre","spec","step","sept","resp","dspr","rsp","ersp","rspe","cep","ccep","cept"],"rp":["pers","pres","pred","pec","pdr"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",245],"trw":["praest",184],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",16277],"trw":["m",548],"lp":[],"rp":["mm","mp","nm","mn","pm","np","pn"]},"145":{"input":[1,5,8],"tlp":["am",21010],"trp":["ma",29964],"tlw":["anm",32],"trw":["man",5955],"lp":["am","amm","amp","anm","anma","ama","aam","aama"],"rp":["ma","man","maa","nma","pan","maan","nap","pma","paan","mann","mma","mman"]},"146":{"input":[2,5,8],"tlp":["sm",5093],"trp":["ms",1840],"tlw":["sms",12],"lp":["sm","sms"],"rp":["ms","nsp","msp","jm","jsp","mps","pj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",5398],"trp":["mas",938],"tlw":["smaa",567],"trw":["maj",88],"lp":["sam","samm","sma","smaa","saam","sman","ams","span","asm","sama","sams","amsp","ansp"],"rp":["mas","maas","mass","maj","jam","mans","jamm"]},"148":{"input":[3,5,8],"tlp":["em",22268],"trp":["me",73368],"tlw":["emne",22],"trw":["men",13807],"lp":["em","emm","emme","emp","empe","eme"],"rp":["me","men","mme","mmen","nem","nnem","menn","pen","mpe","mene","ppen","my","nemm","yp"]},"149":{"input":[1,3,5,8],"tlp":["amme",5549],"trp":["mae",3778],"tlw":["examen",40],"trw":["mae",475],"lp":["amme","ame","ema","aem","ampe","aemp","amen","emae","amae","eman","aemm","emma","aame","enpa"],"rp":["mae","maen","paen","pmae","naep","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",5798],"trp":["med",23442],"tlw":["dem",5668],"trw":["med",20679],"lp":["dem","sme","dm","sem","semp","spej","ems","smed"],"rp":["med","mens","jem","mede","mes","mmed","jemm","mend","pej","jdsp","mped","medd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",1733],"trw":["mand",1898],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",86],"trp":["mt",4208],"lp":["tm","bm"],"rp":["mt","mb","pb","ptb"]},"153":{"input":[1,4,5,8],"tlp":["amt",793],"trp":["maat",1392],"trw":["mat",54],"lp":["amt","fam","amta","tam","tamm","amf","amb","fm","afm","fma"],"rp":["maat","mat","mf","matt","mta","mfa","mant","napt","mfan","mfat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",207],"trp":["mst",1374],"tlw":["cm",207],"lp":["cm","bsm"],"rp":["mst","mc","mtj","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",115],"trw":["pjat",14],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5355],"trp":["mer",8012],"tlw":["type",59],"trw":["mere",2523],"lp":["rm","rem","rme","tem","emt","erm","erme","temm","rmen","rmer","temt","remm"],"rp":["mer","mmer","mere","met","mte","mr","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",1987],"trw":["maatte",1220],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stemme",569],"trw":["mest",560],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",219],"trw":["praesten",235],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3860],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",492],"trp":["papi",191],"lp":["api"],"rp":["papi","ipa"]},"162":{"input":[2,6,8],"tlp":["spi",1676],"trp":["pis",540],"trw":["pis",22],"lp":["spi","spis","skip","sspi"],"rp":["pis","pisk","isp","kip","kipp","ips","ksp","pik","psi"]},"163":{"input":[1,2,6,8],"trp":["kap",494],"trw":["pak",15],"lp":[],"rp":["kap","kapi","pak","pakk","kapp","paak","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",89],"trp":["ippe",551],"lp":["epi"],"rp":["ippe","i'","i'e","ipe"]},"165":{"input":[1,3,6,8],"tlp":["zep",15],"trp":["paei",16],"lp":["zep","azep","zepi","z'"],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",136],"trp":["pise",257],"tlw":["spise",140],"trw":["piskede",12],"lp":["spid","spek","espi","eksp","si'","si'e"],"rp":["pise","pek","idsp","pid","pids","peki","ispe","ksep","kep","kkep","kspe","kepe","kepi"]},"167":{"input":[1,2,3,6,8],"tlw":["ska'",27],"trw":["pakke",52],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vip",54],"trp":["pit",385],"lp":["vip","vipp"],"rp":["pit","pti","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",301],"trp":["pav",149],"tlw":["fip",43],"lp":["apit","fip"],"rp":["pav","pati","pita","pavi","pfi"]},"170":{"input":[2,4,6,8],"tlp":["spit",84],"trp":["pist",182],"tlw":["spist",45],"lp":["spit","cip","vsp","scip","tisp"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",58],"trp":["pri",1094],"tlw":["vipper",20],"trw":["itt'",73],"lp":["rip","repi","ript","trip","ripp","vep","rvep","vepr"],"rp":["pri","pir","pite","peri","pire","priv","i'r","itt'","piri","i'er","prie","ipte"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",14],"trw":["papir",90],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spiste",89],"trw":["pris",129],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpt",108],"trw":["praksis",264],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",24076],"trw":["min",4554],"lp":[],"rp":["mi","min","im","imi","him","mh","ph","imm","pin","imp","mni","mnin","himm","hm","phi","mpi","mini","nim","mim","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",472],"trp":["ham",8353],"trw":["ham",8026],"lp":["ami","aim","amin"],"rp":["ham","iam","ima","hamm","mia","mai","pha","iman","phan","pani","imia","mian","hamp","mha","hima","pina","mani"]},"178":{"input":[2,5,6,8],"tlp":["smi",1181],"trp":["mis",825],"trw":["km",70],"lp":["smi","sim","simp","spin","ssim","simi"],"rp":["mis","mk","imis","msi","miss","km","misk","ism","phis","pink","kim","mspi","mism","msk"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",117],"trw":["knap",168],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emni",182],"trp":["ime",1615],"trw":["mine",1330],"lp":["emni","eph","empi","ephi"],"rp":["ime","mine","mhe","meni","imme","imen","hem","hemm","impe","menh","phe","mhy","hyp","hypp","yppi","meph"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",99],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spidsen",62],"trw":["hjem",1079],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["eksamen",41],"trw":["maske",618],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1144],"trp":["mit",1681],"trw":["mit",1681],"lp":["tim","timi","tmi","tmin","vim","vimm","vm","timm"],"rp":["mit","mti","ptim","imt","pib","mv","ntim","pint","itim","mvi","mvit","nvip"]},"185":{"input":[1,4,5,6,8],"tlw":["timian",19],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitain",20],"trw":["knapt",41],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["timer",267],"trw":["hvem",785],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",252],"trw":["marie",351],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["derhjemme",61],"trw":["mennesker",759],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["danmark",309],"trw":["maerke",366],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",11049],"trw":["op",5000],"lp":[],"rp":["op","po","opp","ppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",13],"trp":["opa",178],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1107],"trp":["pos",203],"lp":["spo","sop"],"rp":["pos","ops","osp","pso","opso"]},"195":{"input":[1,2,7,8],"trp":["opsa",25],"lp":[],"rp":["opsa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1153],"trw":["oppe",424],"lp":[],"rp":["oppe","o'","p-","poe","-p","o'e","p-p","ope"]},"197":{"input":[1,3,7,8],"trp":["opae",16],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dsop",23],"trp":["opd",408],"trw":["pose",26],"lp":["dsop"],"rp":["opd","pose","poes"]},"199":{"input":[1,2,3,7,8],"trw":["opad",89],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1156],"trp":["opt",558],"tlw":["top",127],"trw":["optog",47],"lp":["top","topp","gp","gpo"],"rp":["opt","pg","opg","pog","pto","opto","ptog","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["gpa",17],"trp":["opf",375],"lp":["gpa"],"rp":["opf","pga","opga","opta","ptag","opfa","pfo","opfo","pag","pagt","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",344],"trp":["opst",120],"tlw":["spog",51],"trw":["post",48],"lp":["stop","spog","gsp","spot","sopg","cop"],"rp":["opst","post","psto","psog"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",646],"trp":["pro",2431],"tlw":["toppe",42],"trw":["port",82],"lp":["rop","etop","ropp","gep","erop","epro"],"rp":["pro","por","porg","port","opr","peg","pege","prog","orp","o'r","optr","pore","opro","opre"]},"205":{"input":[1,3,4,7,8],"tlw":["fo'r",122],"trw":["proft",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",199],"trw":["pegede",119],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",153],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",50261],"trw":["om",12169],"lp":[],"rp":["om","mo","omm","mu","um","pu","mun","up","umm","pun","mon","ump","omp","opm","umu","upp","pou","mum","mpu","ompu"]},"209":{"input":[1,5,7,8],"tlp":["amo",42],"trp":["opma",262],"trw":["opnaa",32],"lp":["amo","aamo","anmo","apon"],"rp":["opma","oma","uma","manu","oman","pau","opna","uman","umaa","omma","upa","upaa"]},"210":{"input":[2,5,7,8],"tlp":["som",21760],"trp":["oms",1497],"tlw":["som",18932],"trw":["moj",60],"lp":["som","spu","smu","somm","spun","smo","sum","smus","summ"],"rp":["oms","mus","nsom","jom","mos","moj","pus","ums","mons","usm","nspo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",34],"trw":["mansson",22],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["en-m",111],"trp":["omme",6327],"trw":["-men",116],"lp":["en-m","emo","epu"],"rp":["omme","umme","-m","uppe","ume","umen","-me","-men","n-m","umpe","omne","ome","mue","pone","u-m","-mo","u-mo"]},"213":{"input":[1,3,5,7,8],"trw":["-man",13],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",83],"trw":["mod",3477],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["somand",13],"trw":["pause",61],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",486],"trp":["omt",1489],"tlw":["tom",108],"trw":["omt",46],"lp":["tom","tum","tomm","tomt","gm","gmo"],"rp":["omt","mog","mg","omg","pub","munt","put","mbo","mput","mob","omb","ombo","umt","mut"]},"217":{"input":[1,4,5,7,8],"tlw":["afmagt",13],"trw":["magt",215],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stum",33],"trw":["pust",33],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",71],"trw":["magnus",156],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["gennem",1130],"trw":["meget",3368],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",246],"trw":["mange",1787],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurgte",1168],"trw":["mogens",519],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",316],"trw":["professoren",159],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",5364],"trw":["pol",19],"lp":[],"rp":["pl","pil","lp","pill","pol","opl","lip","poli","lipp","pli","poll","plo","oplo","ilp","opi","pio","poi","lop","lpi","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",194],"trp":["pla",2683],"lp":["alp","alop","alpi"],"rp":["pla","lap","lapp","pal","opla","lpa","ilpa","pall","pala"]},"226":{"input":[2,6,7,8],"tlp":["spil",933],"trp":["klip",214],"tlw":["spil",117],"trw":["kop",75],"lp":["spil","slip","spl","skop","sopi","spio"],"rp":["klip","kop","kopp","ospi","posi","pok","pokk","lips","plos","plik","opsi","lsp","lspo","kopi"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",211],"trw":["klap",35],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",717],"trp":["ple",1132],"trw":["pille",26],"lp":["elp","elpe","epl","eple","epli"],"rp":["ple","lpe","pel","ople","plei","li'","lpel","pelo","-pl","p-pl","lpep","pepl","li'e","pole","p-i"]},"229":{"input":[1,3,6,7,8],"trw":["la'",18],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spillede",190],"trw":["poesi",41],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",19],"trw":["plads",674],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tilp",30],"trp":["pig",945],"trw":["pligt",89],"lp":["tilp"],"rp":["pig","opti","plig","pgi","opgi","pgiv","ppig","pov","povl","plov","plot","pigt","pitl"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",20],"trw":["opgav",49],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",54],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["tilpas",30],"trw":["plastisk",14],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",386],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",92],"trw":["opgave",78],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",111],"trw":["krop",196],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["vokseplads",34],"trw":["kapitel",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",3277],"trw":["poul",218],"lp":[],"rp":["ml","mil","lm","lom","mul","imo","muli","plu","olm","holm","omh","lmi","lmin","mili","mli","iml","himl","oph","minu","lim"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alpina",16],"trw":["plan",125],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",414],"trw":["kom",3720],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",837],"trw":["hjalp",126],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mellem",1362],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["emmanuelo",70],"trw":["lampen",77],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smilede",325],"trw":["komme",1447],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlede",209],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimt",79],"trw":["mig",8747],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",34],"trw":["pollnitz",127],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",214],"trw":["punkt",116],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["samling",60],"trw":["langsomt",369],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["glemt",197],"trw":["norholm",521],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",1533],"trw":["planter",359],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["blomster",490],"trw":["kommer",1590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidig",195],"trw":["plantes",218],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",70938],"tlw":["a",1885],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",6312],"tlw":["s",729],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",51462],"tlw":["saa",14038],"lp":["sa","saa","as","ass","wa","aas","ssa","sas","ww","aw","saas","www","assa","ssaa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2647],"tlw":["e",88],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",65201],"tlw":["ae",1518],"lp":["ae","aae","ex","ea","ax","aee","xe","xa","exa","exe","axe","aex","eae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",283077],"tlw":["de",23660],"lp":["de","ed","es","se","ede","ds","des","sse","dd","dse","ess","dde","eds","edes","ese","sed","ded","see","dede","sede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",24996],"tlw":["da",8071],"lp":["ad","da","ade","aes","aad","sae","aed","ada","sad","aede","aade","saad","aada","ads","asse","aese","dae","dda","esa","we"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",16147],"tlw":["t",62],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",52505],"tlw":["at",39486],"lp":["at","ta","af","fa","ft","att","taa","faa","aft","aat","ff","aatt","fat","fatt","aff","tat","tf","ata","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",66160],"tlw":["c",179],"lp":["st","ts","sc","sst","ct","cc","tc","cs","cst","tst","tsc","tts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",9134],"tlw":["fast",485],"lp":["sta","ast","sat","staa","ca","satt","tsa","fas","fast","fs","afs","ac","asta","sf","tas","tsaa","fst","afst","stat","tsat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",200106],"tlw":["er",24396],"lp":["er","et","te","re","ere","rt","ter","tr","tte","ret","ett","ette","rte","ert","rr","tet","tter","rer","rre","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",71256],"tlw":["fra",7354],"lp":["ar","ra","aer","fr","aar","aere","fte","fra","ef","tra","rae","are","fter","tae","eft","atte","efte","aet","fre","rf"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",50507],"tlw":["det",40064],"lp":["det","der","dt","ste","rd","dr","rs","est","dre","red","res","este","rde","ted","dere","rst","dte","rede","dst","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["aest",3267],"tlw":["satte",874],"lp":["aest","stra","stae","ader","ard","aerd","ared","rsta","saet","rda","derf","aard","fes","tad","stad","raad","dra","fred","fess","raed"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",12763],"trw":["n",53],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",107331],"trp":["na",18738],"tlw":["an",271],"trw":["naa",705],"lp":["an","aan","ann","anna","ana"],"rp":["na","naa","nan","nna","naan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2823],"trp":["ns",25305],"trw":["j",68],"lp":["sn","sj"],"rp":["ns","jn","js","nj","nss","jj"]},"19":{"input":[1,2,5],"tlp":["ans",12498],"trp":["ja",8744],"tlw":["sans",47],"trw":["ja",3506],"lp":["ans","san","sna","sja","aj","ajn","ssan","ansa","aaj","sans","snaa","wan","wn","asn","aasn"],"rp":["ja","nsa","jan","nas","nsaa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",215951],"trp":["ne",54829],"tlw":["en",31130],"trw":["nye",787],"lp":["en","ene","enn","enne","enen","een","ey","eny"],"rp":["ne","nne","yn","nen","ny","ye","nene","yne","nye","yen","nnen","nee"]},"21":{"input":[1,3,5],"tlp":["aen",11318],"trp":["nae",4921],"tlw":["anne",45],"trw":["nae",24],"lp":["aen","anne","ane","aene","aane","aaen","anen","ay","ena","any","aany","ean","eann","aenn","xen"],"rp":["nae","naae","ya","yan","naee"]},"22":{"input":[2,3,5],"tlp":["den",50813],"trp":["nd",90348],"tlw":["den",24655],"trw":["ned",3104],"lp":["den","end","ende","ens","ej","sen","sy","dn","syn"],"rp":["nd","nde","je","nden","ned","ys","ndes","jen","nes","yd","nds"]},"23":{"input":[1,2,3,5],"tlp":["and",24671],"trp":["jae",3560],"tlw":["anden",1960],"trw":["naade",237],"lp":["and","ande","dan","aend","aand","adan","ands","aden","dann","sand","anse","sjae","dans","aned"],"rp":["jae","naes","nand","nda","naad","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",1655],"trp":["nt",13043],"tlw":["b",55],"lp":["tn","bt","bn","bb","tb"],"rp":["nt","nb","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",11045],"trp":["nat",1917],"tlw":["tabt",109],"trw":["nat",438],"lp":["ba","ab","tan","ant","aab","fan","ban","baa","abt","abn","aabn","aabt","anta","tab","tabt","fb"],"rp":["nat","nf","nta","natt"]},"26":{"input":[2,4,5],"tlp":["tj",1039],"trp":["nst",1524],"lp":["tj","bj","sb","stj","stn","bs","tsj","sbj"],"rp":["nst","nc","jst","jt","nsb","nstn","ncs","ncst","nct","jnb","nbj","jnbj"]},"27":{"input":[1,2,4,5],"tlp":["stan",1647],"trp":["nsta",463],"tlw":["satan",75],"lp":["stan","fj","anc","bac","taj","abs","tja","stja","tajn","sant","bja","anst","asb","asbj","bas","tans"],"rp":["nsta","ntas","nsat","jac"]},"28":{"input":[3,4,5],"tlp":["be",22658],"trp":["nte",7013],"tlw":["byen",409],"trw":["nyt",305],"lp":["be","rn","ren","ten","br","rne","ern","erne","ent","ry","ty","eb","rb","ber","eren","bet","ente"],"rp":["nte","ner","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",3013],"trp":["naar",3178],"tlw":["bare",1165],"trw":["naar",3077],"lp":["ran","taen","bar","abe","ante","ften","arb","arbe","bra","raen","bare","fy","arn","aeb","bae","barn"],"rp":["naar","nar","naer","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",3731],"trp":["nder",8663],"tlw":["syntes",800],"trw":["jer",433],"lp":["sten","endt","bes","bed","rden","rej","bej","rejs","rbej","bejd","best","dern"],"rp":["nder","ndt","ndr","ndre","ndet","jer","ndte","yst"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",1970],"trw":["naesten",941],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",246],"trw":["i",43365],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",419],"trp":["ia",2518],"lp":["ai","za","zi","az"],"rp":["ia","iz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",39075],"trp":["ik",32997],"tlw":["si",156],"trw":["is",201],"lp":["si","sk","ski","sik","ssi","sikk","sis","skik"],"rp":["ik","kk","ikk","is","ki","ks","isk","iss","kik","ksi","ksis","kikk"]},"35":{"input":[1,2,6],"tlp":["ska",8476],"trp":["ka",23048],"tlw":["zak",168],"trw":["ka",248],"lp":["ska","ak","akk","ask","wi","aks","aask","aksi","asi","zak","aka","skaa","assi","aak"],"rp":["ka","kas","kaa","isa","ika","kass"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",2228],"trp":["ie",6094],"tlw":["ei",448],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",48],"trp":["ix",31],"trw":["ix",31],"lp":["ze","xi","axi","aie","eiz","aei","aze"],"rp":["ix","iae"]},"38":{"input":[2,3,6],"tlp":["di",14167],"trp":["ke",57169],"tlw":["disse",1266],"trw":["ikke",20180],"lp":["di","ske","ek","sid","side","esk","ekk","ekke","eske"],"rp":["ke","kke","id","ikke","ide","ked","kede","ids","ise","kked","iske"]},"39":{"input":[1,2,3,6],"tlp":["aek",2798],"trp":["kae",1766],"tlw":["skade",99],"trw":["ida",70],"lp":["aek","akke","aekk","aske","skae","adi","dska","daek","adsk","eka","skad","aesk","eska","aeks"],"rp":["kae","idda","isae","ida","kad","kade"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",51178],"trp":["iv",10524],"tlw":["vi",7341],"trw":["it",23],"lp":["ti","vi","vt","tv","tvi","tiv","viv","tti","tviv","tit","vit","vv","vitt","tivt"],"rp":["iv","it","iti","itt","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",50676],"trp":["if",1405],"tlw":["tav",135],"lp":["va","av","fi","ati","tav","avi","vaa","fti","tia","vf","avt","atti","tva","afti","tz"],"rp":["if","ift","iva","ita","itz"]},"42":{"input":[2,4,6],"tlp":["vis",7341],"trp":["ist",4703],"tlw":["sit",2281],"lp":["vis","sti","sv","sit","vist","vs","tis","tisk","ci","svi","visk","vik","tik"],"rp":["ist","kt","kv","kvi","isti","ic","kti"]},"43":{"input":[1,2,4,6],"tlp":["sva",3328],"trp":["kast",607],"tlw":["fik",1865],"trw":["kat",43],"lp":["sva","fik","akt","tak","avs","stak","takk","akti","tavs","fak","stia","fakt","fis","fisk","sav"],"rp":["kast","kat","kaf","kaff","kva"]},"44":{"input":[3,4,6],"tlp":["ve",58500],"trp":["ive",7238],"tlw":["rev",144],"trw":["iver",59],"lp":["ve","ri","ver","ev","eve","vet","eri","rv","rti","rev","vir","evet","rve","rie","vr"],"rp":["ive","ir","iver","ivet","ier"]},"45":{"input":[1,3,4,6],"tlp":["var",27429],"trp":["ifte",524],"tlw":["var",23713],"trw":["ivar",148],"lp":["var","vae","vaer","ave","vare","aev","eva","ari","fri","evae","rav","aeve","arv","arve","avet","farv","aver","verf","arie"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13008],"trp":["kr",7446],"tlw":["ved",9023],"trw":["idet",571],"lp":["ved","vd","vde","rk","tid","rke","vid","erk","dri","skr","vede","vide","erke"],"rp":["kr","ker","idt","ket","kri","idst","kker"]},"47":{"input":[1,2,3,4,6],"tlw":["svarede",1115],"trw":["kastede",275],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",55966],"trw":["h",182],"lp":[],"rp":["in","ni","nin","hi","nh","hin","inn","ih","nni","ini","hn","nnin","hinn","hini","hii","iin","hiin"]},"49":{"input":[1,5,6],"tlp":["ani",433],"trp":["ha",84475],"tlw":["zina",155],"trw":["han",28303],"lp":["ani","ah","anz","anni","zin","zina","ania"],"rp":["ha","han","haa","ina","haan","hina","inan","nha","ian","hann","nia","nz","nina"]},"50":{"input":[2,5,6],"tlp":["sin",8509],"trp":["nk",7187],"tlw":["sin",5448],"trw":["nik",30],"lp":["sin","skj","sni","sh","skin","snin"],"rp":["nk","hj","kn","nsk","kj","nsi","nik","kin","his","kni","ink","knin","nikk","nis"]},"51":{"input":[1,2,5,6],"tlp":["ansk",2386],"trp":["kan",8041],"tlw":["sank",149],"trw":["kan",7261],"lp":["ansk","ank","ansi","snak","skja","sha","sank","win"],"rp":["kan","hans","hja","kja","kna","hw","nak","nakk","nska","has","hwa","jak"]},"52":{"input":[3,5,6],"tlp":["enh",1378],"trp":["he",30604],"trw":["hen",2065],"lp":["enh","eh","eni","enin","enhe","ein"],"rp":["he","hen","ine","ien","hy","nie","nei","nhe","inne","inen","henn","ihe","hei","hein"]},"53":{"input":[1,3,5,6],"tlp":["enha",462],"trp":["hae",2302],"tlw":["annie",37],"trw":["hanne",108],"lp":["enha","eha","anie","ehan","einz","zen","enia","ahy","ehaa"],"rp":["hae","haen","nhae","hea","hena","hane","iane","haie"]},"54":{"input":[2,3,5,6],"tlp":["enk",3299],"trp":["ind",17207],"tlw":["sine",1896],"trw":["ind",4197],"lp":["enk","din","sky","ekn","enke","sine"],"rp":["ind","inde","hend","hed","ken","nke","iden","yk","nske","ky","hje","ykk","ykke","kend"]},"55":{"input":[1,2,3,5,6],"tlw":["danske",357],"trw":["hinanden",807],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",3191],"trp":["hv",22271],"tlw":["thi",704],"trw":["int",55],"lp":["vin","vn","bi","th","tin","tni","tnin","thi","bin","vint"],"rp":["hv","hvi","int","ib","nv","nti","nhv","ntin","nit","niv"]},"57":{"input":[1,4,5,6],"tlp":["van",3040],"trp":["hav",16151],"tlw":["tania",150],"trw":["navn",505],"lp":["van","fin","avn","anv","tian","tha","avni","tani","vant","bav"],"rp":["hav","hva","nav","navn","havn","haf","haft","haab","nhav","hat"]},"58":{"input":[2,4,5,6],"tlp":["ch",2279],"trp":["hvis",2968],"tlw":["skib",43],"trw":["hvis",2525],"lp":["ch","svin","stin","visn","sch","sth","skib","vsh","chs","vink"],"rp":["hvis","nkt","kvin","hist","ich","kib","inst","istn","nist","nsv"]},"59":{"input":[1,2,4,5,6],"tlw":["skabt",80],"trw":["kant",116],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",8299],"trp":["her",6089],"tlw":["ven",504],"trw":["her",3645],"lp":["ven","rin","rh","bev","vent","vne","the","erh","even","beh","evn","rbi","erin","etni"],"rp":["her","hve","hver","inte","hr","herr"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",167],"trw":["har",10914],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["vendte",689],"trw":["hvide",710],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["finde",734],"trw":["havde",11721],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",54],"trw":["o",656],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",60],"trp":["oa",43],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",30717],"trp":["os",7769],"tlw":["so",193],"trw":["os",2349],"lp":["so","sos","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",536],"trp":["ow",474],"tlw":["wos",58],"lp":["wo","aso","sow","wos","aaso","saso","aos"],"rp":["ow","osa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["oe",2132],"trw":["-",3902],"lp":["eo","e-"],"rp":["oe","-o","-e","-e-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",13],"trp":["ox",139],"trw":["-aa",53],"lp":["a-","aa-","a-e","aa-e","a-e-"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",7429],"trp":["od",24132],"tlw":["dod",445],"trw":["ode",82],"lp":["do","eso","dod","dode","soe","esso","sod","dso","sode"],"rp":["od","ode","ods","oed","ose","oede","osse","odd","-d","odde","-de"]},"71":{"input":[1,2,3,7],"tlp":["ado",19],"trp":["odsa",172],"trw":["-saa",39],"lp":["ado"],"rp":["odsa","owe","-sa","-saa","odda","oda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",20766],"trp":["og",89433],"tlw":["to",2228],"trw":["og",64213],"lp":["gt","to","go","gg","tog","tot","tott","gtt","tto","gtto","ttog","tg","tgo","ggo"],"rp":["og","ot","ogt","ott","oot","oto"]},"73":{"input":[1,4,7],"tlp":["fo",49386],"trp":["of",4123],"tlw":["gaa",1197],"trw":["of",77],"lp":["fo","ag","ga","gaa","agt","tag","aag","tfo","fg","afg","agg","fag","tof","taag","fgo","afgo"],"rp":["of","oft","off","ofa"]},"74":{"input":[2,4,7],"tlp":["sto",10153],"trp":["ogs",3950],"tlw":["sogt",61],"trw":["ost",168],"lp":["sto","gs","sog","sogt","gst","sg","co","gso","sost","stot","tos","soc","toss","gts","sgo","gc"],"rp":["ogs","ost","oc","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sag",7763],"trp":["ogsa",3841],"tlw":["sagt",613],"trw":["ogsaa",2370],"lp":["sag","gsa","gsaa","sagt","ags","sof","sga","asto","sgaa","sofa","sfo","stof","wot","tow","sfag","fos","foss"],"rp":["ogsa","ofas","osof"]},"76":{"input":[3,4,7],"tlp":["ge",73298],"trp":["or",91756],"tlw":["gore",1137],"trw":["ore",158],"lp":["ge","eg","ro","ger","get","ege","gr","tor","gte","rg","gge","tro","eget"],"rp":["or","ore","ort","oge","oget","org","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",43517],"trp":["orf",1741],"tlw":["for",18700],"trw":["ofte",682],"lp":["for","age","aeg","tage","fort","rfo","rfor","gra","rag","gaar","fore","fora","ager","agte","aget","erfo","rof"],"rp":["orf","ofte","ora"]},"78":{"input":[2,3,4,7],"tlp":["gd",7202],"trp":["ord",8900],"tlw":["dog",2587],"trw":["ord",1092],"lp":["gd","gde","stor","god","tod","dog","stod","rod","godt","ges","sor","rso","dor","ged"],"rp":["ord","ors","orst","odt","orde","oder"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",5844],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",38415],"trw":["nu",6214],"lp":[],"rp":["un","no","on","nu","unn","onn","ou","uu","ono","nun","non","uo"]},"81":{"input":[1,5,7],"tlp":["au",1436],"trp":["ua",639],"tlw":["au",12],"lp":["au","anu","anua","ano","qu","anon"],"rp":["ua","ona","uan","nua","una","nuan","uana","oan"]},"82":{"input":[2,5,7],"tlp":["su",1821],"trp":["jo",11635],"tlw":["son",331],"trw":["jo",3858],"lp":["su","son","sun","sus","sonn"],"rp":["jo","oj","us","ojn","ju","ons","jon","noj","uns","nus","jus","jun","nso","nsu","onsu"]},"83":{"input":[1,2,5,7],"tlp":["aus",420],"trp":["usa",143],"trw":["jow",70],"lp":["aus","anus","sona","ajo","asou","ajon","sua"],"rp":["usa","jow","uans","janu","oja","noja","own","onsa","joa","joan","uja","jona","onas"]},"84":{"input":[3,5,7],"tlp":["eu",269],"trp":["ue",3024],"trw":["nue",32],"lp":["eu","eno","eun","en-"],"rp":["ue","one","unne","uen","onne","oen","onen","une","oy","-n","n-","nue","-ne","yo","oye","u-"]},"85":{"input":[1,3,5,7],"tlp":["eau",73],"trp":["ux",95],"trw":["-naa",21],"lp":["eau","anue","xu","xue","que","aue","eaue","aoy","aoye","aeu"],"rp":["ux","-na","-naa","oxen","unae","-au","uxe","oux"]},"86":{"input":[2,3,5,7],"tlp":["du",10932],"trp":["ud",16891],"tlw":["du",8921],"trw":["ud",5540],"lp":["du","dnu","due"],"rp":["ud","und","unde","ude","oje","uden","uds","ndnu","ojne","ond","udse","use","nod","oden","-j","ndu","ndue"]},"87":{"input":[1,2,3,5,7],"tlw":["aa-e-ja",13],"trw":["-ja",333],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",7356],"trp":["ng",36020],"tlw":["bog",542],"trw":["ung",427],"lp":["bo","tu","gn","gu","bu","bog","tun","ton","tung"],"rp":["ng","nog","ob","ug","ut","ung","ngt","ub","ugt","ont","utt"]},"89":{"input":[1,4,5,7],"tlp":["ang",11845],"trp":["uf",1211],"tlw":["gang",1991],"trw":["nabo",19],"lp":["ang","gan","gang","bag","fu","atu","angt","agn","fun","fang","fug","tau","bang","gna"],"rp":["uf","natu","nga","uft","nfo","ngan"]},"90":{"input":[2,4,5,7],"tlp":["gj",4375],"trp":["ngs",1845],"tlw":["sgu",306],"trw":["just",195],"lp":["gj","gjo","stu","boj","bjo","tus","sgu","toj","stun","goj","gnus"],"rp":["ngs","ust","ojt","ngst","ngso","unst","job","just","jont"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",347],"trw":["jagt",44],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",17731],"trp":["nge",16467],"tlw":["bort",849],"trw":["noget",4194],"lp":["gen","ru","eng","bor","enge","beg","gne","run","gy","egy","bru"],"rp":["nge","noge","ur","ngen","yg","nger","ogen","orn","oren"]},"93":{"input":[1,3,4,5,7],"tlw":["foran",718],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",1269],"trw":["jeg",26496],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",378],"trw":["udenfor",361],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",52340],"trw":["lo",488],"lp":[],"rp":["il","li","ll","ol","lo","ill","lli","io","illi","olo","oli","lil","lill","oi","oll","ili","iol","ioli","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",35773],"trp":["la",34392],"tlw":["al",773],"trw":["laa",896],"lp":["al","all","aal","alli","ali","ala","aall","zo","ail","alo","aala"],"rp":["la","laa","lia","llia","lla","ola","ial","illa","olla"]},"98":{"input":[2,6,7],"tlp":["sl",6546],"trp":["ko",17253],"tlw":["sol",272],"trw":["los",173],"lp":["sl","sko","sol","slo","sio"],"rp":["ko","ls","ok","kl","lk","lik","kol","lsk","olk","ilk","okk","ils","lok","klo","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",4331],"trp":["kal",5704],"tlw":["skal",4257],"trw":["las",152],"lp":["skal","sla","wil","will","saal","sal","als","slaa","alk","wol","woll"],"rp":["kal","kla","las","kola","lska","oka","lass","okal","kalk"]},"100":{"input":[3,6,7],"tlp":["el",52483],"trp":["le",62636],"tlw":["el",13],"trw":["lille",1799],"lp":["el","ell","elle","eli","ele","elli","elo","eol"],"rp":["le","lle","ille","ole","ile","olle","lie","iel","oie","ilie","lel","olel"]},"101":{"input":[1,3,6,7],"tlp":["ale",5962],"trp":["lae",8065],"tlw":["alle",3178],"trw":["lae",133],"lp":["ale","ael","alle","aale","aell","ela","aele","ella","elae","alie","alae","eal"],"rp":["lae","iale","laae","lox","lela","lea","i-a","li-a"]},"102":{"input":[2,3,6,7],"tlp":["els",7813],"trp":["ld",24257],"tlw":["del",897],"trw":["lod",1333],"lp":["els","sel","del","else","deli","eld","dl"],"rp":["ld","lde","lse","old","led","ild","kel","lede","ilde","lid","lod","keli","olde"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",615],"trw":["lad",680],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",31908],"trp":["ig",74754],"tlw":["til",24015],"trw":["liv",1247],"lp":["til","vo","vil","gi","gl","tig","till"],"rp":["ig","lig","ov","lt","igt","lv","liv","ligt","log","lg","ogi","logi","olog"]},"105":{"input":[1,4,6,7],"tlp":["alt",7650],"trp":["lag",2904],"tlw":["alt",2353],"trw":["lagt",315],"lp":["alt","fl","tal","fol","fal","talt","gla","alti","alv","gav","fla","folg","atio","flo","folt"],"rp":["lag","lav","lof","loft","lf"]},"106":{"input":[2,4,6,7],"tlp":["sig",18329],"trp":["lst",1082],"tlw":["sig",13498],"trw":["livs",105],"lp":["sig","gik","stil","sigt","vilk","stol","gvis","skov","slog","sov","tils","stig","vok","vikl","voks"],"rp":["lst","kov","lts","isto","ilst"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",871],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",11354],"trp":["ige",17245],"tlw":["eller",3955],"trw":["over",5694],"lp":["vor","elig","rl","elv","rig","rli","rlig","vel","elt","gle"],"rp":["ige","ove","ler","lige","over","lev","ller","live","let","lte"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1118],"trw":["lave",376],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["selv",3736],"trw":["lidt",2473],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",1646],"trw":["lagde",628],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hu",19153],"trw":["hun",14886],"lp":[],"rp":["hu","ho","hun","ul","lu","hol","lin","ion","nl","nol","nolo","nli","uli","ull","llin","lun","oh","hoi","hul","uh"]},"113":{"input":[1,5,6,7],"tlp":["anl",545],"trp":["lan",8187],"tlw":["alanzo",70],"trw":["hal",31],"lp":["anl","anli","anal","alin","alan","anla"],"rp":["lan","hal","lau","nal","llan","oha","ohan","nla","olau","laan","lina","hali","onal","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sku",5017],"trp":["ku",16083],"tlw":["suk",140],"trw":["kun",2632],"lp":["sku","skul","slu"],"rp":["ku","kun","kul","uk","nok","hoj","kon","kunn","kno","hus","knol","ukk","hos","kjo","jl","luk","lukk"]},"115":{"input":[1,2,5,6,7],"tlw":["slank",25],"trw":["nikola",431],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",625],"trp":["ly",6399],"tlw":["ellen",583],"trw":["hele",1963],"lp":["eho","enl","elen","enli"],"rp":["ly","hel","len","yl","hele","llen","hell","ulle","ule","ione","olen","lene","nel","niel","line","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",617],"trw":["hallen",39],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",2683],"trw":["kunde",4358],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",328],"trw":["land",483],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",19380],"trp":["ing",14039],"tlw":["blot",846],"trw":["lob",434],"lp":["bl","bli","bliv","blo","gh","tilb","ting","bil"],"rp":["ing","hvo","ning","lb","igh","hov","ilb","ligh","nlig","nogl","ling","hvil"]},"121":{"input":[1,4,5,6,7],"tlw":["blaa",246],"trw":["langt",805],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",653],"trw":["hojt",407],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",951],"trw":["langs",456],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",4782],"trw":["hvor",4842],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1940],"trw":["laenge",871],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["teknologi",565],"trw":["holdt",1084],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1214],"trw":["hvordan",1085],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",3391],"trw":["p",397],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",2081],"trp":["pa",29683],"trw":["paa",14960],"lp":["ap","app","apa"],"rp":["pa","paa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",6812],"trp":["ps",284],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",699],"trp":["pas",1008],"trw":["pas",96],"lp":["spa","asp","aspa","aps","spaa"],"rp":["pas","pass","psa","paas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1393],"trp":["pe",8158],"trw":["'",36],"lp":["ep","epp","eppe","e'","epe"],"rp":["pe","ppe","'e","pee","pep"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",769],"trp":["pae",506],"tlw":["a'",18],"trw":["pae'",18],"lp":["a'","appe","aep","aepp","aa'","a'e","ae'"],"rp":["pae","pae'"]},"134":{"input":[2,3,8],"tlp":["spe",642],"trp":["ped",539],"lp":["spe","dsp","esp","espe","sep","s'","dp","es'","dep","depe","edp","dpe","edpe","desp"],"rp":["ped","pede","pd","pped","pes","pess"]},"135":{"input":[1,2,3,8],"tlp":["spae",341],"trp":["pda",378],"tlw":["saa'",120],"trw":["passe",116],"lp":["spae","saa'","spad","sa'","aspe","wes'","da'","da'e"],"rp":["pda","pad","paed","pads","peda","pda'","pade","psae"]},"136":{"input":[4,8],"trp":["pt",1019],"trw":["pt",16],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",205],"trp":["pf",375],"lp":["apt","apta","tap","tapp"],"rp":["pf","pta","pfa","pfat","pat","paat","paaf","paf","pafa"]},"138":{"input":[2,4,8],"trp":["pst",120],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["casp",50],"trp":["past",205],"lp":["casp","cap","fsp","afsp"],"rp":["past","psta"]},"140":{"input":[3,4,8],"tlp":["rp",670],"trp":["pr",5960],"tlw":["er'et",22],"trw":["per",374],"lp":["rp","erp","rep","rpt","epr","ept","tep","rpe"],"rp":["pr","per","pper","pet","pre","'r","ppet","pete","'er","pere","ptr","pte"]},"141":{"input":[1,3,4,8],"tlp":["rap",388],"trp":["pra",1908],"tlw":["ta'r",85],"trw":["par",1154],"lp":["rap","rapp","rpa","trap","rpaa","taep","arp","erpa","a'r","ta'","apr","arpt","ta'r"],"rp":["pra","par","prae","part","pare","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1019],"trp":["pers",530],"tlw":["spredte",60],"trw":["peder",77],"lp":["spr","derp","sper","spre","spec","step","sept","resp","dspr","rsp","ersp","rspe","cep","ccep","cept"],"rp":["pers","pres","pred","pec","pdr"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",245],"trw":["praest",184],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",16277],"trw":["m",548],"lp":[],"rp":["mm","mp","nm","mn","pm","np","pn"]},"145":{"input":[1,5,8],"tlp":["am",21010],"trp":["ma",29964],"tlw":["anm",32],"trw":["man",5955],"lp":["am","amm","amp","anm","anma","ama","aam","aama"],"rp":["ma","man","maa","nma","pan","maan","nap","pma","paan","mann","mma","mman"]},"146":{"input":[2,5,8],"tlp":["sm",5093],"trp":["ms",1840],"tlw":["sms",12],"lp":["sm","sms"],"rp":["ms","nsp","msp","jm","jsp","mps","pj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",5398],"trp":["mas",938],"tlw":["smaa",567],"trw":["maj",88],"lp":["sam","samm","sma","smaa","saam","sman","ams","span","asm","sama","sams","amsp","ansp"],"rp":["mas","maas","mass","maj","jam","mans","jamm"]},"148":{"input":[3,5,8],"tlp":["em",22268],"trp":["me",73368],"tlw":["emne",22],"trw":["men",13807],"lp":["em","emm","emme","emp","empe","eme"],"rp":["me","men","mme","mmen","nem","nnem","menn","pen","mpe","mene","ppen","my","nemm","yp"]},"149":{"input":[1,3,5,8],"tlp":["amme",5549],"trp":["mae",3778],"tlw":["examen",40],"trw":["mae",475],"lp":["amme","ame","ema","aem","ampe","aemp","amen","emae","amae","eman","aemm","emma","aame","enpa"],"rp":["mae","maen","paen","pmae","naep","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",5798],"trp":["med",23442],"tlw":["dem",5668],"trw":["med",20679],"lp":["dem","sme","dm","sem","semp","spej","ems","smed"],"rp":["med","mens","jem","mede","mes","mmed","jemm","mend","pej","jdsp","mped","medd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",1733],"trw":["mand",1898],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",86],"trp":["mt",4208],"lp":["tm","bm"],"rp":["mt","mb","pb","ptb"]},"153":{"input":[1,4,5,8],"tlp":["amt",793],"trp":["maat",1392],"trw":["mat",54],"lp":["amt","fam","amta","tam","tamm","amf","amb","fm","afm","fma"],"rp":["maat","mat","mf","matt","mta","mfa","mant","napt","mfan","mfat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",207],"trp":["mst",1374],"tlw":["cm",207],"lp":["cm","bsm"],"rp":["mst","mc","mtj","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",115],"trw":["pjat",14],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5355],"trp":["mer",8012],"tlw":["type",59],"trw":["mere",2523],"lp":["rm","rem","rme","tem","emt","erm","erme","temm","rmen","rmer","temt","remm"],"rp":["mer","mmer","mere","met","mte","mr","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",1987],"trw":["maatte",1220],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stemme",569],"trw":["mest",560],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",219],"trw":["praesten",235],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3860],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",492],"trp":["papi",191],"lp":["api"],"rp":["papi","ipa"]},"162":{"input":[2,6,8],"tlp":["spi",1676],"trp":["pis",540],"trw":["pis",22],"lp":["spi","spis","skip","sspi"],"rp":["pis","pisk","isp","kip","kipp","ips","ksp","pik","psi"]},"163":{"input":[1,2,6,8],"trp":["kap",494],"trw":["pak",15],"lp":[],"rp":["kap","kapi","pak","pakk","kapp","paak","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",89],"trp":["ippe",551],"lp":["epi"],"rp":["ippe","i'","i'e","ipe"]},"165":{"input":[1,3,6,8],"tlp":["zep",15],"trp":["paei",16],"lp":["zep","azep","zepi","z'"],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",136],"trp":["pise",257],"tlw":["spise",140],"trw":["piskede",12],"lp":["spid","spek","espi","eksp","si'","si'e"],"rp":["pise","pek","idsp","pid","pids","peki","ispe","ksep","kep","kkep","kspe","kepe","kepi"]},"167":{"input":[1,2,3,6,8],"tlw":["ska'",27],"trw":["pakke",52],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vip",54],"trp":["pit",385],"lp":["vip","vipp"],"rp":["pit","pti","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",301],"trp":["pav",149],"tlw":["fip",43],"lp":["apit","fip"],"rp":["pav","pati","pita","pavi","pfi"]},"170":{"input":[2,4,6,8],"tlp":["spit",84],"trp":["pist",182],"tlw":["spist",45],"lp":["spit","cip","vsp","scip","tisp"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",58],"trp":["pri",1094],"tlw":["vipper",20],"trw":["itt'",73],"lp":["rip","repi","ript","trip","ripp","vep","rvep","vepr"],"rp":["pri","pir","pite","peri","pire","priv","i'r","itt'","piri","i'er","prie","ipte"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",14],"trw":["papir",90],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spiste",89],"trw":["pris",129],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpt",108],"trw":["praksis",264],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",24076],"trw":["min",4554],"lp":[],"rp":["mi","min","im","imi","him","mh","ph","imm","pin","imp","mni","mnin","himm","hm","phi","mpi","mini","nim","mim","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",472],"trp":["ham",8353],"trw":["ham",8026],"lp":["ami","aim","amin"],"rp":["ham","iam","ima","hamm","mia","mai","pha","iman","phan","pani","imia","mian","hamp","mha","hima","pina","mani"]},"178":{"input":[2,5,6,8],"tlp":["smi",1181],"trp":["mis",825],"trw":["km",70],"lp":["smi","sim","simp","spin","ssim","simi"],"rp":["mis","mk","imis","msi","miss","km","misk","ism","phis","pink","kim","mspi","mism","msk"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",117],"trw":["knap",168],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emni",182],"trp":["ime",1615],"trw":["mine",1330],"lp":["emni","eph","empi","ephi"],"rp":["ime","mine","mhe","meni","imme","imen","hem","hemm","impe","menh","phe","mhy","hyp","hypp","yppi","meph"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",99],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spidsen",62],"trw":["hjem",1079],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["eksamen",41],"trw":["maske",618],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1144],"trp":["mit",1681],"trw":["mit",1681],"lp":["tim","timi","tmi","tmin","vim","vimm","vm","timm"],"rp":["mit","mti","ptim","imt","pib","mv","ntim","pint","itim","mvi","mvit","nvip"]},"185":{"input":[1,4,5,6,8],"tlw":["timian",19],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitain",20],"trw":["knapt",41],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["timer",267],"trw":["hvem",785],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",252],"trw":["marie",351],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["derhjemme",61],"trw":["mennesker",759],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["danmark",309],"trw":["maerke",366],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",11049],"trw":["op",5000],"lp":[],"rp":["op","po","opp","ppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",13],"trp":["opa",178],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1107],"trp":["pos",203],"lp":["spo","sop"],"rp":["pos","ops","osp","pso","opso"]},"195":{"input":[1,2,7,8],"trp":["opsa",25],"lp":[],"rp":["opsa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1153],"trw":["oppe",424],"lp":[],"rp":["oppe","o'","p-","poe","-p","o'e","p-p","ope"]},"197":{"input":[1,3,7,8],"trp":["opae",16],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dsop",23],"trp":["opd",408],"trw":["pose",26],"lp":["dsop"],"rp":["opd","pose","poes"]},"199":{"input":[1,2,3,7,8],"trw":["opad",89],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1156],"trp":["opt",558],"tlw":["top",127],"trw":["optog",47],"lp":["top","topp","gp","gpo"],"rp":["opt","pg","opg","pog","pto","opto","ptog","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["gpa",17],"trp":["opf",375],"lp":["gpa"],"rp":["opf","pga","opga","opta","ptag","opfa","pfo","opfo","pag","pagt","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",344],"trp":["opst",120],"tlw":["spog",51],"trw":["post",48],"lp":["stop","spog","gsp","spot","sopg","cop"],"rp":["opst","post","psto","psog"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",646],"trp":["pro",2431],"tlw":["toppe",42],"trw":["port",82],"lp":["rop","etop","ropp","gep","erop","epro"],"rp":["pro","por","porg","port","opr","peg","pege","prog","orp","o'r","optr","pore","opro","opre"]},"205":{"input":[1,3,4,7,8],"tlw":["fo'r",122],"trw":["proft",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",199],"trw":["pegede",119],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",153],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",50261],"trw":["om",12169],"lp":[],"rp":["om","mo","omm","mu","um","pu","mun","up","umm","pun","mon","ump","omp","opm","umu","upp","pou","mum","mpu","ompu"]},"209":{"input":[1,5,7,8],"tlp":["amo",42],"trp":["opma",262],"trw":["opnaa",32],"lp":["amo","aamo","anmo","apon"],"rp":["opma","oma","uma","manu","oman","pau","opna","uman","umaa","omma","upa","upaa"]},"210":{"input":[2,5,7,8],"tlp":["som",21760],"trp":["oms",1497],"tlw":["som",18932],"trw":["moj",60],"lp":["som","spu","smu","somm","spun","smo","sum","smus","summ"],"rp":["oms","mus","nsom","jom","mos","moj","pus","ums","mons","usm","nspo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",34],"trw":["mansson",22],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["en-m",111],"trp":["omme",6327],"trw":["-men",116],"lp":["en-m","emo","epu"],"rp":["omme","umme","-m","uppe","ume","umen","-me","-men","n-m","umpe","omne","ome","mue","pone","u-m","-mo","u-mo"]},"213":{"input":[1,3,5,7,8],"trw":["-man",13],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",83],"trw":["mod",3477],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["somand",13],"trw":["pause",61],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",486],"trp":["omt",1489],"tlw":["tom",108],"trw":["omt",46],"lp":["tom","tum","tomm","tomt","gm","gmo"],"rp":["omt","mog","mg","omg","pub","munt","put","mbo","mput","mob","omb","ombo","umt","mut"]},"217":{"input":[1,4,5,7,8],"tlw":["afmagt",13],"trw":["magt",215],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stum",33],"trw":["pust",33],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",71],"trw":["magnus",156],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["gennem",1130],"trw":["meget",3368],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",246],"trw":["mange",1787],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurgte",1168],"trw":["mogens",519],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",316],"trw":["professoren",159],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",5364],"trw":["pol",19],"lp":[],"rp":["pl","pil","lp","pill","pol","opl","lip","poli","lipp","pli","poll","plo","oplo","ilp","opi","pio","poi","lop","lpi","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",194],"trp":["pla",2683],"lp":["alp","alop","alpi"],"rp":["pla","lap","lapp","pal","opla","lpa","ilpa","pall","pala"]},"226":{"input":[2,6,7,8],"tlp":["spil",933],"trp":["klip",214],"tlw":["spil",117],"trw":["kop",75],"lp":["spil","slip","spl","skop","sopi","spio"],"rp":["klip","kop","kopp","ospi","posi","pok","pokk","lips","plos","plik","opsi","lsp","lspo","kopi"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",211],"trw":["klap",35],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",717],"trp":["ple",1132],"trw":["pille",26],"lp":["elp","elpe","epl","eple","epli"],"rp":["ple","lpe","pel","ople","plei","li'","lpel","pelo","-pl","p-pl","lpep","pepl","li'e","pole","p-i"]},"229":{"input":[1,3,6,7,8],"trw":["la'",18],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spillede",190],"trw":["poesi",41],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",19],"trw":["plads",674],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tilp",30],"trp":["pig",945],"trw":["pligt",89],"lp":["tilp"],"rp":["pig","opti","plig","pgi","opgi","pgiv","ppig","pov","povl","plov","plot","pigt","pitl"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",20],"trw":["opgav",49],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",54],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["tilpas",30],"trw":["plastisk",14],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",386],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",92],"trw":["opgave",78],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",111],"trw":["krop",196],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["vokseplads",34],"trw":["kapitel",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",3277],"trw":["poul",218],"lp":[],"rp":["ml","mil","lm","lom","mul","imo","muli","plu","olm","holm","omh","lmi","lmin","mili","mli","iml","himl","oph","minu","lim"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alpina",16],"trw":["plan",125],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",414],"trw":["kom",3720],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",837],"trw":["hjalp",126],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mellem",1362],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["emmanuelo",70],"trw":["lampen",77],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smilede",325],"trw":["komme",1447],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlede",209],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimt",79],"trw":["mig",8747],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",34],"trw":["pollnitz",127],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",214],"trw":["punkt",116],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["samling",60],"trw":["langsomt",369],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["glemt",197],"trw":["norholm",521],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",1533],"trw":["planter",359],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["blomster",490],"trw":["kommer",1590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidig",195],"trw":["plantes",218],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json index c85c9213e3..1a25662b28 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",9644],"tlw":["a",672],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",161786],"tlw":["s",320],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",267481],"tlw":["was",33174],"lp":["as","wa","sa","ass","was","wass","ssa","sw","asa","assa","saa","aw","swa","awa","sas","ssas","asw","saw","sawa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",14304],"tlw":["e",8272],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",6426],"lp":["ea","ex","ae","xa","ax","xe","exe","exa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603509],"tlw":["es",81182],"lp":["de","es","se","ed","sse","ese","ede","des","ess","esse","ses","eses","ds","dess","see","edes","sd","dee","dd","sess"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270688],"tlw":["das",100677],"lp":["da","we","das","dass","ew","ad","asse","ewe","wes","ade","wese","ewes","esa","eda","dw","ewa","ase","essa","dwa","wed"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",129965],"tlw":["t",4870],"lp":["tt","ttt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",159129],"tlw":["tat",2050],"lp":["at","att","ta","fa","ft","ff","af","tat","aft","aff","tf","fft","tatt","tta","afft","fta","ffa","ata","ttf","taa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",329949],"tlw":["st",194],"lp":["st","sc","ts","sst","tsc","ssc","tst","tts","tc","sts","ttst","ssts","stst","ct","cc","stc","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",129940],"tlw":["fast",4605],"lp":["ac","sta","tw","ast","twa","twas","asc","fas","fac","wac","sac","tsa","ca","fast","ats","asst","stat","fs","tas","atsa"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",1062516],"tlw":["er",139320],"lp":["er","te","re","rt","et","tte","ter","rte","tr","ere","ert","ete","tet","rr","erte","tete","rer","err","tter","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",236202],"tlw":["trat",2331],"lp":["ar","ra","atte","fe","fr","ef","are","tra","fra","era","art","rf","ate","ffe","fre","arte","fer","ara","rat","ater"],"rp":[]},"14":{"input":[2,3,4],"tlp":["der",234317],"tlw":["der",139944],"lp":["der","ste","rd","rs","ers","rde","est","ec","rst","dr","erst","eder","ser","erd","ster","rc","dere","erde","sste","rsc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["war",130034],"tlw":["war",76994],"lp":["war","wer","ware","rac","dar","etw","etwa","rw","werd","erw","dac","dara","dra","wart","star","rad","stra","fes","rwa","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",160994],"trw":["n",114],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",368610],"trp":["na",94964],"tlw":["an",48407],"trw":["na",1852],"lp":["an","ann","ana","anna","aq","qq","aqq"],"rp":["na","nan","nna","nann","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",476],"trp":["ns",79641],"trw":["j",60],"lp":["sn"],"rp":["ns","nns","nj"]},"19":{"input":[1,2,5],"tlp":["wan",16048],"trp":["ja",26608],"tlw":["wann",1025],"trw":["ja",12041],"lp":["wan","ans","san","anns","wann","ssan","anw","ansa","sna","aj"],"rp":["ja","nw","nas","nsa","jan","nwa","nass","nja","jann","jans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1123066],"trp":["ne",372242],"tlw":["en",15361],"trw":["nennen",573],"lp":["en","enn","ene","enen","enne","ey","een","eyn"],"rp":["ne","nen","nne","nnen","yn","ny","nee","nenn","nny","ye","ney","yen"]},"21":{"input":[1,3,5],"tlp":["ena",8169],"trp":["ya",3585],"trw":["nyx",188],"lp":["ena","anne","ane","ay","ean","anen","anny","enan","any","enna","xan","eq","aya","xen","exen"],"rp":["ya","yan","nea","yx","nyx"]},"22":{"input":[2,3,5],"tlp":["den",182183],"trp":["nd",429334],"tlw":["den",92856],"trw":["jeden",2171],"lp":["den","sen","end","ssen","ens","esen","ende","denn","eden","dene"],"rp":["nd","nde","je","nden","nes","jed","nse","jede","ndes","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",91655],"trp":["ndw",5333],"tlw":["wenn",26017],"trw":["nase",1633],"lp":["and","ande","wen","dan","wenn","dann","wand","endw","edan","aden","sand","wend","dana","anda"],"rp":["ndw","nand","nwe","nda","nase","ndwa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",17983],"trp":["nt",123340],"tlw":["b",133],"lp":["bt","tb","tn","bb","bn","ttn"],"rp":["nt","nnt","nb","ntt","ntn","nntn","ntb","nnb"]},"25":{"input":[1,4,5],"tlp":["ab",110601],"trp":["nf",19807],"tlw":["ab",6161],"lp":["ab","ba","tan","ant","annt","fan","fn","anf","ffn","abt","ban","anft"],"rp":["nf","nfa","nat","nft","ntf","nab","nba","nta"]},"26":{"input":[2,4,5],"tlp":["bs",13819],"trp":["nst",18313],"lp":["bs","bst","bsc","sb","tj","stb","bj","bc","bstb"],"rp":["nst","nsc","nc","nts","ntsc","nnst","ntst","nnsc","nstb","nsb","nnts"]},"27":{"input":[1,2,4,5],"tlp":["stan",16933],"trp":["nac",40467],"tlw":["sanft",880],"lp":["stan","antw","bw","anc","abs","bac","anac","ansc","sanf","anst","absc","abw","stab","sab","abst"],"rp":["nac","ntw","nfac","jac","nsta"]},"28":{"input":[3,4,5],"tlp":["be",315569],"trp":["nte",72977],"tlw":["bett",2066],"trw":["neben",3915],"lp":["be","ten","ber","ren","ben","eb","rn","ern","br","ebe","ent","eben","rb","eren","tten","tern"],"rp":["nte","ner","nnte","nter"]},"29":{"input":[1,3,4,5],"tlp":["abe",79213],"tlw":["aber",39696],"lp":["abe","aber","fen","ran","aren","aben","bra","ffen","bar","arb","arbe","bef","aten","aran","fern","fne","enf","ffne","ary","arry"],"rp":[]},"30":{"input":[2,3,4,5],"tlp":["rden",23780],"trp":["nder",38861],"tlw":["ersten",3262],"trw":["jeder",2456],"lp":["rden","bes","sten","rend","ensc","best","dern","ents","bed","enst","bess","bend","enc"],"rp":["nder","jet","nser","nste","ndet","nce","ndt"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",18283],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",157],"trw":["i",123],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",20813],"trp":["ia",9362],"tlw":["z",118],"lp":["zi","za","ai","az","zz","azi","aza","zzi","aia","zza","azz"],"rp":["ia","iz","izi","izz","izzi","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",316897],"trp":["is",130177],"trw":["is",168],"lp":["si","ssi","sk","sik","sis","ski"],"rp":["is","iss","ki","ik","ks","kk","isi","isk","kis","isik","kiss","issi","iski","ksi"]},"35":{"input":[1,2,6],"tlp":["wi",167420],"trp":["ka",56299],"trw":["kai",169],"lp":["wi","zw","wis","zwi","wiss","zwis","ak","zwa","assi","sz","zis","asi","zs","ais"],"rp":["ka","ksa","kw","kz","isa","kas"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",652619],"trp":["ie",651532],"tlw":["ei",176],"lp":["ei","eie","eei","eiei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",61436],"trp":["ize",965],"lp":["ze","zei","zie","ez","eze","ezei","xi","eza","exi","ezi","eiz","axi","ezie","zzie","azie","eize"],"rp":["ize","izie","izei","ix"]},"38":{"input":[2,3,6],"tlp":["di",276515],"trp":["ke",89577],"tlw":["die",198925],"trw":["idee",1017],"lp":["di","die","sie","sei","dies","eis","eid","ek","esi","dei","eide"],"rp":["ke","ies","kei","id","iese","ied","iede","ide","ise"]},"39":{"input":[1,2,3,6],"tlp":["wie",72674],"tlw":["wie",48051],"trw":["kase",144],"lp":["wie","wei","wied","zwe","zwei","weis","wid","wide","ewi","daz","eka","wies","zd","zde","dwi","ewis","ake","dwie","zes","ewei"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",64747],"trp":["it",174613],"tlw":["v",67],"lp":["ti","vi","tti","tit","tv","tiv","viv","vivi","vt","vit"],"rp":["it","itt","iti","iv","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["tz",57975],"trp":["if",14792],"tlw":["fitz",198],"lp":["tz","zt","tzt","fi","va","atz","av","vat","fz","ati","fti","afti","fzt","tia","zit"],"rp":["if","itz","iff","ita","ift"]},"42":{"input":[2,4,6],"tlp":["sic",113216],"trp":["ic",528821],"tlw":["vick",133],"trw":["ist",43418],"lp":["sic","ck","sti","ckt","tis","tisc","sit","cks","ckk","ci"],"rp":["ic","ist","kt","ick","isc","ickt","its","kti","issc","isti"]},"43":{"input":[1,2,4,6],"tlp":["wisc",7325],"trp":["kat",4899],"tlw":["satz",590],"trw":["katsa",541],"lp":["wisc","ack","wic","sitz","ackt","akt","satz","tak","wit","stia","asti","akti","cksa","twi","sack","fis","fisc"],"rp":["kat","katz","kaf"]},"44":{"input":[3,4,6],"tlp":["ri",94871],"trp":["ir",113010],"tlw":["vier",1685],"lp":["ri","ve","ver","eit","rei","eite","vie","rie","eri","tie","tei","reit","rit","tri"],"rp":["ir","ier","ite","itte","iter","iert"]},"45":{"input":[1,3,4,6],"tlp":["rz",29091],"trp":["ief",12679],"tlw":["zeit",6744],"lp":["rz","etz","etzt","erz","zte","tze","tzte","zeit","rze","eif","vate","tief","rif","arz","rief","riff","fie","eife"],"rp":["ief","ife"]},"46":{"input":[2,3,4,6],"tlp":["rk",34305],"trp":["kte",27132],"tlw":["dir",10511],"lp":["rk","eic","vers","erk","cke","ckte","eck","dic","ric","dir","seit","esic","eckt","ris","reic"],"rp":["kte","kr","ird","irk","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["wir",29431],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",659187],"trw":["in",95638],"lp":[],"rp":["in","ni","ih","hi","hn","ihn","hin","inn","ini","nh","hni","hh","nni","nin","nih","inh","inni","hnh","inin","hinn"]},"49":{"input":[1,5,6],"tlp":["ah",76442],"trp":["ha",235199],"tlw":["ah",759],"trw":["nah",453],"lp":["ah","anz","zah","ahn","ani","ahi"],"rp":["ha","nz","han","nah","inz","ina","nzi","inzi","haa","hina","inan","ian","hna","hz"]},"50":{"input":[2,5,6],"tlp":["sin",16409],"trp":["nk",38114],"tlw":["sinn",805],"trw":["ins",5955],"lp":["sin","sh","shi","sinn"],"rp":["nk","ins","hs","kin","kn","nis","ink","nsi","kni","hk","ish","nks","nik","kh","niss","hns"]},"51":{"input":[1,2,5,6],"tlp":["wah",16237],"trp":["hw",26859],"tlw":["sah",11589],"trw":["kann",10392],"lp":["wah","sah","ank","win","sha","wanz"],"rp":["hw","kan","kann","has","hwa","jah","hwi","hwan","hwin","insa","inw","nzw","inzw","nzwi"]},"52":{"input":[3,5,6],"tlp":["ein",403963],"trp":["ine",235416],"tlw":["ein",66637],"trw":["ihnen",10635],"lp":["ein","eine","eh","ehe","ehen","eni"],"rp":["ine","he","hen","inen","hie","hne","hei","nie","ien","hnen","ihne","inne","nei","nein"]},"53":{"input":[1,3,5,6],"tlp":["zen",18592],"trp":["nze",12641],"tlw":["zehn",1114],"trw":["nahe",2024],"lp":["zen","ahe","anze","eha","einz","eina","zeh","zieh","zehn","ahne","ahen","enz","enze","anie"],"rp":["nze","nahe","nzen","inze","hze","hzei"]},"54":{"input":[2,3,5,6],"tlp":["sein",76189],"trp":["ind",34029],"tlw":["sein",25372],"trw":["keine",11161],"lp":["sein","seh","sehe","sind","dein","enk","din","denk","eseh","eins","enke"],"rp":["ind","ken","kein","nke","inde","ines","nken","iden","kenn"]},"55":{"input":[1,2,3,5,6],"tlw":["wissen",4749],"trw":["hand",7972],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",40682],"trp":["ht",252865],"tlw":["bin",8228],"lp":["bi","bin","th","bit","bitt","tin","thi"],"rp":["ht","int","ib","hint","hti","ibt","hnt","nit","nti","nv","htb","hnit","nitt"]},"57":{"input":[1,4,5,6],"tlp":["fin",11249],"trp":["hat",98724],"tlw":["zantini",146],"trw":["hat",19760],"lp":["fin","fah","tha","fh","ahnt","tian"],"rp":["hat","hatt","hab","haf","inf","infa","haft","habt","haff","hif","hiff","htba","nzt","hatz"]},"58":{"input":[2,4,5,6],"tlp":["ch",1037218],"trp":["ich",501099],"tlw":["sich",92744],"trw":["ich",126388],"lp":["ch","cht","sch","sich","chi","bis","schi","chts","chn","chs","schn","chti"],"rp":["ich","icht","nic","nich","isch","hts","nsch","hst"]},"59":{"input":[1,2,4,5,6],"tlw":["ach",1398],"trw":["nach",23041],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bei",38768],"trp":["hr",166493],"tlw":["einer",16300],"trw":["ihr",34974],"lp":["bei","ehr","rin","rh","erh","eht","teh"],"rp":["hr","ihr","hre","hte","her","ihre","iner","hren","ieb","hier","inte","hrer","hten"]},"61":{"input":[1,3,4,5,6],"tlw":["arbeit",1479],"trw":["hatte",62837],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dich",11521],"trw":["nickte",3237],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["wahrend",7160],"trw":["jetzt",12900],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2552],"trw":["o",417],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",544],"trp":["oa",1055],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",96770],"trp":["os",26972],"tlw":["so",35536],"lp":["so","sso","sos"],"rp":["os","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",62062],"trp":["ow",3659],"tlw":["wo",7187],"lp":["wo","sow","woo","sowo","aos","swo","wow","aso","soa","woa","awo","sao"],"rp":["ow","osa","owa","owo","osw","osas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",4452],"trp":["oe",1221],"trw":["-",5881],"lp":["eo","e-"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",546],"trp":["ox",233],"lp":["a-"],"rp":["ox","-a","oxa","oxe"]},"70":{"input":[2,3,7],"tlp":["do",34031],"trp":["od",27025],"tlw":["dose",88],"lp":["do","eso","edo","sod","esso","deo","ddo","s-","s-o","soe","dos"],"rp":["od","ode","ose","osse","ood","-s","odes","ods","odo"]},"71":{"input":[1,2,3,7],"tlp":["ewo",5402],"trp":["oda",1427],"tlw":["sodass",1096],"lp":["ewo","dwo","soda","wood","sowe","ado","wod"],"rp":["oda","odas","owe","-w","-we","oswe","owes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",75665],"trp":["ot",33072],"tlw":["tot",1524],"trw":["otto",56],"lp":["gt","to","go","tot","tg","got","gott","gg","tto","gto","ttg"],"rp":["ot","og","ott","oot","oto","otto","ogo","ogg","ottt"]},"73":{"input":[1,4,7],"tlp":["ag",98104],"trp":["of",22112],"tlw":["tag",3421],"trw":["oft",1577],"lp":["ag","ga","agt","fo","tag","fg","fot","ago","fga","ttag","foto","tof","foa","gf"],"rp":["of","off","oga","ofo","oft","offt"]},"74":{"input":[2,4,7],"tlp":["gs",15827],"trp":["oc",76156],"tlw":["sto",607],"lp":["gs","sto","gst","sg","sog","co","toc","stoc","tos","gc","sgc","gos","goss"],"rp":["oc","ost","ots","osc","oots","otsc","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",41908],"tlw":["sagt",3037],"lp":["sag","sagt","two","sof","soga","sofo","gsa","wag","woc","gas","ags","gast","gw","agst","wagt","stof","aco","asto","stag","sags"],"rp":[]},"76":{"input":[3,4,7],"tlp":["ge",417472],"trp":["or",139857],"tlw":["gro",12824],"trw":["ort",1465],"lp":["ge","eg","ro","gte","gr","ger","rg","ege","rge","geg","gro","erg","gege","egt","tro"],"rp":["or","ort","orte","ote","org"]},"77":{"input":[1,3,4,7],"tlp":["agte",36381],"trp":["offe",6976],"tlw":["fragte",8751],"lp":["agte","age","rag","gef","frag","ragt","gar","for","gera","rage","gefa","ega","fort","gra","fge","tage","fote","trag"],"rp":["offe","ogar"]},"78":{"input":[2,3,4,7],"tlp":["ges",52897],"trp":["oder",15264],"tlw":["dort",4958],"trw":["oder",15082],"lp":["ges","doc","gesc","gest","gese","ged","dor","roc","dort","sor","sorg","sge","ros","stor","tod","rges"],"rp":["oder","ord","orde","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["sagte",25887],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",390483],"trw":["nun",5974],"lp":[],"rp":["un","on","nu","no","onn","nun","unn","ou","nno","non","nnu","nnun","ono","onno","uo","unno","uu","uun","unu","unun"]},"81":{"input":[1,5,7],"tlp":["au",303972],"trp":["nau",10174],"tlw":["au",5558],"lp":["au","aun","qu","qua","anu","annu","ano","quo"],"rp":["nau","ona","ua","una","oan","unan","onna","unna","uan","unau","oann","oana"]},"82":{"input":[2,5,7],"tlp":["su",18391],"trp":["us",129755],"tlw":["su",647],"trw":["uns",13571],"lp":["su","son","sons","sonn","sun","sus","ssu"],"rp":["us","uss","uns","ju","jun","ons","jo","nso","uso","jon","jus","ous","nos"]},"83":{"input":[1,2,5,7],"tlp":["aus",69449],"trp":["usa",6060],"tlw":["aus",34379],"trw":["jason",129],"lp":["aus","wu","wus","wuss","wun","auss","wuns","auso","sau","won","saus","assu","ausw","asu"],"rp":["usa","naus","ussa","unw","uw","usw"]},"84":{"input":[3,5,7],"tlp":["eu",55225],"trp":["ue",28283],"trw":["neue",1471],"lp":["eu","eue","enu","eun","eno","euen","enno"],"rp":["ue","onne","uen","neu","one","une","neue","onen","unen","n-","unne","oy","yo"]},"85":{"input":[1,3,5,7],"tlp":["aue",12361],"trp":["ux",957],"lp":["aue","enau","auen","aune","que","equ","eque","an-","ean-","eau","equa","eona"],"rp":["ux","uxa","onea","na-","nna-","naue","oya","uya"]},"86":{"input":[2,3,5,7],"tlp":["du",75774],"trp":["und",249565],"tlw":["du",44764],"trw":["und",220198],"lp":["du","dun","deu","eund","sond","esu","seu","edeu","don"],"rp":["und","unde","ud","ond","ude","use","usse","unse","onde","oden","jedo"]},"87":{"input":[1,2,3,5,7],"tlw":["sonea",505],"trw":["nasuada",322],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",42893],"trp":["ng",148258],"tlw":["gut",8191],"trw":["ob",5684],"lp":["tu","gu","tun","bo","gut","bu","tung","gn","gun"],"rp":["ng","ut","ub","ung","ug","ob","onnt","unt","utt","nung","ngt"]},"89":{"input":[1,4,5,7],"tlp":["auf",98105],"trp":["uf",112428],"tlw":["auf",72050],"trw":["offnung",187],"lp":["auf","fu","ang","gan","aug","aut","aub","gab","tau","fun","gang","bau","aufg","atu"],"rp":["uf","uft","ufg","offn","unf","natu"]},"90":{"input":[2,4,5,7],"tlp":["stu",13806],"trp":["uc",97659],"tlw":["sonst",2451],"trw":["jung",472],"lp":["stu","suc","stun","buc","tuc","stuc"],"rp":["uc","noc","usst","ust","ngs","jung","ngst","usc","usg","onst","unsc","uts","ubs","utsc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",3094],"trw":["jacob",437],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",136399],"trp":["ur",167807],"tlw":["gegen",5275],"trw":["nur",23303],"lp":["gen","ru","egen","geb","eut","rgen","run","tur"],"rp":["ur","nge","ube","uber","ute","ngen","nur","uge","unte","ugen","unge","uer"]},"93":{"input":[1,3,4,5,7],"tlw":["fur",24293],"trw":["offnete",1687],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["boden",4242],"trw":["junge",3404],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["wurde",25182],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",151710],"trw":["ol",121],"lp":[],"rp":["li","ll","ol","il","oll","lo","ill","io","lli","ili","llo","illi","olli","oli","lio","lil","ilo","oi","lili","olo"]},"97":{"input":[1,6,7],"tlp":["al",191580],"trp":["la",130568],"tlw":["all",2129],"trw":["lilia",446],"lp":["al","all","zo","zl","zli","ali","alli","ala","allz"],"rp":["la","lz","olz","lia","ola","liz","ila","oz","oliz","lla","llz"]},"98":{"input":[2,6,7],"tlp":["sol",18755],"trp":["ko",75943],"tlw":["soll",3129],"trw":["los",2861],"lp":["sol","soll","sl","sil"],"rp":["ko","ls","kl","los","kli","lls","lso","loss","lk","ok","olk","ills","klo","llk","lko","llko"]},"99":{"input":[1,2,6,7],"tlp":["als",59443],"trp":["las",17376],"tlw":["als",47093],"trw":["lass",1226],"lp":["als","wol","woll","wil","will","also","wal","alls","wolk","sal","sola","sowi","alas"],"rp":["las","lass","kla","kal","oka","owi","low"]},"100":{"input":[3,6,7],"tlp":["el",169112],"trp":["le",200448],"tlw":["eile",168],"trw":["lie",7334],"lp":["el","ell","eil","elle","ele","eile","eli"],"rp":["le","lle","lei","lie","iel","llei","olle","iell","iele","ile","ille","ilie","lee"]},"101":{"input":[1,3,6,7],"tlp":["alle",36348],"trp":["lze",595],"tlw":["alle",9095],"trw":["lizzie",239],"lp":["alle","ale","ela","zel","elz","ezo","ziel","zoe","ael","zell","ella","alee","eal"],"rp":["lze","lize","iela","oze","lzei","-al","-ali"]},"102":{"input":[2,3,6,7],"tlp":["sel",17287],"trp":["ld",21588],"tlw":["seele",607],"trw":["leise",2478],"lp":["sel","dl","eko","dli","del","eld","els"],"rp":["ld","kle","les","klei","lles","kel","lde","ild","leid","leis","old","ilde","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["alles",9526],"trw":["lasse",483],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",111639],"trp":["lt",103510],"tlw":["vollig",1315],"trw":["ig",1168],"lp":["vo","gl","gi","tig","tl","tli","gli","vol","voll"],"rp":["lt","ig","llt","ollt","igt","lg","olg","lig","ogl","lot","ogli"]},"105":{"input":[1,4,6,7],"tlp":["alt",26083],"trp":["lag",11095],"tlw":["zog",4180],"trw":["lag",3548],"lp":["alt","fl","fal","fall","gla","zog","zig","fol","folg","avo","tzl","fla","tzli","agi"],"rp":["lag","lf","lat","otz","latt","lotz"]},"106":{"input":[2,4,6,7],"tlp":["tlic",10135],"trp":["lic",83791],"tlw":["still",966],"trw":["lost",108],"lp":["tlic","cl","glic","ckl","gk","sig","solc","ckli","stil"],"rp":["lic","lick","klic","lc","ock","lst","olc","llst","igk","lsc","igs"]},"107":{"input":[1,2,4,6,7],"tlw":["willst",2074],"trw":["lasst",1485],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",42281],"trp":["lte",70997],"tlw":["vor",22128],"trw":["legte",3034],"lp":["vor","elt","rl","erl","gel","viel","tel","elte","eig","rli","tell","eige","verl"],"rp":["lte","ige","llte","ler","ieg","leg","irg"]},"109":{"input":[1,3,4,6,7],"tlw":["fiel",2565],"trw":["letzte",1489],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["sollte",5278],"trw":["krieger",1798],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["wollte",8491],"trw":["klar",2511],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hl",69806],"trw":["oh",1758],"lp":[],"rp":["hl","ho","lu","oh","uh","hu","ul","hon","ohn","hli","ln","uhl","ohl","hul","lin","nl","hol","hun","hlu","ion"]},"113":{"input":[1,5,6,7],"tlp":["zu",171648],"trp":["lan",36595],"tlw":["zu",106187],"trw":["hinzu",1319],"lp":["zu","ahl","zahl","azu","zun","zau","aul","anzu"],"rp":["lan","lau","hau","hal","hla","nzu","inau","hall","inzu","unz","hlan","iau"]},"114":{"input":[2,5,6,7],"tlp":["soh",2201],"trp":["kon",39622],"tlw":["sohn",1591],"trw":["john",638],"lp":["soh","sohn"],"rp":["kon","konn","ku","unk","lus","hlos","kun","koni","luss","uk","nkl","unkl","kus","klin","hos","link","kuss","luk"]},"115":{"input":[1,2,5,6,7],"tlw":["wohl",3262],"trw":["haus",3123],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",9970],"trp":["len",34944],"trw":["ohne",6453],"lp":["eln","eho","elen"],"rp":["len","llen","lein","hel","hle","ohne","hiel","hlie","leu","nel","uhe","hlen","heu","ly","hnel","nell","ohe"]},"117":{"input":[1,3,5,6,7],"tlw":["allein",3101],"trw":["luxa",831],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sollen",1705],"trw":["konnen",8192],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dazu",3106],"trw":["lassen",4737],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["von",54263],"trp":["ing",35552],"tlw":["von",48992],"trw":["hob",2725],"lp":["von","bl","bli","gin","ging","bil","blu"],"rp":["ing","lb","nig","htig","hlt","hut","hob","lug","ntl","hig","onig","lut","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["ganz",8095],"trw":["luft",3854],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["schon",15769],"trw":["noch",31550],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["auch",23263],"trw":["obwohl",3157],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["gehen",3878],"trw":["leben",6005],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zur",7461],"trw":["lange",4757],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["doch",19379],"trw":["konnte",19700],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["zuruck",7484],"trw":["naturlich",3611],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",10101],"trw":["p",276],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9189],"trp":["pa",25493],"trw":["papa",249],"lp":["ap","app","apa","appa"],"rp":["pa","paa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",35230],"trp":["ps",471],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",6529],"trp":["pas",4544],"tlw":["spa",543],"trw":["pass",277],"lp":["spa","sap","wap","wapp","aps","asp"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",4107],"trp":["pe",21955],"lp":["ep","epp","eppe","e'"],"rp":["pe","ppe","pee","'e"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",1127],"trp":["px",233],"trw":["px",233],"lp":["appe","ape","epa","xp","exp","a'","eap"],"rp":["px"]},"134":{"input":[2,3,8],"tlp":["esp",4229],"trp":["'s",1830],"lp":["esp","spe","espe","sep","spee","s'","dsp","dspe","e's","dep","es'"],"rp":["'s","pes","peed"]},"135":{"input":[1,2,3,8],"tlp":["espa",426],"trw":["passe",61],"lp":["espa","dap"],"rp":[]},"136":{"input":[4,8],"tlp":["tp",1024],"trp":["pt",8640],"trw":["pt",821],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",1143],"trp":["pf",28238],"trw":["pat",81],"lp":["appt","tap","apf","tpf","attp","ttpf","fp","tapf","apt","tapp","fpa","apft","apta","ffp"],"rp":["pf","pat","pft","pfa","pta"]},"138":{"input":[2,4,8],"tlp":["tsp",820],"trp":["pts",393],"lp":["tsp","stp"],"rp":["pts","ptst","pst"]},"139":{"input":[1,2,4,8],"tlp":["spat",3485],"trp":["pac",1868],"tlw":["spat",894],"trw":["passt",223],"lp":["spat","stap","cap","tspa","fpas","capt","fsp"],"rp":["pac","pfs","pfsc","ptsa","past"]},"140":{"input":[3,4,8],"tlp":["rp",4472],"trp":["pr",23900],"tlw":["treppe",1030],"trw":["peter",275],"lp":["rp","rpe","rper","rep","trep","repp","erp","ept","t'","r'"],"rp":["pr","per","pre","pte","ppte","pet","pert","peet","pete","ptet"]},"141":{"input":[1,3,4,8],"tlp":["rpf",493],"trp":["pra",7549],"tlw":["tapfer",173],"trw":["paar",4977],"lp":["rpf","erpf","apfe","rpa","erpa","apr","rap","tape","ar'","ra'"],"rp":["pra","pfe","paar","pfte","pate","pfer","par","patr","perf","part"]},"142":{"input":[2,3,4,8],"tlp":["spr",13156],"trp":["prec",3135],"tlw":["speer",150],"trw":["presste",522],"lp":["spr","spre","rsp","espr","ersp","rspr","t's","sper","sept","tspr","resp","r's","ce'"],"rp":["prec","pers","pres","pred","perc","perd","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["spater",2320],"trw":["pferd",730],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",75202],"lp":[],"rp":["mm","nm","mp","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",75203],"trp":["ma",116805],"tlw":["am",13314],"trw":["man",13524],"lp":["am","amm","amp","ama","aman","anm"],"rp":["ma","man","mann","nma","nam","pan","nap","napp","pann","mma","mman","mam","mama","mna"]},"146":{"input":[2,5,8],"tlp":["sm",2006],"trp":["ms",3988],"tlw":["sms",84],"lp":["sm","ssm","sms"],"rp":["ms","mms","nsp","mj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",18083],"trp":["nsam",1490],"tlw":["sam",1544],"trw":["japan",53],"lp":["sam","samm","span","sma","asam","ams","ansp","sams","wam","wamm","ssam"],"rp":["nsam","mas","jam","mass","maj","mw","nspa","mja","mjan"]},"148":{"input":[3,5,8],"tlp":["em",142396],"trp":["me",172798],"tlw":["em",427],"trw":["'ne",199],"lp":["em","eme","emp","enp","enem","enpe"],"rp":["me","mme","men","nem","mmen","pen","ppen","mpe","my","mee","yp","npe","ym","mmy"]},"149":{"input":[1,3,5,8],"tlp":["ema",15399],"trp":["name",3654],"tlw":["amy",168],"trw":["namen",2293],"lp":["ema","ame","eman","amme","amen","ampe","aym","ampy","xem","eam","amy","enma","anme","emna","xeme"],"rp":["name","max","mae","may","maya"]},"150":{"input":[2,3,5,8],"tlp":["dem",54438],"trp":["mens",6613],"tlw":["dem",45085],"trw":["jedem",1143],"lp":["dem","sem","esem","emd","edem","emde","esm","djem","dm"],"rp":["mens","jem","md","mes","ndem","mde","mess","mden","mend","med","mmes"]},"151":{"input":[1,2,3,5,8],"tlw":["wem",425],"trw":["jemand",3073],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",2485],"trp":["mt",14056],"lp":["tm","bm"],"rp":["mt","mmt","mb","ptm","mpt"]},"153":{"input":[1,4,5,8],"tlp":["ampf",3371],"trp":["mpf",5070],"tlw":["amt",94],"trw":["matt",200],"lp":["ampf","tam","amt","fam","ammt","tamm","atm","fm","tama","tma","tman"],"rp":["mpf","mat","mpft","npf","matt","mant","mpfa","pfan","ptma"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",109],"trp":["mst",1918],"lp":["stm","bstm"],"rp":["mst","mmst","ntsp","msc","mmsc","mc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stamm",309],"trw":["mats",101],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",24866],"trp":["mer",37720],"tlw":["typ",417],"trw":["mr",1767],"lp":["rm","rem","rme","tem","erm","emer","bem","beme","rmen","teme"],"rp":["mer","mmer","mte","ment","mmte","mr","met","mete","mbe","mert"]},"157":{"input":[1,3,4,5,8],"tlw":["arm",2393],"trw":["manner",2823],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdem",1712],"trw":["mrs",981],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["warme",548],"trw":["mandred",237],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",11374],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2458],"trp":["papi",842],"trw":["pia",152],"lp":["api","aip","zip","zp","zap","zapp"],"rp":["papi","paz","pazi","pia","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",7019],"trp":["isp",965],"lp":["spi"],"rp":["isp","ispi","pis","kp","kip","kipp","ksp","kspi","ips"]},"163":{"input":[1,2,6,8],"tlp":["spaz",195],"trp":["kap",1913],"lp":["spaz","zsp","zspi","wisp","szip","szap"],"rp":["kap","kapi","kapp"]},"164":{"input":[3,6,8],"tlp":["eppi",167],"trp":["pie",5917],"lp":["eppi","eip"],"rp":["pie","ippe","pei","peie","ie'","ipe"]},"165":{"input":[1,3,6,8],"tlp":["apie",1000],"trp":["'z",210],"lp":["apie","zep","a'z","a'za","z'"],"rp":["'z","'za"]},"166":{"input":[2,3,6,8],"tlp":["spie",4741],"trp":["pek",382],"tlw":["spie",186],"lp":["spie","eisp","spek","spei","espi","skep","disp","sie'"],"rp":["pek","peis","kep","ispe","is'","ie's","idep","k'","k'e"]},"167":{"input":[1,2,3,6,8],"trw":["kappe",55],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",377],"trp":["pit",3051],"tlw":["tippt",50],"lp":["tip","tipp"],"rp":["pit","pti","ippt","itp","ipt","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",1458],"trp":["pitz",1593],"trw":["pfiff",129],"lp":["apit","zpf","tzp","zapf"],"rp":["pitz","pfi","pita","pati","ipf","ptai","pfif","pav","pavi","patz"]},"170":{"input":[2,4,6,8],"tlp":["spit",1593],"trp":["pist",286],"lp":["spit","cksp"],"rp":["pist","pisc","pic","ppic","ptis","ktp"]},"171":{"input":[1,2,4,6,8],"tlw":["spitz",113],"trw":["packt",105],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",838],"trp":["pri",3830],"tlw":["tippte",195],"lp":["rip","epti","ripr","verp","eitp","ripp","epri","ript"],"rp":["pri","pier","pite","prie","ipr","ipre","prei","ptie","peit","pir","prit","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",109],"trw":["papier",621],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["ripred",581],"trw":["preis",373],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spitze",616],"trw":["passiert",1606],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",156924],"trw":["im",27050],"lp":[],"rp":["mi","im","hm","imm","ihm","inm","min","ph","him","himm","phi","hmi","nim","nimm","imn","mni","imni","mh","pin","nmi"]},"177":{"input":[1,5,6,8],"tlp":["ami",10941],"trp":["inma",7220],"tlw":["ahm",221],"trw":["nahm",4064],"lp":["ami","ahm","zim","zimm","aph","aphi"],"rp":["inma","nahm","hma","mia","mah","ham","ima","mani","pha","hnap","iam","pani","hamm","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1838],"trp":["mis",4451],"tlw":["sims",60],"trw":["miss",415],"lp":["sim","sph","spin","smi"],"rp":["mis","miss","mk","mnis","imms","imk","mik","jim","jimm","ims","mij","mmis","nspi","hms","issm","mmk"]},"179":{"input":[1,2,5,6,8],"tlw":["asami",402],"trw":["kam",6230],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["einm",7220],"trp":["mei",39849],"tlw":["einem",21852],"trw":["meine",11395],"lp":["einm","eim","ehm","ehme","emei","emi"],"rp":["mei","mein","inem","imme","meh","hme","iem","nehm","niem","hmen","heim","mie","hem","mien"]},"181":{"input":[1,3,5,6,8],"tlw":["annehmen",189],"trw":["nahmen",491],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seinem",7860],"trw":["meines",844],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["damien",281],"trw":["niemand",3087],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12361],"trp":["mit",82241],"tlw":["tim",137],"trw":["mit",65945],"lp":["tim","timm","thm","thim"],"rp":["mit","mitt","immt","htm","nmit","hmit","hmt","ptim","mith","mitn","mitb","ntim","htip","itm","hitm","htp"]},"185":{"input":[1,4,5,6,8],"tlw":["tamani",796],"trw":["mattia",102],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["stimmt",967],"trw":["mich",27002],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["wachmann",161],"trw":["macht",2965],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["beim",2845],"trw":["mir",28421],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["zimmer",2340],"trw":["prinz",511],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["stimme",5685],"trw":["menschen",4046],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["damit",7217],"trw":["machte",4587],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",16041],"lp":[],"rp":["op","po","opp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",54],"trp":["opa",519],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",569],"trp":["pos",794],"lp":["spo","sop"],"rp":["pos","osp","pso","ops"]},"195":{"input":[1,2,7,8],"lp":[],"rp":[]},"196":{"input":[3,7,8],"tlp":["eop",243],"trp":["oppe",220],"lp":["eop","epo"],"rp":["oppe","-p","ope"]},"197":{"input":[1,3,7,8],"tlp":["eopa",185],"lp":["eopa","xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",158],"trp":["odsp",102],"lp":["dop","dopp"],"rp":["odsp","pose"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1390],"trp":["pot",525],"lp":["top","topp","tpo"],"rp":["pot","pott","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["tpfo",466],"trp":["opf",13450],"tlw":["topf",130],"lp":["tpfo","topf","apto"],"rp":["opf","pfo","pfot","opft","pag","pagg"]},"202":{"input":[2,4,7,8],"tlp":["stop",653],"trp":["post",447],"tlw":["spott",92],"trw":["post",110],"lp":["stop","spot","tpos"],"rp":["post","poc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",949],"trp":["pro",5714],"tlw":["reporter",63],"trw":["potter",173],"lp":["rop","gep","trop","gepr","g'","repo","epor","geop","tpro"],"rp":["pro","orp","orpe","por","port","-top","prot","prop","prog","pero","perg"]},"205":{"input":[1,3,4,7,8],"tlw":["tropfte",104],"trw":["pfote",449],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["gepresst",119],"trw":["perdor",186],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["stopfte",111],"trw":["professor",480],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",81208],"trw":["um",30478],"lp":[],"rp":["um","mu","om","mo","omm","pu","up","mon","mom","umm","mun","nom","nomm","upp","pun","ump","unm","omp","nmo","unmo"]},"209":{"input":[1,5,7,8],"tlp":["aum",11931],"trp":["mau",2979],"trw":["mona",273],"lp":["aum","aup","amo","amon","amu","apu","ammo","aom","anmu"],"rp":["mau","pau","mona","oma","uma","omma","manu","naom","oman","pua","mano"]},"210":{"input":[2,5,7,8],"tlp":["spu",5447],"trp":["mus",23962],"trw":["muss",5445],"lp":["spu","som","sum","somm","summ","sup","smu","supp"],"rp":["mus","muss","ums","usp","mons","omms","mso","umso","mos","usm","moos","ussp"]},"211":{"input":[1,2,5,7,8],"tlw":["amos",143],"trw":["maus",230],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",2575],"trp":["omme",15487],"trw":["neuem",121],"lp":["enom","emu","empo","emo","emon","epu","eum"],"rp":["omme","ome","omen","mome","ume","umme","umen","uppe","umpe","omy","uem","mone","pony"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dumm",400],"trw":["mussen",4744],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",348],"trw":["pause",441],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",1365],"trp":["mut",9353],"tlw":["tom",616],"trw":["mut",548],"lp":["tum","tom","tumm","ttom"],"rp":["mut","mutt","mog","upt","ommt","mg","umg","omb","ummt","mung","nmog","mot","umb","umt","put","mott"]},"217":{"input":[1,4,5,7,8],"tlw":["baum",788],"trw":["mag",837],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stumm",329],"trw":["musst",1824],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["anspannung",163],"trw":["magnus",226],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genommen",1020],"trw":["mutter",5624],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["raum",1894],"trw":["magen",753],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurte",2360],"trw":["musste",7028],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["warum",5314],"trw":["umstanden",254],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",9042],"lp":[],"rp":["pl","plo","lip","lipp","pol","poli","lop","lp","ilip","olp","pil","pli","pio","pilo","ipl","ipli","pill","opi","poll","ppl"]},"225":{"input":[1,6,7,8],"tlp":["zop",139],"trp":["pla",4483],"tlw":["apollo",54],"trw":["opal",202],"lp":["zop","zipl","apol","appl"],"rp":["pla","pal","lap","lapp","pala","opal","pliz","pilz","pila","ppla"]},"226":{"input":[2,6,7,8],"tlp":["spio",245],"trp":["kop",10195],"trw":["klops",60],"lp":["spio","spl","spli"],"rp":["kop","klop","posi","klip","kpl","ispl","plos","lops","kopi"]},"227":{"input":[1,2,6,7,8],"trw":["klaps",56],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",361],"trp":["piel",3820],"trw":["lippe",146],"lp":["elp","epl"],"rp":["piel","pel","lpe","olpe","ppel","leop","ple","lep","lepp","-pi","-pie","l'","ll'","oll'","pell","'el","lpel","opie"]},"229":{"input":[1,3,6,7,8],"trw":["pelz",894],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spiel",618],"trw":["klippe",159],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["speisesaal",104],"trw":["klappe",167],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tolp",465],"trp":["plot",3683],"trw":["pilot",82],"lp":["tolp","gip","tpl"],"rp":["plot","pito","pig","ppig","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["zopf",91],"trw":["platz",1840],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",180],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spalt",238],"trw":["kopf",9064],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["prior",72],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["rappelte",154],"trw":["pfeil",312],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spielte",526],"trw":["korper",2392],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["distelpfote",300],"trw":["kapitel",832],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",4691],"trw":["philip",527],"lp":[],"rp":["ml","mli","mil","lm","lim","muh","imo","limm","mili","imon","hlim","minu","oph","umi","umin","hop","hmu","lum","llm","phil"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["zum",13031],"trw":["mal",9722],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",1611],"trw":["komm",1435],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",287],"trw":["kaum",3695],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["himmel",2108],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["einmal",7220],"trw":["plane",315],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spielen",619],"trw":["kommen",3154],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zusammen",3969],"trw":["niemals",1641],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["vom",5596],"trw":["html",387],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",198],"trw":["umhang",262],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schlimm",464],"trw":["kommt",2302],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["allmahlich",712],"trw":["plotzlich",3426],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["gemeint",376],"trw":["herum",2872],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1680],"trw":["uberhaupt",2569],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekommen",2443],"trw":["mochte",2710],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemacht",2597],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",9644],"tlw":["a",672],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",161786],"tlw":["s",320],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",267481],"tlw":["was",33174],"lp":["as","wa","sa","ass","was","wass","ssa","sw","asa","assa","saa","aw","swa","awa","sas","ssas","asw","saw","sawa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",14304],"tlw":["e",8272],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",6426],"lp":["ea","ex","ae","xa","ax","xe","exe","exa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603509],"tlw":["es",81182],"lp":["de","es","se","ed","sse","ese","ede","des","ess","esse","ses","eses","ds","dess","see","edes","sd","dee","dd","sess"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270688],"tlw":["das",100677],"lp":["da","we","das","dass","ew","ad","asse","ewe","wes","ade","wese","ewes","esa","eda","dw","ewa","ase","essa","dwa","wed"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",129965],"tlw":["t",4870],"lp":["tt","ttt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",159129],"tlw":["tat",2050],"lp":["at","att","ta","fa","ft","ff","af","tat","aft","aff","tf","fft","tatt","tta","afft","fta","ffa","ata","ttf","taa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",329949],"tlw":["st",194],"lp":["st","sc","ts","sst","tsc","ssc","tst","tts","tc","sts","ttst","ssts","stst","ct","cc","stc","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",129940],"tlw":["fast",4605],"lp":["ac","sta","tw","ast","twa","twas","asc","fas","fac","wac","sac","tsa","ca","fast","ats","asst","stat","fs","tas","atsa"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",1062516],"tlw":["er",139320],"lp":["er","te","re","rt","et","tte","ter","rte","tr","ere","ert","ete","tet","rr","erte","tete","rer","err","tter","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",236202],"tlw":["trat",2331],"lp":["ar","ra","atte","fe","fr","ef","are","tra","fra","era","art","rf","ate","ffe","fre","arte","fer","ara","rat","ater"],"rp":[]},"14":{"input":[2,3,4],"tlp":["der",234317],"tlw":["der",139944],"lp":["der","ste","rd","rs","ers","rde","est","ec","rst","dr","erst","eder","ser","erd","ster","rc","dere","erde","sste","rsc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["war",130034],"tlw":["war",76994],"lp":["war","wer","ware","rac","dar","etw","etwa","rw","werd","erw","dac","dara","dra","wart","star","rad","stra","fes","rwa","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",160994],"trw":["n",114],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",368610],"trp":["na",94964],"tlw":["an",48407],"trw":["na",1852],"lp":["an","ann","ana","anna","aq","qq","aqq"],"rp":["na","nan","nna","nann","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",476],"trp":["ns",79641],"trw":["j",60],"lp":["sn"],"rp":["ns","nns","nj"]},"19":{"input":[1,2,5],"tlp":["wan",16048],"trp":["ja",26608],"tlw":["wann",1025],"trw":["ja",12041],"lp":["wan","ans","san","anns","wann","ssan","anw","ansa","sna","aj"],"rp":["ja","nw","nas","nsa","jan","nwa","nass","nja","jann","jans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1123066],"trp":["ne",372242],"tlw":["en",15361],"trw":["nennen",573],"lp":["en","enn","ene","enen","enne","ey","een","eyn"],"rp":["ne","nen","nne","nnen","yn","ny","nee","nenn","nny","ye","ney","yen"]},"21":{"input":[1,3,5],"tlp":["ena",8169],"trp":["ya",3585],"trw":["nyx",188],"lp":["ena","anne","ane","ay","ean","anen","anny","enan","any","enna","xan","eq","aya","xen","exen"],"rp":["ya","yan","nea","yx","nyx"]},"22":{"input":[2,3,5],"tlp":["den",182183],"trp":["nd",429334],"tlw":["den",92856],"trw":["jeden",2171],"lp":["den","sen","end","ssen","ens","esen","ende","denn","eden","dene"],"rp":["nd","nde","je","nden","nes","jed","nse","jede","ndes","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",91655],"trp":["ndw",5333],"tlw":["wenn",26017],"trw":["nase",1633],"lp":["and","ande","wen","dan","wenn","dann","wand","endw","edan","aden","sand","wend","dana","anda"],"rp":["ndw","nand","nwe","nda","nase","ndwa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",17983],"trp":["nt",123340],"tlw":["b",133],"lp":["bt","tb","tn","bb","bn","ttn"],"rp":["nt","nnt","nb","ntt","ntn","nntn","ntb","nnb"]},"25":{"input":[1,4,5],"tlp":["ab",110601],"trp":["nf",19807],"tlw":["ab",6161],"lp":["ab","ba","tan","ant","annt","fan","fn","anf","ffn","abt","ban","anft"],"rp":["nf","nfa","nat","nft","ntf","nab","nba","nta"]},"26":{"input":[2,4,5],"tlp":["bs",13819],"trp":["nst",18313],"lp":["bs","bst","bsc","sb","tj","stb","bj","bc","bstb"],"rp":["nst","nsc","nc","nts","ntsc","nnst","ntst","nnsc","nstb","nsb","nnts"]},"27":{"input":[1,2,4,5],"tlp":["stan",16933],"trp":["nac",40467],"tlw":["sanft",880],"lp":["stan","antw","bw","anc","abs","bac","anac","ansc","sanf","anst","absc","abw","stab","sab","abst"],"rp":["nac","ntw","nfac","jac","nsta"]},"28":{"input":[3,4,5],"tlp":["be",315569],"trp":["nte",72977],"tlw":["bett",2066],"trw":["neben",3915],"lp":["be","ten","ber","ren","ben","eb","rn","ern","br","ebe","ent","eben","rb","eren","tten","tern"],"rp":["nte","ner","nnte","nter"]},"29":{"input":[1,3,4,5],"tlp":["abe",79213],"tlw":["aber",39696],"lp":["abe","aber","fen","ran","aren","aben","bra","ffen","bar","arb","arbe","bef","aten","aran","fern","fne","enf","ffne","ary","arry"],"rp":[]},"30":{"input":[2,3,4,5],"tlp":["rden",23780],"trp":["nder",38861],"tlw":["ersten",3262],"trw":["jeder",2456],"lp":["rden","bes","sten","rend","ensc","best","dern","ents","bed","enst","bess","bend","enc"],"rp":["nder","jet","nser","nste","ndet","nce","ndt"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",18283],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",157],"trw":["i",123],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",20813],"trp":["ia",9362],"tlw":["z",118],"lp":["zi","za","ai","az","zz","azi","aza","zzi","aia","zza","azz"],"rp":["ia","iz","izi","izz","izzi","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",316897],"trp":["is",130177],"trw":["is",168],"lp":["si","ssi","sk","sik","sis","ski"],"rp":["is","iss","ki","ik","ks","kk","isi","isk","kis","isik","kiss","issi","iski","ksi"]},"35":{"input":[1,2,6],"tlp":["wi",167420],"trp":["ka",56299],"trw":["kai",169],"lp":["wi","zw","wis","zwi","wiss","zwis","ak","zwa","assi","sz","zis","asi","zs","ais"],"rp":["ka","ksa","kw","kz","isa","kas"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",652619],"trp":["ie",651532],"tlw":["ei",176],"lp":["ei","eie","eei","eiei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",61436],"trp":["ize",965],"lp":["ze","zei","zie","ez","eze","ezei","xi","eza","exi","ezi","eiz","axi","ezie","zzie","azie","eize"],"rp":["ize","izie","izei","ix"]},"38":{"input":[2,3,6],"tlp":["di",276515],"trp":["ke",89577],"tlw":["die",198925],"trw":["idee",1017],"lp":["di","die","sie","sei","dies","eis","eid","ek","esi","dei","eide"],"rp":["ke","ies","kei","id","iese","ied","iede","ide","ise"]},"39":{"input":[1,2,3,6],"tlp":["wie",72674],"tlw":["wie",48051],"trw":["kase",144],"lp":["wie","wei","wied","zwe","zwei","weis","wid","wide","ewi","daz","eka","wies","zd","zde","dwi","ewis","ake","dwie","zes","ewei"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",64747],"trp":["it",174613],"tlw":["v",67],"lp":["ti","vi","tti","tit","tv","tiv","viv","vivi","vt","vit"],"rp":["it","itt","iti","iv","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["tz",57975],"trp":["if",14792],"tlw":["fitz",198],"lp":["tz","zt","tzt","fi","va","atz","av","vat","fz","ati","fti","afti","fzt","tia","zit"],"rp":["if","itz","iff","ita","ift"]},"42":{"input":[2,4,6],"tlp":["sic",113216],"trp":["ic",528821],"tlw":["vick",133],"trw":["ist",43418],"lp":["sic","ck","sti","ckt","tis","tisc","sit","cks","ckk","ci"],"rp":["ic","ist","kt","ick","isc","ickt","its","kti","issc","isti"]},"43":{"input":[1,2,4,6],"tlp":["wisc",7325],"trp":["kat",4899],"tlw":["satz",590],"trw":["katsa",541],"lp":["wisc","ack","wic","sitz","ackt","akt","satz","tak","wit","stia","asti","akti","cksa","twi","sack","fis","fisc"],"rp":["kat","katz","kaf"]},"44":{"input":[3,4,6],"tlp":["ri",94871],"trp":["ir",113010],"tlw":["vier",1685],"lp":["ri","ve","ver","eit","rei","eite","vie","rie","eri","tie","tei","reit","rit","tri"],"rp":["ir","ier","ite","itte","iter","iert"]},"45":{"input":[1,3,4,6],"tlp":["rz",29091],"trp":["ief",12679],"tlw":["zeit",6744],"lp":["rz","etz","etzt","erz","zte","tze","tzte","zeit","rze","eif","vate","tief","rif","arz","rief","riff","fie","eife"],"rp":["ief","ife"]},"46":{"input":[2,3,4,6],"tlp":["rk",34305],"trp":["kte",27132],"tlw":["dir",10511],"lp":["rk","eic","vers","erk","cke","ckte","eck","dic","ric","dir","seit","esic","eckt","ris","reic"],"rp":["kte","kr","ird","irk","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["wir",29431],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",659187],"trw":["in",95638],"lp":[],"rp":["in","ni","ih","hi","hn","ihn","hin","inn","ini","nh","hni","hh","nni","nin","nih","inh","inni","hnh","inin","hinn"]},"49":{"input":[1,5,6],"tlp":["ah",76442],"trp":["ha",235199],"tlw":["ah",759],"trw":["nah",453],"lp":["ah","anz","zah","ahn","ani","ahi"],"rp":["ha","nz","han","nah","inz","ina","nzi","inzi","haa","hina","inan","ian","hna","hz"]},"50":{"input":[2,5,6],"tlp":["sin",16409],"trp":["nk",38114],"tlw":["sinn",805],"trw":["ins",5955],"lp":["sin","sh","shi","sinn"],"rp":["nk","ins","hs","kin","kn","nis","ink","nsi","kni","hk","ish","nks","nik","kh","niss","hns"]},"51":{"input":[1,2,5,6],"tlp":["wah",16237],"trp":["hw",26859],"tlw":["sah",11589],"trw":["kann",10392],"lp":["wah","sah","ank","win","sha","wanz"],"rp":["hw","kan","kann","has","hwa","jah","hwi","hwan","hwin","insa","inw","nzw","inzw","nzwi"]},"52":{"input":[3,5,6],"tlp":["ein",403963],"trp":["ine",235416],"tlw":["ein",66637],"trw":["ihnen",10635],"lp":["ein","eine","eh","ehe","ehen","eni"],"rp":["ine","he","hen","inen","hie","hne","hei","nie","ien","hnen","ihne","inne","nei","nein"]},"53":{"input":[1,3,5,6],"tlp":["zen",18592],"trp":["nze",12641],"tlw":["zehn",1114],"trw":["nahe",2024],"lp":["zen","ahe","anze","eha","einz","eina","zeh","zieh","zehn","ahne","ahen","enz","enze","anie"],"rp":["nze","nahe","nzen","inze","hze","hzei"]},"54":{"input":[2,3,5,6],"tlp":["sein",76189],"trp":["ind",34029],"tlw":["sein",25372],"trw":["keine",11161],"lp":["sein","seh","sehe","sind","dein","enk","din","denk","eseh","eins","enke"],"rp":["ind","ken","kein","nke","inde","ines","nken","iden","kenn"]},"55":{"input":[1,2,3,5,6],"tlw":["wissen",4749],"trw":["hand",7972],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",40682],"trp":["ht",252865],"tlw":["bin",8228],"lp":["bi","bin","th","bit","bitt","tin","thi"],"rp":["ht","int","ib","hint","hti","ibt","hnt","nit","nti","nv","htb","hnit","nitt"]},"57":{"input":[1,4,5,6],"tlp":["fin",11249],"trp":["hat",98724],"tlw":["zantini",146],"trw":["hat",19760],"lp":["fin","fah","tha","fh","ahnt","tian"],"rp":["hat","hatt","hab","haf","inf","infa","haft","habt","haff","hif","hiff","htba","nzt","hatz"]},"58":{"input":[2,4,5,6],"tlp":["ch",1037218],"trp":["ich",501099],"tlw":["sich",92744],"trw":["ich",126388],"lp":["ch","cht","sch","sich","chi","bis","schi","chts","chn","chs","schn","chti"],"rp":["ich","icht","nic","nich","isch","hts","nsch","hst"]},"59":{"input":[1,2,4,5,6],"tlw":["ach",1398],"trw":["nach",23041],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bei",38768],"trp":["hr",166493],"tlw":["einer",16300],"trw":["ihr",34974],"lp":["bei","ehr","rin","rh","erh","eht","teh"],"rp":["hr","ihr","hre","hte","her","ihre","iner","hren","ieb","hier","inte","hrer","hten"]},"61":{"input":[1,3,4,5,6],"tlw":["arbeit",1479],"trw":["hatte",62837],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dich",11521],"trw":["nickte",3237],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["wahrend",7160],"trw":["jetzt",12900],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2552],"trw":["o",417],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",544],"trp":["oa",1055],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",96770],"trp":["os",26972],"tlw":["so",35536],"lp":["so","sso","sos"],"rp":["os","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",62062],"trp":["ow",3659],"tlw":["wo",7187],"lp":["wo","sow","woo","sowo","aos","swo","wow","aso","soa","woa","awo","sao"],"rp":["ow","osa","owa","owo","osw","osas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",4452],"trp":["oe",1221],"trw":["-",5881],"lp":["eo","e-"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",546],"trp":["ox",233],"lp":["a-"],"rp":["ox","-a","oxa","oxe"]},"70":{"input":[2,3,7],"tlp":["do",34031],"trp":["od",27025],"tlw":["dose",88],"lp":["do","eso","edo","sod","esso","deo","ddo","s-","s-o","soe","dos"],"rp":["od","ode","ose","osse","ood","-s","odes","ods","odo"]},"71":{"input":[1,2,3,7],"tlp":["ewo",5402],"trp":["oda",1427],"tlw":["sodass",1096],"lp":["ewo","dwo","soda","wood","sowe","ado","wod"],"rp":["oda","odas","owe","-w","-we","oswe","owes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",75665],"trp":["ot",33072],"tlw":["tot",1524],"trw":["otto",56],"lp":["gt","to","go","tot","tg","got","gott","gg","tto","gto","ttg"],"rp":["ot","og","ott","oot","oto","otto","ogo","ogg","ottt"]},"73":{"input":[1,4,7],"tlp":["ag",98104],"trp":["of",22112],"tlw":["tag",3421],"trw":["oft",1577],"lp":["ag","ga","agt","fo","tag","fg","fot","ago","fga","ttag","foto","tof","foa","gf"],"rp":["of","off","oga","ofo","oft","offt"]},"74":{"input":[2,4,7],"tlp":["gs",15827],"trp":["oc",76156],"tlw":["sto",607],"lp":["gs","sto","gst","sg","sog","co","toc","stoc","tos","gc","sgc","gos","goss"],"rp":["oc","ost","ots","osc","oots","otsc","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",41908],"tlw":["sagt",3037],"lp":["sag","sagt","two","sof","soga","sofo","gsa","wag","woc","gas","ags","gast","gw","agst","wagt","stof","aco","asto","stag","sags"],"rp":[]},"76":{"input":[3,4,7],"tlp":["ge",417472],"trp":["or",139857],"tlw":["gro",12824],"trw":["ort",1465],"lp":["ge","eg","ro","gte","gr","ger","rg","ege","rge","geg","gro","erg","gege","egt","tro"],"rp":["or","ort","orte","ote","org"]},"77":{"input":[1,3,4,7],"tlp":["agte",36381],"trp":["offe",6976],"tlw":["fragte",8751],"lp":["agte","age","rag","gef","frag","ragt","gar","for","gera","rage","gefa","ega","fort","gra","fge","tage","fote","trag"],"rp":["offe","ogar"]},"78":{"input":[2,3,4,7],"tlp":["ges",52897],"trp":["oder",15264],"tlw":["dort",4958],"trw":["oder",15082],"lp":["ges","doc","gesc","gest","gese","ged","dor","roc","dort","sor","sorg","sge","ros","stor","tod","rges"],"rp":["oder","ord","orde","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["sagte",25887],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",390483],"trw":["nun",5974],"lp":[],"rp":["un","on","nu","no","onn","nun","unn","ou","nno","non","nnu","nnun","ono","onno","uo","unno","uu","uun","unu","unun"]},"81":{"input":[1,5,7],"tlp":["au",303972],"trp":["nau",10174],"tlw":["au",5558],"lp":["au","aun","qu","qua","anu","annu","ano","quo"],"rp":["nau","ona","ua","una","oan","unan","onna","unna","uan","unau","oann","oana"]},"82":{"input":[2,5,7],"tlp":["su",18391],"trp":["us",129755],"tlw":["su",647],"trw":["uns",13571],"lp":["su","son","sons","sonn","sun","sus","ssu"],"rp":["us","uss","uns","ju","jun","ons","jo","nso","uso","jon","jus","ous","nos"]},"83":{"input":[1,2,5,7],"tlp":["aus",69449],"trp":["usa",6060],"tlw":["aus",34379],"trw":["jason",129],"lp":["aus","wu","wus","wuss","wun","auss","wuns","auso","sau","won","saus","assu","ausw","asu"],"rp":["usa","naus","ussa","unw","uw","usw"]},"84":{"input":[3,5,7],"tlp":["eu",55225],"trp":["ue",28283],"trw":["neue",1471],"lp":["eu","eue","enu","eun","eno","euen","enno"],"rp":["ue","onne","uen","neu","one","une","neue","onen","unen","n-","unne","oy","yo"]},"85":{"input":[1,3,5,7],"tlp":["aue",12361],"trp":["ux",957],"lp":["aue","enau","auen","aune","que","equ","eque","an-","ean-","eau","equa","eona"],"rp":["ux","uxa","onea","na-","nna-","naue","oya","uya"]},"86":{"input":[2,3,5,7],"tlp":["du",75774],"trp":["und",249565],"tlw":["du",44764],"trw":["und",220198],"lp":["du","dun","deu","eund","sond","esu","seu","edeu","don"],"rp":["und","unde","ud","ond","ude","use","usse","unse","onde","oden","jedo"]},"87":{"input":[1,2,3,5,7],"tlw":["sonea",505],"trw":["nasuada",322],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",42893],"trp":["ng",148258],"tlw":["gut",8191],"trw":["ob",5684],"lp":["tu","gu","tun","bo","gut","bu","tung","gn","gun"],"rp":["ng","ut","ub","ung","ug","ob","onnt","unt","utt","nung","ngt"]},"89":{"input":[1,4,5,7],"tlp":["auf",98105],"trp":["uf",112428],"tlw":["auf",72050],"trw":["offnung",187],"lp":["auf","fu","ang","gan","aug","aut","aub","gab","tau","fun","gang","bau","aufg","atu"],"rp":["uf","uft","ufg","offn","unf","natu"]},"90":{"input":[2,4,5,7],"tlp":["stu",13806],"trp":["uc",97659],"tlw":["sonst",2451],"trw":["jung",472],"lp":["stu","suc","stun","buc","tuc","stuc"],"rp":["uc","noc","usst","ust","ngs","jung","ngst","usc","usg","onst","unsc","uts","ubs","utsc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",3094],"trw":["jacob",437],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",136399],"trp":["ur",167807],"tlw":["gegen",5275],"trw":["nur",23303],"lp":["gen","ru","egen","geb","eut","rgen","run","tur"],"rp":["ur","nge","ube","uber","ute","ngen","nur","uge","unte","ugen","unge","uer"]},"93":{"input":[1,3,4,5,7],"tlw":["fur",24293],"trw":["offnete",1687],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["boden",4242],"trw":["junge",3404],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["wurde",25182],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",151710],"trw":["ol",121],"lp":[],"rp":["li","ll","ol","il","oll","lo","ill","io","lli","ili","llo","illi","olli","oli","lio","lil","ilo","oi","lili","olo"]},"97":{"input":[1,6,7],"tlp":["al",191580],"trp":["la",130568],"tlw":["all",2129],"trw":["lilia",446],"lp":["al","all","zo","zl","zli","ali","alli","ala","allz"],"rp":["la","lz","olz","lia","ola","liz","ila","oz","oliz","lla","llz"]},"98":{"input":[2,6,7],"tlp":["sol",18755],"trp":["ko",75943],"tlw":["soll",3129],"trw":["los",2861],"lp":["sol","soll","sl","sil"],"rp":["ko","ls","kl","los","kli","lls","lso","loss","lk","ok","olk","ills","klo","llk","lko","llko"]},"99":{"input":[1,2,6,7],"tlp":["als",59443],"trp":["las",17376],"tlw":["als",47093],"trw":["lass",1226],"lp":["als","wol","woll","wil","will","also","wal","alls","wolk","sal","sola","sowi","alas"],"rp":["las","lass","kla","kal","oka","owi","low"]},"100":{"input":[3,6,7],"tlp":["el",169112],"trp":["le",200448],"tlw":["eile",168],"trw":["lie",7334],"lp":["el","ell","eil","elle","ele","eile","eli"],"rp":["le","lle","lei","lie","iel","llei","olle","iell","iele","ile","ille","ilie","lee"]},"101":{"input":[1,3,6,7],"tlp":["alle",36348],"trp":["lze",595],"tlw":["alle",9095],"trw":["lizzie",239],"lp":["alle","ale","ela","zel","elz","ezo","ziel","zoe","ael","zell","ella","alee","eal"],"rp":["lze","lize","iela","oze","lzei","-al","-ali"]},"102":{"input":[2,3,6,7],"tlp":["sel",17287],"trp":["ld",21588],"tlw":["seele",607],"trw":["leise",2478],"lp":["sel","dl","eko","dli","del","eld","els"],"rp":["ld","kle","les","klei","lles","kel","lde","ild","leid","leis","old","ilde","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["alles",9526],"trw":["lasse",483],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",111639],"trp":["lt",103510],"tlw":["vollig",1315],"trw":["ig",1168],"lp":["vo","gl","gi","tig","tl","tli","gli","vol","voll"],"rp":["lt","ig","llt","ollt","igt","lg","olg","lig","ogl","lot","ogli"]},"105":{"input":[1,4,6,7],"tlp":["alt",26083],"trp":["lag",11095],"tlw":["zog",4180],"trw":["lag",3548],"lp":["alt","fl","fal","fall","gla","zog","zig","fol","folg","avo","tzl","fla","tzli","agi"],"rp":["lag","lf","lat","otz","latt","lotz"]},"106":{"input":[2,4,6,7],"tlp":["tlic",10135],"trp":["lic",83791],"tlw":["still",966],"trw":["lost",108],"lp":["tlic","cl","glic","ckl","gk","sig","solc","ckli","stil"],"rp":["lic","lick","klic","lc","ock","lst","olc","llst","igk","lsc","igs"]},"107":{"input":[1,2,4,6,7],"tlw":["willst",2074],"trw":["lasst",1485],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",42281],"trp":["lte",70997],"tlw":["vor",22128],"trw":["legte",3034],"lp":["vor","elt","rl","erl","gel","viel","tel","elte","eig","rli","tell","eige","verl"],"rp":["lte","ige","llte","ler","ieg","leg","irg"]},"109":{"input":[1,3,4,6,7],"tlw":["fiel",2565],"trw":["letzte",1489],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["sollte",5278],"trw":["krieger",1798],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["wollte",8491],"trw":["klar",2511],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hl",69806],"trw":["oh",1758],"lp":[],"rp":["hl","ho","lu","oh","uh","hu","ul","hon","ohn","hli","ln","uhl","ohl","hul","lin","nl","hol","hun","hlu","ion"]},"113":{"input":[1,5,6,7],"tlp":["zu",171648],"trp":["lan",36595],"tlw":["zu",106187],"trw":["hinzu",1319],"lp":["zu","ahl","zahl","azu","zun","zau","aul","anzu"],"rp":["lan","lau","hau","hal","hla","nzu","inau","hall","inzu","unz","hlan","iau"]},"114":{"input":[2,5,6,7],"tlp":["soh",2201],"trp":["kon",39622],"tlw":["sohn",1591],"trw":["john",638],"lp":["soh","sohn"],"rp":["kon","konn","ku","unk","lus","hlos","kun","koni","luss","uk","nkl","unkl","kus","klin","hos","link","kuss","luk"]},"115":{"input":[1,2,5,6,7],"tlw":["wohl",3262],"trw":["haus",3123],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",9970],"trp":["len",34944],"trw":["ohne",6453],"lp":["eln","eho","elen"],"rp":["len","llen","lein","hel","hle","ohne","hiel","hlie","leu","nel","uhe","hlen","heu","ly","hnel","nell","ohe"]},"117":{"input":[1,3,5,6,7],"tlw":["allein",3101],"trw":["luxa",831],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sollen",1705],"trw":["konnen",8192],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dazu",3106],"trw":["lassen",4737],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["von",54263],"trp":["ing",35552],"tlw":["von",48992],"trw":["hob",2725],"lp":["von","bl","bli","gin","ging","bil","blu"],"rp":["ing","lb","nig","htig","hlt","hut","hob","lug","ntl","hig","onig","lut","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["ganz",8095],"trw":["luft",3854],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["schon",15769],"trw":["noch",31550],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["auch",23263],"trw":["obwohl",3157],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["gehen",3878],"trw":["leben",6005],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zur",7461],"trw":["lange",4757],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["doch",19379],"trw":["konnte",19700],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["zuruck",7484],"trw":["naturlich",3611],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",10101],"trw":["p",276],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9189],"trp":["pa",25493],"trw":["papa",249],"lp":["ap","app","apa","appa"],"rp":["pa","paa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",35230],"trp":["ps",471],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",6529],"trp":["pas",4544],"tlw":["spa",543],"trw":["pass",277],"lp":["spa","sap","wap","wapp","aps","asp"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",4107],"trp":["pe",21955],"lp":["ep","epp","eppe","e'"],"rp":["pe","ppe","pee","'e"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",1127],"trp":["px",233],"trw":["px",233],"lp":["appe","ape","epa","xp","exp","a'","eap"],"rp":["px"]},"134":{"input":[2,3,8],"tlp":["esp",4229],"trp":["'s",1830],"lp":["esp","spe","espe","sep","spee","s'","dsp","dspe","e's","dep","es'"],"rp":["'s","pes","peed"]},"135":{"input":[1,2,3,8],"tlp":["espa",426],"trw":["passe",61],"lp":["espa","dap"],"rp":[]},"136":{"input":[4,8],"tlp":["tp",1024],"trp":["pt",8640],"trw":["pt",821],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",1143],"trp":["pf",28238],"trw":["pat",81],"lp":["appt","tap","apf","tpf","attp","ttpf","fp","tapf","apt","tapp","fpa","apft","apta","ffp"],"rp":["pf","pat","pft","pfa","pta"]},"138":{"input":[2,4,8],"tlp":["tsp",820],"trp":["pts",393],"lp":["tsp","stp"],"rp":["pts","ptst","pst"]},"139":{"input":[1,2,4,8],"tlp":["spat",3485],"trp":["pac",1868],"tlw":["spat",894],"trw":["passt",223],"lp":["spat","stap","cap","tspa","fpas","capt","fsp"],"rp":["pac","pfs","pfsc","ptsa","past"]},"140":{"input":[3,4,8],"tlp":["rp",4472],"trp":["pr",23900],"tlw":["treppe",1030],"trw":["peter",275],"lp":["rp","rpe","rper","rep","trep","repp","erp","ept","t'","r'"],"rp":["pr","per","pre","pte","ppte","pet","pert","peet","pete","ptet"]},"141":{"input":[1,3,4,8],"tlp":["rpf",493],"trp":["pra",7549],"tlw":["tapfer",173],"trw":["paar",4977],"lp":["rpf","erpf","apfe","rpa","erpa","apr","rap","tape","ar'","ra'"],"rp":["pra","pfe","paar","pfte","pate","pfer","par","patr","perf","part"]},"142":{"input":[2,3,4,8],"tlp":["spr",13156],"trp":["prec",3135],"tlw":["speer",150],"trw":["presste",522],"lp":["spr","spre","rsp","espr","ersp","rspr","t's","sper","sept","tspr","resp","r's","ce'"],"rp":["prec","pers","pres","pred","perc","perd","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["spater",2320],"trw":["pferd",730],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",75202],"lp":[],"rp":["mm","nm","mp","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",75203],"trp":["ma",116805],"tlw":["am",13314],"trw":["man",13524],"lp":["am","amm","amp","ama","aman","anm"],"rp":["ma","man","mann","nma","nam","pan","nap","napp","pann","mma","mman","mam","mama","mna"]},"146":{"input":[2,5,8],"tlp":["sm",2006],"trp":["ms",3988],"tlw":["sms",84],"lp":["sm","ssm","sms"],"rp":["ms","mms","nsp","mj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",18083],"trp":["nsam",1490],"tlw":["sam",1544],"trw":["japan",53],"lp":["sam","samm","span","sma","asam","ams","ansp","sams","wam","wamm","ssam"],"rp":["nsam","mas","jam","mass","maj","mw","nspa","mja","mjan"]},"148":{"input":[3,5,8],"tlp":["em",142396],"trp":["me",172798],"tlw":["em",427],"trw":["'ne",199],"lp":["em","eme","emp","enp","enem","enpe"],"rp":["me","mme","men","nem","mmen","pen","ppen","mpe","my","mee","yp","npe","ym","mmy"]},"149":{"input":[1,3,5,8],"tlp":["ema",15399],"trp":["name",3654],"tlw":["amy",168],"trw":["namen",2293],"lp":["ema","ame","eman","amme","amen","ampe","aym","ampy","xem","eam","amy","enma","anme","emna","xeme"],"rp":["name","max","mae","may","maya"]},"150":{"input":[2,3,5,8],"tlp":["dem",54438],"trp":["mens",6613],"tlw":["dem",45085],"trw":["jedem",1143],"lp":["dem","sem","esem","emd","edem","emde","esm","djem","dm"],"rp":["mens","jem","md","mes","ndem","mde","mess","mden","mend","med","mmes"]},"151":{"input":[1,2,3,5,8],"tlw":["wem",425],"trw":["jemand",3073],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",2485],"trp":["mt",14056],"lp":["tm","bm"],"rp":["mt","mmt","mb","ptm","mpt"]},"153":{"input":[1,4,5,8],"tlp":["ampf",3371],"trp":["mpf",5070],"tlw":["amt",94],"trw":["matt",200],"lp":["ampf","tam","amt","fam","ammt","tamm","atm","fm","tama","tma","tman"],"rp":["mpf","mat","mpft","npf","matt","mant","mpfa","pfan","ptma"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",109],"trp":["mst",1918],"lp":["stm","bstm"],"rp":["mst","mmst","ntsp","msc","mmsc","mc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stamm",309],"trw":["mats",101],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",24866],"trp":["mer",37720],"tlw":["typ",417],"trw":["mr",1767],"lp":["rm","rem","rme","tem","erm","emer","bem","beme","rmen","teme"],"rp":["mer","mmer","mte","ment","mmte","mr","met","mete","mbe","mert"]},"157":{"input":[1,3,4,5,8],"tlw":["arm",2393],"trw":["manner",2823],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdem",1712],"trw":["mrs",981],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["warme",548],"trw":["mandred",237],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",11374],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2458],"trp":["papi",842],"trw":["pia",152],"lp":["api","aip","zip","zp","zap","zapp"],"rp":["papi","paz","pazi","pia","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",7019],"trp":["isp",965],"lp":["spi"],"rp":["isp","ispi","pis","kp","kip","kipp","ksp","kspi","ips"]},"163":{"input":[1,2,6,8],"tlp":["spaz",195],"trp":["kap",1913],"lp":["spaz","zsp","zspi","wisp","szip","szap"],"rp":["kap","kapi","kapp"]},"164":{"input":[3,6,8],"tlp":["eppi",167],"trp":["pie",5917],"lp":["eppi","eip"],"rp":["pie","ippe","pei","peie","ie'","ipe"]},"165":{"input":[1,3,6,8],"tlp":["apie",1000],"trp":["'z",210],"lp":["apie","zep","a'z","a'za","z'"],"rp":["'z","'za"]},"166":{"input":[2,3,6,8],"tlp":["spie",4741],"trp":["pek",382],"tlw":["spie",186],"lp":["spie","eisp","spek","spei","espi","skep","disp","sie'"],"rp":["pek","peis","kep","ispe","is'","ie's","idep","k'","k'e"]},"167":{"input":[1,2,3,6,8],"trw":["kappe",55],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",377],"trp":["pit",3051],"tlw":["tippt",50],"lp":["tip","tipp"],"rp":["pit","pti","ippt","itp","ipt","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",1458],"trp":["pitz",1593],"trw":["pfiff",129],"lp":["apit","zpf","tzp","zapf"],"rp":["pitz","pfi","pita","pati","ipf","ptai","pfif","pav","pavi","patz"]},"170":{"input":[2,4,6,8],"tlp":["spit",1593],"trp":["pist",286],"lp":["spit","cksp"],"rp":["pist","pisc","pic","ppic","ptis","ktp"]},"171":{"input":[1,2,4,6,8],"tlw":["spitz",113],"trw":["packt",105],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",838],"trp":["pri",3830],"tlw":["tippte",195],"lp":["rip","epti","ripr","verp","eitp","ripp","epri","ript"],"rp":["pri","pier","pite","prie","ipr","ipre","prei","ptie","peit","pir","prit","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",109],"trw":["papier",621],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["ripred",581],"trw":["preis",373],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spitze",616],"trw":["passiert",1606],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",156924],"trw":["im",27050],"lp":[],"rp":["mi","im","hm","imm","ihm","inm","min","ph","him","himm","phi","hmi","nim","nimm","imn","mni","imni","mh","pin","nmi"]},"177":{"input":[1,5,6,8],"tlp":["ami",10941],"trp":["inma",7220],"tlw":["ahm",221],"trw":["nahm",4064],"lp":["ami","ahm","zim","zimm","aph","aphi"],"rp":["inma","nahm","hma","mia","mah","ham","ima","mani","pha","hnap","iam","pani","hamm","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1838],"trp":["mis",4451],"tlw":["sims",60],"trw":["miss",415],"lp":["sim","sph","spin","smi"],"rp":["mis","miss","mk","mnis","imms","imk","mik","jim","jimm","ims","mij","mmis","nspi","hms","issm","mmk"]},"179":{"input":[1,2,5,6,8],"tlw":["asami",402],"trw":["kam",6230],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["einm",7220],"trp":["mei",39849],"tlw":["einem",21852],"trw":["meine",11395],"lp":["einm","eim","ehm","ehme","emei","emi"],"rp":["mei","mein","inem","imme","meh","hme","iem","nehm","niem","hmen","heim","mie","hem","mien"]},"181":{"input":[1,3,5,6,8],"tlw":["annehmen",189],"trw":["nahmen",491],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seinem",7860],"trw":["meines",844],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["damien",281],"trw":["niemand",3087],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12361],"trp":["mit",82241],"tlw":["tim",137],"trw":["mit",65945],"lp":["tim","timm","thm","thim"],"rp":["mit","mitt","immt","htm","nmit","hmit","hmt","ptim","mith","mitn","mitb","ntim","htip","itm","hitm","htp"]},"185":{"input":[1,4,5,6,8],"tlw":["tamani",796],"trw":["mattia",102],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["stimmt",967],"trw":["mich",27002],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["wachmann",161],"trw":["macht",2965],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["beim",2845],"trw":["mir",28421],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["zimmer",2340],"trw":["prinz",511],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["stimme",5685],"trw":["menschen",4046],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["damit",7217],"trw":["machte",4587],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",16041],"lp":[],"rp":["op","po","opp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",54],"trp":["opa",519],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",569],"trp":["pos",794],"lp":["spo","sop"],"rp":["pos","osp","pso","ops"]},"195":{"input":[1,2,7,8],"lp":[],"rp":[]},"196":{"input":[3,7,8],"tlp":["eop",243],"trp":["oppe",220],"lp":["eop","epo"],"rp":["oppe","-p","ope"]},"197":{"input":[1,3,7,8],"tlp":["eopa",185],"lp":["eopa","xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",158],"trp":["odsp",102],"lp":["dop","dopp"],"rp":["odsp","pose"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1390],"trp":["pot",525],"lp":["top","topp","tpo"],"rp":["pot","pott","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["tpfo",466],"trp":["opf",13450],"tlw":["topf",130],"lp":["tpfo","topf","apto"],"rp":["opf","pfo","pfot","opft","pag","pagg"]},"202":{"input":[2,4,7,8],"tlp":["stop",653],"trp":["post",447],"tlw":["spott",92],"trw":["post",110],"lp":["stop","spot","tpos"],"rp":["post","poc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",949],"trp":["pro",5714],"tlw":["reporter",63],"trw":["potter",173],"lp":["rop","gep","trop","gepr","g'","repo","epor","geop","tpro"],"rp":["pro","orp","orpe","por","port","-top","prot","prop","prog","pero","perg"]},"205":{"input":[1,3,4,7,8],"tlw":["tropfte",104],"trw":["pfote",449],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["gepresst",119],"trw":["perdor",186],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["stopfte",111],"trw":["professor",480],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",81208],"trw":["um",30478],"lp":[],"rp":["um","mu","om","mo","omm","pu","up","mon","mom","umm","mun","nom","nomm","upp","pun","ump","unm","omp","nmo","unmo"]},"209":{"input":[1,5,7,8],"tlp":["aum",11931],"trp":["mau",2979],"trw":["mona",273],"lp":["aum","aup","amo","amon","amu","apu","ammo","aom","anmu"],"rp":["mau","pau","mona","oma","uma","omma","manu","naom","oman","pua","mano"]},"210":{"input":[2,5,7,8],"tlp":["spu",5447],"trp":["mus",23962],"trw":["muss",5445],"lp":["spu","som","sum","somm","summ","sup","smu","supp"],"rp":["mus","muss","ums","usp","mons","omms","mso","umso","mos","usm","moos","ussp"]},"211":{"input":[1,2,5,7,8],"tlw":["amos",143],"trw":["maus",230],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",2575],"trp":["omme",15487],"trw":["neuem",121],"lp":["enom","emu","empo","emo","emon","epu","eum"],"rp":["omme","ome","omen","mome","ume","umme","umen","uppe","umpe","omy","uem","mone","pony"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dumm",400],"trw":["mussen",4744],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",348],"trw":["pause",441],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",1365],"trp":["mut",9353],"tlw":["tom",616],"trw":["mut",548],"lp":["tum","tom","tumm","ttom"],"rp":["mut","mutt","mog","upt","ommt","mg","umg","omb","ummt","mung","nmog","mot","umb","umt","put","mott"]},"217":{"input":[1,4,5,7,8],"tlw":["baum",788],"trw":["mag",837],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stumm",329],"trw":["musst",1824],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["anspannung",163],"trw":["magnus",226],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genommen",1020],"trw":["mutter",5624],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["raum",1894],"trw":["magen",753],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurte",2360],"trw":["musste",7028],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["warum",5314],"trw":["umstanden",254],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",9042],"lp":[],"rp":["pl","plo","lip","lipp","pol","poli","lop","lp","ilip","olp","pil","pli","pio","pilo","ipl","ipli","pill","opi","poll","ppl"]},"225":{"input":[1,6,7,8],"tlp":["zop",139],"trp":["pla",4483],"tlw":["apollo",54],"trw":["opal",202],"lp":["zop","zipl","apol","appl"],"rp":["pla","pal","lap","lapp","pala","opal","pliz","pilz","pila","ppla"]},"226":{"input":[2,6,7,8],"tlp":["spio",245],"trp":["kop",10195],"trw":["klops",60],"lp":["spio","spl","spli"],"rp":["kop","klop","posi","klip","kpl","ispl","plos","lops","kopi"]},"227":{"input":[1,2,6,7,8],"trw":["klaps",56],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",361],"trp":["piel",3820],"trw":["lippe",146],"lp":["elp","epl"],"rp":["piel","pel","lpe","olpe","ppel","leop","ple","lep","lepp","-pi","-pie","l'","ll'","oll'","pell","'el","lpel","opie"]},"229":{"input":[1,3,6,7,8],"trw":["pelz",894],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spiel",618],"trw":["klippe",159],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["speisesaal",104],"trw":["klappe",167],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tolp",465],"trp":["plot",3683],"trw":["pilot",82],"lp":["tolp","gip","tpl"],"rp":["plot","pito","pig","ppig","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["zopf",91],"trw":["platz",1840],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",180],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spalt",238],"trw":["kopf",9064],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["prior",72],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["rappelte",154],"trw":["pfeil",312],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spielte",526],"trw":["korper",2392],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["distelpfote",300],"trw":["kapitel",832],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",4691],"trw":["philip",527],"lp":[],"rp":["ml","mli","mil","lm","lim","muh","imo","limm","mili","imon","hlim","minu","oph","umi","umin","hop","hmu","lum","llm","phil"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["zum",13031],"trw":["mal",9722],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",1611],"trw":["komm",1435],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",287],"trw":["kaum",3695],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["himmel",2108],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["einmal",7220],"trw":["plane",315],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spielen",619],"trw":["kommen",3154],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zusammen",3969],"trw":["niemals",1641],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["vom",5596],"trw":["html",387],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",198],"trw":["umhang",262],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schlimm",464],"trw":["kommt",2302],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["allmahlich",712],"trw":["plotzlich",3426],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["gemeint",376],"trw":["herum",2872],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1680],"trw":["uberhaupt",2569],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekommen",2443],"trw":["mochte",2710],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemacht",2597],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json index 2e8c2b1431..0a1def7b10 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"r","baseshift":"R","tlp":["rr",29445],"tlw":["r",211],"lp":["rr"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["ar",265629],"tlw":["war",4160],"lp":["ar","wa","ra","aw","war","arr","wr","awa","ara","rw","raw","rar","rwa","rra","rwar","arra","awar","wra","warr","ww"],"rp":[]},"4":{"input":[3],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["as",286499],"tlw":["as",63759],"lp":["as","sa","ass","xa","ssa","ax","assa","asa","sas","saa","xas","ssas","sass","sax"],"rp":[]},"6":{"input":[2,3],"base":"f","baseshift":"F","tlp":["rs",105128],"tlw":["f",277],"lp":["rs","fr","ff","rf","sf","ssf","fs","sr","ssr","ffr","ffs"],"rp":[]},"7":{"input":[1,2,3],"tlp":["was",117615],"tlw":["was",112330],"lp":["was","fa","af","ars","ws","sw","far","fra","saw","aff","ras","fas","sar","rsa","ssar","saf","afr","aws","raf","rass"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","pa","ap","pp","app","pt","att","tat","pat","apt","apa","tta","atta","pap","pta","apta","patt","ppa","appa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["rt",81050],"tlw":["c",872],"lp":["rt","tr","ct","cr","rc","cc","tc","ttr","ctr","rtr","rcr","rct"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["part",4589],"lp":["ca","ac","pr","art","par","act","tra","tw","rat","car","part","tar","rac","rta","cat","acc","rp","wat","ract","atc"],"rp":[]},"12":{"input":[3,4],"base":"d","baseshift":"D","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","ds","dd","sts","sd","dds","dst","tst","tts"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ad",140314],"tlw":["past",2353],"lp":["ad","da","sta","sp","ast","xp","ps","xt","pas","stat","sat","pass","add","spa","aps","dat","tas","past","ads","ats"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",48242],"tlw":["dr",852],"lp":["rd","ft","dr","sc","str","rst","rds","rts","scr","cts","cs","tf","ddr","df","fts","cd","dsc","rsd","cst","fc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",26043],"tlw":["fact",3233],"lp":["ard","aft","fac","ward","star","stra","cas","fat","rad","fact","xc","dar","dra","sca","ards","rsta","draw","xtr","spr","fast"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"j","baseshift":"J","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["j",365],"lp":["an","ann","ana","aj","anna","aan"],"rp":["na","ja","nan","nj","nna","jan","nann"]},"18":{"input":[2,5],"base":"k","baseshift":"K","tlp":["rn",39425],"trp":["kn",27363],"trw":["k",182],"lp":["rn","rk","rkn"],"rp":["kn","nk","nr","nkn","kr","nkr"]},"19":{"input":[1,2,5],"tlp":["ak",39732],"trp":["ka",3991],"tlw":["ran",1611],"trw":["jr",190],"lp":["ak","wn","ran","wan","ark","ank","arn","rna","rank","rran","awn","aran","wak","warn","rawn","rka"],"rp":["ka","nar","nw","narr"]},"20":{"input":[3,5],"base":"m","baseshift":"M","tlp":["sm",13242],"trp":["ns",85305],"trw":["m",1273],"lp":["sm","sn","ssm"],"rp":["ns","ms","mm","nm","mn","nsm","nns","mns","mms"]},"21":{"input":[1,3,5],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","ans","sam","san","sma","asn","xam","ama","ams","xan"],"rp":["ma","man","nam","mas","mana","mma","mann","mman","maj","mass"]},"22":{"input":[2,3,5],"tlp":["rm",33028],"trp":["ks",14097],"trw":["mr",4133],"lp":["rm","sk","rms","rns","rks","rnm","sks","rkf","rkm"],"rp":["ks","nf","mr","mrs","nks","mf","kf","nsf","km","nfr","msf"]},"23":{"input":[1,2,3,5],"tlp":["ask",11409],"trp":["mar",15017],"tlw":["ask",2497],"trw":["mark",882],"lp":["ask","rma","arm","fam","rman","answ","wasn","ram","fran","fan","rans","arms","anks","warm","asks"],"rp":["mar","mak","mark","nsw","marr"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["pan",150],"trw":["japan",279],"lp":["ab","ba","ant","tan","pan","tant","tab","ban","bab","bj","bat","batt","anta","apan","abb"],"rp":["nat","nta","nab","jap","japa"]},"26":{"input":[2,4,5],"tlp":["ck",51278],"trp":["nc",79565],"tlw":["bc",95],"lp":["ck","br","rb","rtn","ckn","rnt","bc","tk","ckb","tbr","ckt","cn","cb"],"rp":["nc","ntr","ncr","nct","kt","kb"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["ntra",2857],"tlw":["can",15149],"trw":["jack",1623],"lp":["can","ack","anc","tak","bac","back","want","bra","ranc","tanc","tran","bar","rtan","rab","cann","rant","tack"],"rp":["ntra","jac","jack"]},"28":{"input":[3,4,5],"tlp":["dn",14682],"trp":["nd",415919],"trw":["nd",119],"lp":["dn","bs","tm","dm","sb","stm","bst","db","bm","bts"],"rp":["nd","mb","nts","nds","nst","mst","ntm","mbs","ndm","ndn"]},"29":{"input":[1,3,4,5],"tlp":["and",307129],"trp":["mp",43386],"tlw":["and",266855],"trw":["mad",373],"lp":["and","stan","tand","ands","amp","dan","bas","ants","band","bad"],"rp":["mp","mat","mad","mpa","mpan","nda","matt","mpt","mand","nsta"]},"30":{"input":[2,3,4,5],"tlp":["cks",2772],"trp":["ndr",3159],"tlw":["cbs",76],"trw":["kd",65],"lp":["cks","rtm","ckm","rnst","fb","rmt","rdb","dk","bstr"],"rp":["ndr","nstr","nsc","mbr","ndf","mc","mcd","ndsc","mcc","ndk","ncts"]},"31":{"input":[1,2,3,4,5],"tlw":["dark",1865],"lp":[],"rp":[]},"32":{"input":[6],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"33":{"input":[1,6],"base":"q","baseshift":"Q","tlp":["ae",810],"trp":["ea",216643],"tlw":["q",103],"lp":["ae","aq"],"rp":["ea","eq","eea"]},"34":{"input":[2,6],"base":"z","baseshift":"Z","tlp":["re",464927],"trp":["er",558051],"tlw":["re",63],"trw":["er",80],"lp":["re","ree","ze","rre","reer","zz","rer","zer","reez"],"rp":["er","ere","err","eer","erre","ez","eez","eze","eeze","eere","erer"]},"35":{"input":[1,2,6],"tlp":["we",135334],"trp":["ear",54836],"tlw":["were",34909],"trw":["ear",427],"lp":["we","rea","are","wer","were","wee","wea","rew","az","req","za","wear","ware","area"],"rp":["ear","ew","era","eare","erw","ewe"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ase",11581],"trp":["ex",43940],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","xe","sq","ases","sex","seq","seas","axe","xes"],"rp":["ex","eas","exa","ease","essa","exe","esea","easa","exas"]},"38":{"input":[2,3,6],"tlp":["fe",67683],"trp":["ers",54211],"tlw":["free",1788],"lp":["fe","res","ffe","rse","ser","fer","fee","ress","ffer","fere","rese","fre","ref"],"rp":["ers","ef","erf","eff","erse","efe","eres"]},"39":{"input":[1,2,3,6],"tlp":["reas",7091],"trp":["ears",10248],"tlw":["few",5711],"trw":["ears",565],"lp":["reas","few","swe","fea","swer","fear","sear","wes","afe","wers","safe","aref","affe","werf","swee","xer"],"rp":["ears","ews","ersa","exer"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["te",259049],"trp":["et",117117],"tlw":["tv",551],"trw":["et",324],"lp":["te","ve","tte","tee","tev","teve","teet","tv","vet","ttee"],"rp":["et","ev","eve","ett","eet","ette","ete","etee","eev","eeve"]},"41":{"input":[1,4,6],"tlp":["pe",115056],"trp":["ep",39298],"tlw":["tea",508],"trw":["eat",1112],"lp":["pe","av","ate","ave","va","ppe","pea","atte","appe","tea","tate","ape","ppea"],"rp":["ep","eat","eep","ept","eate","eav","epa"]},"42":{"input":[2,4,6],"tlp":["ce",144944],"trp":["ec",91763],"tlw":["tree",670],"trw":["ever",4714],"lp":["ce","ver","ter","rec","tter","cre","rv","tre","ret","cer","rce","cte","rte","cce"],"rp":["ec","ever","ect","erv","ert","ece"]},"43":{"input":[1,2,4,6],"tlp":["per",37369],"trp":["eca",14464],"tlw":["water",2519],"lp":["per","pre","ace","reat","pec","rep","ater","twe","rate","crea","pect","care","pare","twee","cep"],"rp":["eca","eac","etw","erat","etwe"]},"44":{"input":[3,4,6],"tlp":["de",167797],"trp":["ed",326541],"tlw":["set",3472],"trw":["ed",253],"lp":["de","ted","ste","sed","ded","des","ved","ves","tes","ssed","set","sted","dde","sev","seve","dee","dv"],"rp":["ed","est","eed"]},"45":{"input":[1,3,4,6],"tlp":["spe",18659],"trp":["ead",29380],"tlw":["state",2221],"trw":["east",920],"lp":["spe","ade","dea","ated","xpe","ped","pped","ates","aste","dep","adv","stea","step"],"rp":["ead","exp","expe","ext","esp","east","espe"]},"46":{"input":[2,3,4,6],"tlp":["red",36139],"trp":["ered",12958],"tlw":["street",2374],"trw":["effect",1185],"lp":["red","der","fte","ces","fter","dre","ced","ster","rest","sec","rde","cess","serv","ders","dec","cted","stre","ters","rder"],"rp":["ered"]},"47":{"input":[1,2,3,4,6],"tlw":["after",12071],"trw":["except",1180],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","en","ne","hen","een","ene","nee","nne","eh","hn","hee","enn","nh","nen","enne","hene","ehe","nhe","ehen","enh"]},"49":{"input":[1,5,6],"tlp":["ane",5091],"trp":["ha",357027],"tlw":["anne",519],"trw":["jane",336],"lp":["ane","ah","anne","ahe","ahea"],"rp":["ha","han","hea","ean","je","nea","ena","eha","enj","jea","nha","eah","eane","jean","nq"]},"50":{"input":[2,5,6],"tlp":["ren",22668],"trp":["her",160213],"tlw":["zen",79],"trw":["her",47940],"lp":["ren","rne","rke","rh"],"rp":["her","ke","here","hr","ner","ern","hre","eren","kne","ek","eek","ener","ken","hree","kee","nner"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["new",18090],"tlw":["when",27718],"trw":["new",10172],"lp":["wh","whe","wha","when","ake","wher","wen","ween","aren","week","arke","aken"],"rp":["new","har","hear","eak","knew","earn","nera","near"]},"52":{"input":[3,5,6],"tlp":["sh",119750],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["sh","she","sen","seem"],"rp":["me","em","men","hem","nes","eme","hes","mes","ens","ness","hese","eem","nse","mse","mem","emen"]},"53":{"input":[1,3,5,6],"tlp":["ame",34012],"trp":["has",13193],"tlw":["same",6718],"trw":["has",11125],"lp":["ame","sha","same","ash","ames","anes","sham"],"rp":["has","mea","mean","ema","name","eam","nex","exam","ham","eman","eans","exan","hame"]},"54":{"input":[2,3,5,6],"tlp":["rem",11660],"trp":["mer",13928],"tlw":["fresh",618],"trw":["mere",523],"lp":["rem","ske","reme","rme","fren","fen","rsh","rmer","rnme"],"rp":["mer","hers","erm","kes","eks","eeks","ners","mmer","ernm","efen","mere"]},"55":{"input":[1,2,3,5,6],"tlw":["answer",1929],"trw":["make",9390],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ent",104826],"tlw":["the",506536],"trw":["even",12216],"lp":["th","the","be","ven","ten","bee","been","then","bet","tten"],"rp":["ent","ht","nte","even","eth","nev","nv","neve","ethe","ente"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["have",35739],"lp":["tha","that","ath","pen","than","ph","athe","bea","ante","ppen","van","pene","bje"],"rp":["hat","hav","have","hap","happ","eath","enta"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["nce",54473],"tlw":["there",23867],"trw":["never",9168],"lp":["ch","ther","thr","bec","che","ber","tch","cen","rth","rent","cent","thre","rch","cke","bre"],"rp":["nce","enc","ence","nter","nch"]},"59":{"input":[1,2,4,5,6],"tlw":["what",26770],"trw":["each",6050],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["them",24753],"trp":["ned",28030],"tlw":["them",21593],"trw":["need",4397],"lp":["them","den","thes","dent","tem","sent"],"rp":["ned","ment","nde","end","med","hed","met","ents","mbe","nted","emb","meth","need","nded"]},"61":{"input":[1,3,4,5,6],"tlw":["death",2323],"trw":["had",63389],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["remember",2277],"trw":["members",1108],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["came",6889],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ai",104869],"trp":["ia",38456],"lp":["ai"],"rp":["ia","iai"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["ri",146328],"trp":["ir",91496],"lp":["ri","rri"],"rp":["ir","iri","irr","irri"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wi",119378],"trp":["ira",1826],"tlw":["air",2428],"trw":["ira",59],"lp":["wi","rai","air","ari","arri","ria","wri","wai","rria","aria","rwi","awi","rawi","wir","rari","awai","rrai","arwi"],"rp":["ira","iar"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","-s","isis","-si","-i"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["sai",25354],"trp":["ix",4876],"tlw":["six",1928],"trw":["ix",80],"lp":["sai","asi","assi","xi","six","ais","sia","xis","ssia","asis","sias","asia","axi","aisi"],"rp":["ix","isa","ias","isas","isaa","issa"]},"70":{"input":[2,3,7],"tlp":["fi",67126],"trp":["if",58122],"tlw":["sir",1984],"trw":["if",25154],"lp":["fi","fir","ris","firs","ffi","fri","sir","rsi","fif","rif","risi","fis","rifi"],"rp":["if","irs","iff","ifi","iffi","isf","-f"]},"71":{"input":[1,2,3,7],"tlp":["fai",5226],"trp":["isfa",500],"tlw":["fair",842],"lp":["fai","wis","wif","aris","fair","rais","airs","swi","frai","fix","ffai","rwis","sari","afri","affi","rsia","swif","wais","fia"],"rp":["isfa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["ti",213739],"trp":["it",311028],"tlw":["g",298],"trw":["it",92474],"lp":["ti","gi","tti","gg","tit","gt","tig","titi","ttit","ggi","git","gig","tg"],"rp":["it","ig","iti","itt","igi","itti","igg"]},"73":{"input":[1,4,7],"tlp":["ag",47829],"trp":["ip",16613],"tlw":["tip",221],"lp":["ag","ati","ga","pi","tai","aga","gai","agai","pai","ait","tia","tati","pti","agi","pit","ppi","gat"],"rp":["ip","ita","iat"]},"74":{"input":[2,4,7],"tlp":["ci",45417],"trp":["ic",118179],"tlw":["critic",79],"lp":["ci","gr","cti","tic","rg","rit","ric","tri","rig","rti","cri","cit","gir","riti","rtic","tir"],"rp":["ic","ici","ict","irt"]},"75":{"input":[1,2,4,7],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"lp":["wit","pri","gra","cia","acti","arg","rati","arti","rica","trai","pic","rtai","writ","gar","rag","wait","tica","cati"],"rp":["ica","icat"]},"76":{"input":[3,4,7],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["its",10155],"lp":["di","sti","did","sid","gs","sit","dis","sig","dg","sist","dit","tis","siti","dist","diti"],"rp":["id","ist","its","isti","idd"]},"77":{"input":[1,3,4,7],"tlp":["aid",27860],"trp":["ista",3836],"tlw":["said",23960],"trw":["ida",198],"lp":["aid","said","spi","adi","dia","sati","spit","xist","diat","disa","sag","ssag","stai","atis","disp"],"rp":["ista","ips","isp","ida","isap"]},"78":{"input":[2,3,4,7],"tlp":["fic",12500],"trp":["irst",11403],"tlw":["first",11244],"lp":["fic","ffic","dif","diff","sic","dri","fig","sci","dir","disc","dic","cis","rid","tif","cid","rdi","stri"],"rp":["irst","ift","isc"]},"79":{"input":[1,2,3,4,7],"tlw":["paris",1353],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"y","baseshift":"Y","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","ni","ny","nin","yi","yin","ini","inn","nni","inin","nnin","inni","yn","nny","iny","nyi","nyin","inny","ynn"]},"81":{"input":[1,5,7],"tlp":["ay",87083],"trp":["ina",10155],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","ain","any","ani","ayi","ayin","aini","anin","anni"],"rp":["ina","ian","ya","nia","inan","nai","ji","yan","inj","nian","iann"]},"82":{"input":[2,5,7],"tlp":["ry",67816],"trp":["ki",42462],"trw":["ink",130],"lp":["ry","rin","rni","rnin","rry","ryi","ryin","rki","rkin","rink","rik"],"rp":["ki","kin","ik","ink","nki","nkin","inki","ky","nry"]},"83":{"input":[1,2,5,7],"tlp":["way",28360],"trp":["yw",1970],"tlw":["way",11339],"trw":["iran",85],"lp":["way","win","ary","aki","akin","away","rain","arin","arry","ray","rian","arni","rary","anyw","wy"],"rp":["yw","nary","inar","nyw","kay"]},"84":{"input":[3,5,7],"tlp":["sin",21536],"trp":["im",93559],"tlw":["sin",306],"trw":["my",40423],"lp":["sin","sy","sim","smi","ssin"],"rp":["im","mi","my","ys","min","ins","nsi","mis","ims","nis","miss","mys","imi","insi","mmi"]},"85":{"input":[1,3,5,7],"tlp":["ays",16554],"trp":["may",9648],"tlw":["say",7781],"trw":["many",8068],"lp":["ays","say","ami","ains","says","asy","aim","sayi","amin","sian","anis","asin"],"rp":["may","many","ima","mai","main","iam","ians","mina"]},"86":{"input":[2,3,5,7],"tlp":["fin",16231],"trp":["inf",5607],"tlw":["firm",690],"trw":["kiss",443],"lp":["fin","ski","rim","rmi","fini","rmy","rmin","skin","firm","risk"],"rp":["inf","mir","nfi","nif","irm","isk","kis","kiss","nifi","mik"]},"87":{"input":[1,2,3,5,7],"tlw":["army",2073],"trw":["mary",586],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["ty",42717],"trp":["ng",301290],"tlw":["by",35333],"lp":["ty","by","tin","ting","bi","gin","gn","ttin"],"rp":["ng","ing","int","nti","ning","ity","ib","ying","ign","nit","yt","nig"]},"89":{"input":[1,4,5,7],"tlp":["ang",16987],"trp":["nati",5202],"tlw":["again",7165],"lp":["ang","gain","tain","gan","pin","ping","aint","anyt","atin","abi","py","pain","pany","ppin","agin","tay","anag"],"rp":["nati","nag","ntai"]},"90":{"input":[2,4,5,7],"tlp":["ring",17926],"trp":["king",26881],"tlw":["city",2930],"trw":["king",2321],"lp":["ring","bri","try","rty","cy","rib","city","cin","ryt","rity","cing","tryi","rinc","brin"],"rp":["king","inc","ick","nci","nic","ntry"]},"91":{"input":[1,2,4,5,7],"tlw":["taking",1995],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["tim",28120],"trp":["ind",31046],"tlw":["sitting",1409],"trw":["mind",4439],"lp":["tim","din","ding","dy","sing","didn","sib","sign"],"rp":["ind","ngs","ndi","ings","inst","idn","mig","ndin","ming","mind","mit","nsid"]},"93":{"input":[1,3,4,5,7],"tlw":["day",8306],"trw":["instant",472],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["find",4695],"trw":["kind",3481],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["asking",940],"trw":["making",2931],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"97":{"input":[1,6,7],"tlp":["au",32369],"trp":["ua",23498],"tlw":["que",92],"trw":["iq",115],"lp":["au","qu","qui","que","qua","quie","quee","quai"],"rp":["ua","equ","equi","eau","eque","iq","equa","iqu","ique","uai","iqui","iae"]},"98":{"input":[2,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["rue",170],"lp":["ru","rie","rrie","rue","zi","rei"],"rp":["ur","eir","ure","eri","ire","iz","uri","ize","ier","erie","urr","uir","uire","eur"]},"99":{"input":[1,2,6,7],"tlp":["requ",3277],"trp":["ura",5813],"tlw":["require",420],"trw":["iraq",73],"lp":["requ","quir","quar","azi","wei","arie","aur","aura","wire","aire"],"rp":["ura","uar","iew","eari","iza","eria","ewi","uare","erwi","iewe"]},"100":{"input":[3,6,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"101":{"input":[1,3,6,7],"tlp":["aus",14032],"trp":["exi",2803],"trw":["usa",134],"lp":["aus","ause","ques","sua","asu","aise","assu","squ","sequ","squa","xu","asie"],"rp":["exi","usa","usua","easi","easu","exis","ixe","isea"]},"102":{"input":[2,3,6,7],"tlp":["fu",24057],"trp":["urs",13334],"tlw":["sure",3684],"trw":["users",252],"lp":["fu","sur","sure","frie","ries","rus","resi","fie","rise","resu","refu"],"rp":["urs","ife","urse","iffe","ief","efu","uf","uff","ures"]},"103":{"input":[1,2,3,6,7],"tlw":["wife",2078],"trw":["easier",513],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ge",97282],"trp":["ut",147044],"tlw":["get",10986],"trw":["iv",292],"lp":["ge","vi","tu","get","gu","tiv","tive","giv","tie","give"],"rp":["ut","iv","ug","ive","eg","ite","ivi","ute","eti","uti"]},"105":{"input":[1,4,6,7],"tlp":["pu",22528],"trp":["up",44081],"tlw":["put",5210],"trw":["up",23594],"lp":["pu","age","put","avi","aug","tua","atu","aut","ativ","pie","quit","gav","gave"],"rp":["up","ega","upp","iva","iate","eati","uat"]},"106":{"input":[2,4,6,7],"tlp":["tur",27983],"trp":["uc",39944],"tlw":["true",2254],"trw":["ice",574],"lp":["tur","cu","gre","ger","ture","tru","rge","riv","cur","ctu","vic","gree","rive","ctiv"],"rp":["uc","ice","eci","ecti","iver","uct"]},"107":{"input":[1,2,4,6,7],"tlw":["great",6807],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["du",19747],"trp":["ide",35753],"tlw":["side",3662],"trw":["used",3487],"lp":["du","side","stu","ges","die","ged","vid","tud","vis","ties"],"rp":["ide","ust","ud","ied","iste","edi","esti","used","uest","ude"]},"109":{"input":[1,3,4,6,7],"tlw":["despite",946],"trw":["idea",2885],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["five",2604],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["arrived",1258],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hi",274759],"trw":["eye",1504],"lp":[],"rp":["hi","un","ey","hin","hey","ye","ine","hei","hu","ien","nu","hy","uni","ein","eye","eni","inu","hun","ney","enin"]},"113":{"input":[1,5,6,7],"tlp":["aine",5046],"trp":["ju",21952],"tlw":["queen",763],"trw":["yeah",918],"lp":["aine","aye","quen","aun","anie","anu"],"rp":["ju","yea","hai","una","eani","jun","nua","yeah","niq","niqu","nqu","hain","june","hani"]},"114":{"input":[2,5,6,7],"tlp":["rien",11605],"trp":["ery",27793],"tlw":["run",1998],"trw":["henry",1546],"lp":["rien","run","zin"],"rp":["ery","heir","ike","urn","hink","urne","erin","hir","urin","hur","niz","yer","urni","hri","ury","key","enry"]},"115":{"input":[1,2,5,6,7],"tlw":["why",6090],"trw":["year",3064],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["shi",11339],"trp":["his",109386],"tlw":["sun",1066],"trw":["his",69304],"lp":["shi","sum","sine"],"rp":["his","him","ime","mu","um","ish","mus","ines","yes","usin","imes","hims","imse","eyes","ishe","hus","ume"]},"117":{"input":[1,3,5,6,7],"tlw":["assume",344],"trw":["human",2178],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["fine",1422],"trw":["mike",918],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["wish",1198],"trw":["years",7833],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ith",80740],"tlw":["but",49620],"trw":["night",4461],"lp":["gh","thi","bu","ght","but","thin","they","thei","vin","ving"],"rp":["ith","igh","ugh","ight","hing","nge","ught","unt","inte","ub"]},"121":{"input":[1,4,5,6,7],"tlw":["anything",3884],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["their",26687],"trw":["every",7264],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["with",67032],"trw":["nature",1587],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["this",36089],"trw":["might",6921],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["game",1331],"trw":["just",14589],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["such",8032],"trw":["much",10233],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["because",9879],"trw":["experience",2559],"lp":[],"rp":[]},"128":{"input":[8],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"129":{"input":[1,8],"tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"bksp","base":"ao"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["ro",170933],"trp":["or",314634],"trw":["or",34654],"lp":["ro","roo","rro","ror","rror"],"rp":["or","oor","orr","orro","oro"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["row",380],"lp":["wo","wor","row","aro","roa","wro","rrow","woo","worr","arro","rao","aor"],"rp":["ow","ora","owa","owar","oar","orw","orwa","orar"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"trw":["'",14271],"lp":["so","soo","sso","s'","s's","ss'","ss's"],"rp":["os","'s","oss","oos","o'","oso","''","o's","'o","oss'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["aso",4273],"trp":["ox",1874],"lp":["aso","asso","a'","xo","a's","soa","aos","a'a","x'","ax'","x's","ax's","axo","saxo"],"rp":["ox","oas","osa","'a","ossa"]},"134":{"input":[2,3,8],"tlp":["fo",133745],"trp":["of",272457],"tlw":["for",70927],"trw":["of",245539],"lp":["fo","for","fro","rso","ros","sor","ross","foo","r'","r's","rof","ffo","ffor","rfo","rfor","sof"],"rp":["of","off","ors","'r"]},"135":{"input":[1,2,3,8],"tlp":["wors",1678],"trp":["ows",4674],"tlw":["sofa",209],"lp":["wors","forw","rows","swo","swor","affo","wso","awso","frow","sofa","rox","aros","ar'","ar's","w'"],"rp":["ows","'w","ofa","oars","ow'"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","too","tto","tot","toot","toto"],"rp":["ot","ott","oot","oto","otto"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["po",68607],"trp":["op",53305],"tlw":["top",1822],"lp":["po","ppo","top","pot","poo","ato","pop","topp","apo","appo","tota","pto"],"rp":["op","opp","oppo","oat","ota","oop","opt","opo"]},"138":{"input":[2,4,8],"tlp":["co",161789],"trp":["ort",28140],"tlw":["root",179],"lp":["co","tor","tro","cor","cro","rot","cto","cco","ctor","roc","ccor","coo","corr","cot"],"rp":["ort","oc","orc","occ","oct","octo"]},"139":{"input":[1,2,4,8],"tlp":["pro",33640],"trp":["orta",4717],"tlw":["two",11667],"lp":["pro","por","two","port","tow","rop","pow","acco","ppor","towa","prop","proc","acro","ppro","coa","crow","wrot"],"rp":["orta","oac","oca"]},"140":{"input":[3,4,8],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","sto","t'","t's","doo","stoo","tood","tod","d'","d's"],"rp":["od","'t","ost","ood","'d","odd","ots","ods","oods","oots"]},"141":{"input":[1,3,4,8],"tlp":["pos",16560],"trp":["oad",3493],"tlw":["stop",1798],"lp":["pos","spo","at'","at's","poss","stop","ppos","ado","toda","post","spot","sop"],"rp":["oad","osp","oda","ops","oast","oops","opos","osop"]},"142":{"input":[2,3,4,8],"tlp":["stor",8576],"trp":["ord",17538],"tlw":["door",3713],"lp":["stor","fort","rod","soc","door","sco","cros","forc","stro","dro","cord","doc","sort","tors","food","dor"],"rp":["ord","oft","ords","orts"]},"143":{"input":[1,2,3,4,8],"tlw":["words",3228],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"l","baseshift":"L","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ll","no","lo","ol","nl","loo","lon","onl","oll","llo","ool","oon","olo","ollo","nno","ono","onn","non","noo"]},"145":{"input":[1,5,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ano","alo","alon","anno","allo","ala"],"rp":["la","jo","lan","nal","ona","onal","lla","nall","olla","oal","njo","ola"]},"146":{"input":[2,5,8],"tlp":["rl",25465],"trp":["ok",35246],"tlw":["roll",381],"trw":["look",5477],"lp":["rl","ron","rol","roll","rok","rno"],"rp":["ok","ook","kno","ork","look","lk","nor","orn","orl","lor","lr","kl","loor","olor"]},"147":{"input":[1,2,5,8],"tlp":["work",16534],"trp":["now",32603],"tlw":["work",8749],"trw":["now",13343],"lp":["work","ral","arl","alk","wal","worl","alw","alwa","won","walk","wl","alr"],"rp":["now","own","know","low","lar","llow","lw","lwa"]},"148":{"input":[3,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["soon",3191],"trw":["mom",1398],"lp":["som","son","sl","sn'","sol"],"rp":["om","mo","n'","ons","ls","mos","mon","on'","los","omm","lso","oom","'m","lm","mom"]},"149":{"input":[1,3,5,8],"tlp":["als",13163],"trp":["las",11287],"tlw":["also",7989],"trw":["man's",744],"lp":["als","also","alm","amo","an'","smal","ason","almo","asn'","sona","amon","sla","sal","alls"],"rp":["las","mal","oma","oman","mall","lass"]},"150":{"input":[2,3,5,8],"tlp":["rom",40627],"trp":["mor",29841],"tlw":["from",35952],"trw":["looks",1175],"lp":["rom","from","fl","form","rson","room","fol","flo","foll","fron","floo"],"rp":["mor","lf","orm","onf","nfo","nfor","morn","oks","ooks"]},"151":{"input":[1,2,3,5,8],"tlw":["woman",3590],"trw":["major",1113],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bo",64448],"trp":["not",62064],"tlw":["bob",306],"trw":["not",43106],"lp":["bo","bl","tl","ttl","bot","ton","tol","boo","blo","bloo"],"rp":["not","lt","ob","nto","ont","ntl","lot","obl","nnot","nob"]},"153":{"input":[1,4,5,8],"tlp":["pl",68379],"trp":["lat",15533],"tlw":["plan",1335],"trw":["job",3249],"lp":["pl","abo","pla","abl","tal","pon","alt","anot","pol","tabl","plan","bla","plo","ppl","bal"],"rp":["lat","opl","lp","job","oba"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["con",43239],"trp":["onc",10039],"tlw":["took",5513],"lp":["con","cl","cont","bro","col","clo","rob","took","bor","book","conc","coll","ctl","ront"],"rp":["onc","ock","loc","ncl","ontr","ntro"]},"155":{"input":[1,2,4,5,8],"tlw":["call",2856],"trw":["local",1100],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["don",16568],"trp":["ld",104617],"tlw":["don't",9569],"trw":["most",10396],"lp":["don","dn'","dn't","don'","dl","sn't","bod","told","tom"],"rp":["ld","n't","old","most","ond","on't","mot","ldn","ldn'","ndo","obs"]},"157":{"input":[1,3,4,5,8],"tlw":["almost",3784],"trw":["last",4981],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["front",2573],"trw":["lord",1049],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["down",11247],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"@","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"161":{"input":[1,6,8],"trp":["oq",59],"lp":[],"rp":["oq"]},"162":{"input":[2,6,8],"tlp":["zo",557],"trp":["ore",43307],"tlw":["zero",137],"trw":["error",228],"lp":["zo","reo","roe","roz","roze","zero"],"rp":["ore","ero","eor","oz","oze","erro","orre","oreo","eror","eroe","oore","orer","ooz","ooze"]},"163":{"input":[1,2,6,8],"tlp":["wore",857],"trp":["owe",15537],"tlw":["wore",747],"trw":["owe",137],"lp":["wore","rowe","woe","azo"],"rp":["owe","ower","ewo","ewor","orea","erwo","oare"]},"164":{"input":[3,6,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe","se'","se's"],"rp":["ose","e'","e's","oes","osse","oose","eso","esso","oses","'e","es'","eos","es's","oe'","oe's"]},"165":{"input":[1,3,6,8],"trp":["easo",4023],"lp":[],"rp":["easo","oxe","oxes","exo"]},"166":{"input":[2,3,6,8],"tlp":["fore",14026],"trp":["efo",11759],"tlw":["rose",1049],"trw":["offer",1014],"lp":["fore","re'","re's","rose","rofe"],"rp":["efo","efor","erso","'re","offe","er'","er's","ere'","orse","erfo","ofe","ofes","e'r","e're","effo"]},"167":{"input":[1,2,3,6,8],"tlw":["we're",1513],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vo",13509],"trp":["ov",46618],"tlw":["vote",203],"lp":["vo","vot","vote","toe","tov","tove"],"rp":["ov","ove","ote","evo","otte","oet","evot","eov","eove","eto","oev","oeve","ovo","oote"]},"169":{"input":[1,4,6,8],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","avo","poe","pote","poet","vato","pov","pove","pope"],"rp":["eop","ope","oppe","epo","ova","eapo","ovat","opea","opte","oope"]},"170":{"input":[2,4,6,8],"tlp":["rov",6005],"trp":["over",21892],"tlw":["cover",700],"trw":["over",12910],"lp":["rov","cov","cove","reco","rote","rove","roce","vor","tore","revo","core","rvo"],"rp":["over","eco","orce","oce","orte","ecor","otec","ecto"]},"171":{"input":[1,2,4,6,8],"tlw":["power",3130],"trw":["operate",192],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["doe",5478],"trp":["e'd",4775],"tlw":["does",3360],"lp":["doe","does","sov"],"rp":["e'd","'v","'ve","oved","ode","osed","oted","otes","edo","esto","et'","et's","odde","oves","e'v","e've","eedo"]},"173":{"input":[1,3,4,6,8],"tlw":["stopped",1419],"trw":["exposed",267],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["force",1513],"trw":["order",2602],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["process",1455],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["le",213808],"trw":["one",30730],"lp":[],"rp":["le","ho","el","one","ell","lle","hel","hol","eel","len","ele","hoo","ole","eno","oh","elo","hool","olle","hole","hon"]},"177":{"input":[1,5,6,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["alone",2184],"trw":["john",1863],"lp":["alle","ale","alen"],"rp":["lea","eal","hal","ela","eall","hall","lean","joh","john","enjo","oje","heal","lane","joe","eale","elea","llea"]},"178":{"input":[2,5,6,8],"tlp":["rel",11908],"trp":["hro",12209],"tlw":["role",950],"trw":["honor",325],"lp":["rel","roke","rle","role","rele"],"rp":["hro","oke","hor","ooke","ler","lre","lke","orke","erl","kel","orne","ller","oken","erno","hook"]},"179":{"input":[1,2,5,6,8],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","sel","sho"],"rp":["ome","les","hos","hose","hom","omen","less","he'","msel","els","emo","home","lose","lem","mome","lse","mone"]},"181":{"input":[1,3,5,6,8],"tlw":["shall",1999],"trw":["male",440],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["feel",4278],"trw":["more",21171],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["women",3612],"trw":["half",2504],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tho",36998],"trp":["oth",46489],"tlw":["both",5084],"trw":["let",4207],"lp":["tho","ble","tle","tel","ttle","bel","vel","tell","both"],"rp":["oth","othe","noth","let","lv","lve","lov","love","entl","elt","elv"]},"185":{"input":[1,4,5,6,8],"tlw":["people",14668],"trw":["help",3633],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["brother",1465],"trw":["other",13909],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["another",6638],"trw":["later",4588],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["those",7914],"trw":["moment",3684],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["that's",4282],"trw":["least",2856],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["before",10203],"trw":["left",5159],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["called",4581],"trw":["learned",1609],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["io",113622],"lp":[],"rp":["io","oi"],"special":"punc"},"193":{"input":[1,7,8],"lp":[],"rp":[]},"194":{"input":[2,7,8],"tlp":["rio",7327],"trp":["ori",8551],"lp":["rio","rior","rrio","roi","rori"],"rp":["ori","ior","iro","orri","irro","orio","iori","oir","oiro"]},"195":{"input":[1,2,7,8],"tlp":["ario",1160],"trp":["owi",4542],"tlw":["warrior",125],"lp":["ario","rowi","airo"],"rp":["owi","oria","iora","oari"]},"196":{"input":[3,7,8],"tlp":["sio",15825],"trp":["i'",14185],"trw":["'i",461],"lp":["sio","ssio","soi","so-"],"rp":["i'","osi","ossi","isio","iso","ois","o-","'i","ios","iosi","oosi","osio","oiso","-o","isso"]},"197":{"input":[1,3,7,8],"tlp":["asio",1897],"trp":["oxi",253],"lp":["asio","xio","aiso"],"rp":["oxi","ixo"]},"198":{"input":[2,3,7,8],"tlp":["riso",1574],"trp":["offi",5584],"trw":["'if",72],"lp":["riso","rofi","rsio","rios","rosi"],"rp":["offi","ifo","ifor","ofi","iors","oris","-fo","isor","-ro","-roo","oirs","isfo","'if","iff'","o-f"]},"199":{"input":[1,2,3,7,8],"tlw":["warriors",145],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["tio",72429],"trp":["og",14040],"tlw":["go",9032],"lp":["tio","go","goo","got","goi","tog","gio","gott","gto","goti"],"rp":["og","itio","oti","otio","ito","ogi","igio","iot","oog","otog"]},"201":{"input":[1,4,7,8],"tlp":["atio",33167],"trp":["opi",2391],"tlw":["ago",1471],"lp":["atio","poi","ptio","ago","goa","ppoi","topi","pio","aigo","goat","gapo"],"rp":["opi","opti","oppi","otia","oga","oati","opag","ogat","ipo"]},"202":{"input":[2,4,7,8],"tlp":["ctio",12347],"trp":["org",5456],"tlw":["torrio",94],"trw":["org",99],"lp":["ctio","gro","cio","tori","rog","rogr","cog","rgo","gor"],"rp":["org","oic","oci","ogr","otic","orit","orti","itor","orig","icio","icto"]},"203":{"input":[1,2,4,7,8],"tlw":["grow",678],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["good",10385],"trp":["it'",8789],"tlw":["good",9480],"trw":["it's",8558],"lp":["good","stio","god","doi","dog","dio","gdo","g'","g's","to-","gods"],"rp":["it'","it's","osit","isto","i'd","oid","odi","iod","isdo"]},"205":{"input":[1,3,4,7,8],"tlw":["gossip",164],"trw":["ipod",68],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["forgot",261],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["radio",638],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["li",155342],"trw":["only",13824],"lp":[],"rp":["li","ly","yo","il","ion","ill","lly","lin","oin","nly","only","lli","oy","ili","ily","oli","llin","yon","illi","nio"]},"209":{"input":[1,5,7,8],"tlp":["ally",22338],"trp":["ial",13366],"tlw":["ally",126],"trw":["lay",1482],"lp":["ally","ali","ail","alli","ainl","anyo"],"rp":["ial","lay","iona","lai","lia","inal","lain","iall","joy","ila","njoy","lian","joi","join"]},"210":{"input":[2,5,7,8],"tlp":["rly",8446],"trp":["lik",24097],"tlw":["roy",83],"trw":["york",1727],"lp":["rly","ril","rli","ryo","ryon"],"rp":["lik","ory","irl","oki","okin","kil","kill","orni","ooki","lki","lkin","orki","kly","yor","orry"]},"211":{"input":[1,2,5,7,8],"tlw":["will",14271],"trw":["okay",1081],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["sion",15757],"trp":["ions",18292],"tlw":["sly",561],"trw":["i'm",6537],"lp":["sion","sil","sly","smil","sli"],"rp":["ions","mil","lis","i'm","omi","y'","onsi","mily","mili","omin","lim","y's","i'l","i'll","ison"]},"213":{"input":[1,3,5,7,8],"tlw":["animal",491],"trw":["mail",328],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["sorry",899],"trw":["mirror",461],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["always",6467],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tion",71969],"trp":["lit",22460],"tlw":["going",6947],"trw":["into",18343],"lp":["tion","gl","tly","til","till","goin","bli"],"rp":["lit","ong","into","long","ling","lig","oing","litt","ittl","ibl","ngl","oint","ntly"]},"217":{"input":[1,4,5,7,8],"tlw":["point",3165],"trw":["national",867],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["girl",2370],"trw":["looking",3174],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["working",2448],"trw":["knowing",919],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["still",7621],"trw":["isn't",1565],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["among",2526],"trw":["lady",1132],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["story",2254],"trw":["morning",2986],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["important",2765],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["ou",377630],"lp":[],"rp":["ou","iou","uo","oui","eou","uou","oue"]},"225":{"input":[1,6,7,8],"tlp":["quo",328],"trp":["iquo",129],"lp":["quo"],"rp":["iquo","oqu","oque"]},"226":{"input":[2,6,7,8],"tlp":["rou",33045],"trp":["our",59933],"trw":["our",14347],"lp":["rou","riou","rrou","rizo"],"rp":["our","erio","orie","uro","erou","euro","urio","orei","urro","orou","ouri","oure","izo","oriz","iour","orru"]},"227":{"input":[1,2,6,7,8],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["sou",7964],"trp":["ous",26493],"lp":["sou","siou"],"rp":["ous","ious","u'","ou'","ouse","usio","esou","oise","ouis","ousi","eous","uous","osu","ouss","us'","usso","ies'"]},"229":{"input":[1,3,6,7,8],"tlw":["sioux",68],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["four",2961],"trw":["ours",177],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wife's",127],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["vio",4502],"trp":["out",63916],"trw":["out",24396],"lp":["vio","voi","toge","tou","viou","gov","gove","geo","vou","goe"],"rp":["out","oug","ovi","oge","oget","utio","ovie","ego","oute","otiv"]},"233":{"input":[1,4,6,7,8],"tlw":["quote",89],"trw":["output",75],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["voice",2628],"trw":["occur",235],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["group",2351],"trw":["europe",720],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["goes",995],"trw":["i've",2219],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["positive",1027],"trw":["opposite",687],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["office",2363],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["support",1196],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["you",104946],"trw":["you",68463],"lp":[],"rp":["you","ul","oul","hou","oun","lu","ile","hil","ely","eli","lie","houl","ull","hile","nou","elie","line","youn","enou","lue"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anyone",1715],"trw":["enjoy",693],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["rule",725],"trw":["your",20504],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["while",7024],"trw":["early",2452],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["smile",1413],"trw":["house",4935],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["anxious",432],"trw":["usually",1445],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["full",2345],"trw":["life",8740],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["families",960],"trw":["meanwhile",361],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["thought",7112],"trw":["little",9495],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["about",23108],"trw":["upon",4442],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["through",8798],"trw":["everyone",2219],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["without",5841],"trw":["large",2557],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["something",7615],"trw":["lives",1641],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["possible",2350],"trw":["immediately",1263],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["could",18061],"trw":["itself",2205],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["especially",1737],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"r","baseshift":"R","tlp":["rr",29445],"tlw":["r",211],"lp":["rr"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["ar",265629],"tlw":["war",4160],"lp":["ar","wa","ra","aw","war","arr","wr","awa","ara","rw","raw","rar","rwa","rra","rwar","arra","awar","wra","warr","ww"],"rp":[]},"4":{"input":[3],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["as",286499],"tlw":["as",63759],"lp":["as","sa","ass","xa","ssa","ax","assa","asa","sas","saa","xas","ssas","sass","sax"],"rp":[]},"6":{"input":[2,3],"base":"f","baseshift":"F","tlp":["rs",105128],"tlw":["f",277],"lp":["rs","fr","ff","rf","sf","ssf","fs","sr","ssr","ffr","ffs"],"rp":[]},"7":{"input":[1,2,3],"tlp":["was",117615],"tlw":["was",112330],"lp":["was","fa","af","ars","ws","sw","far","fra","saw","aff","ras","fas","sar","rsa","ssar","saf","afr","aws","raf","rass"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","pa","ap","pp","app","pt","att","tat","pat","apt","apa","tta","atta","pap","pta","apta","patt","ppa","appa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["rt",81050],"tlw":["c",872],"lp":["rt","tr","ct","cr","rc","cc","tc","ttr","ctr","rtr","rcr","rct"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["part",4589],"lp":["ca","ac","pr","art","par","act","tra","tw","rat","car","part","tar","rac","rta","cat","acc","rp","wat","ract","atc"],"rp":[]},"12":{"input":[3,4],"base":"d","baseshift":"D","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","ds","dd","sts","sd","dds","dst","tst","tts"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ad",140314],"tlw":["past",2353],"lp":["ad","da","sta","sp","ast","xp","ps","xt","pas","stat","sat","pass","add","spa","aps","dat","tas","past","ads","ats"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",48242],"tlw":["dr",852],"lp":["rd","ft","dr","sc","str","rst","rds","rts","scr","cts","cs","tf","ddr","df","fts","cd","dsc","rsd","cst","fc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",26043],"tlw":["fact",3233],"lp":["ard","aft","fac","ward","star","stra","cas","fat","rad","fact","xc","dar","dra","sca","ards","rsta","draw","xtr","spr","fast"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"j","baseshift":"J","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["j",365],"lp":["an","ann","ana","aj","anna","aan"],"rp":["na","ja","nan","nj","nna","jan","nann"]},"18":{"input":[2,5],"base":"k","baseshift":"K","tlp":["rn",39425],"trp":["kn",27363],"trw":["k",182],"lp":["rn","rk","rkn"],"rp":["kn","nk","nr","nkn","kr","nkr"]},"19":{"input":[1,2,5],"tlp":["ak",39732],"trp":["ka",3991],"tlw":["ran",1611],"trw":["jr",190],"lp":["ak","wn","ran","wan","ark","ank","arn","rna","rank","rran","awn","aran","wak","warn","rawn","rka"],"rp":["ka","nar","nw","narr"]},"20":{"input":[3,5],"base":"m","baseshift":"M","tlp":["sm",13242],"trp":["ns",85305],"trw":["m",1273],"lp":["sm","sn","ssm"],"rp":["ns","ms","mm","nm","mn","nsm","nns","mns","mms"]},"21":{"input":[1,3,5],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","ans","sam","san","sma","asn","xam","ama","ams","xan"],"rp":["ma","man","nam","mas","mana","mma","mann","mman","maj","mass"]},"22":{"input":[2,3,5],"tlp":["rm",33028],"trp":["ks",14097],"trw":["mr",4133],"lp":["rm","sk","rms","rns","rks","rnm","sks","rkf","rkm"],"rp":["ks","nf","mr","mrs","nks","mf","kf","nsf","km","nfr","msf"]},"23":{"input":[1,2,3,5],"tlp":["ask",11409],"trp":["mar",15017],"tlw":["ask",2497],"trw":["mark",882],"lp":["ask","rma","arm","fam","rman","answ","wasn","ram","fran","fan","rans","arms","anks","warm","asks"],"rp":["mar","mak","mark","nsw","marr"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["pan",150],"trw":["japan",279],"lp":["ab","ba","ant","tan","pan","tant","tab","ban","bab","bj","bat","batt","anta","apan","abb"],"rp":["nat","nta","nab","jap","japa"]},"26":{"input":[2,4,5],"tlp":["ck",51278],"trp":["nc",79565],"tlw":["bc",95],"lp":["ck","br","rb","rtn","ckn","rnt","bc","tk","ckb","tbr","ckt","cn","cb"],"rp":["nc","ntr","ncr","nct","kt","kb"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["ntra",2857],"tlw":["can",15149],"trw":["jack",1623],"lp":["can","ack","anc","tak","bac","back","want","bra","ranc","tanc","tran","bar","rtan","rab","cann","rant","tack"],"rp":["ntra","jac","jack"]},"28":{"input":[3,4,5],"tlp":["dn",14682],"trp":["nd",415919],"trw":["nd",119],"lp":["dn","bs","tm","dm","sb","stm","bst","db","bm","bts"],"rp":["nd","mb","nts","nds","nst","mst","ntm","mbs","ndm","ndn"]},"29":{"input":[1,3,4,5],"tlp":["and",307129],"trp":["mp",43386],"tlw":["and",266855],"trw":["mad",373],"lp":["and","stan","tand","ands","amp","dan","bas","ants","band","bad"],"rp":["mp","mat","mad","mpa","mpan","nda","matt","mpt","mand","nsta"]},"30":{"input":[2,3,4,5],"tlp":["cks",2772],"trp":["ndr",3159],"tlw":["cbs",76],"trw":["kd",65],"lp":["cks","rtm","ckm","rnst","fb","rmt","rdb","dk","bstr"],"rp":["ndr","nstr","nsc","mbr","ndf","mc","mcd","ndsc","mcc","ndk","ncts"]},"31":{"input":[1,2,3,4,5],"tlw":["dark",1865],"lp":[],"rp":[]},"32":{"input":[6],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"33":{"input":[1,6],"base":"q","baseshift":"Q","tlp":["ae",810],"trp":["ea",216643],"tlw":["q",103],"lp":["ae","aq"],"rp":["ea","eq","eea"]},"34":{"input":[2,6],"base":"z","baseshift":"Z","tlp":["re",464927],"trp":["er",558051],"tlw":["re",63],"trw":["er",80],"lp":["re","ree","ze","rre","reer","zz","rer","zer","reez"],"rp":["er","ere","err","eer","erre","ez","eez","eze","eeze","eere","erer"]},"35":{"input":[1,2,6],"tlp":["we",135334],"trp":["ear",54836],"tlw":["were",34909],"trw":["ear",427],"lp":["we","rea","are","wer","were","wee","wea","rew","az","req","za","wear","ware","area"],"rp":["ear","ew","era","eare","erw","ewe"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ase",11581],"trp":["ex",43940],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","xe","sq","ases","sex","seq","seas","axe","xes"],"rp":["ex","eas","exa","ease","essa","exe","esea","easa","exas"]},"38":{"input":[2,3,6],"tlp":["fe",67683],"trp":["ers",54211],"tlw":["free",1788],"lp":["fe","res","ffe","rse","ser","fer","fee","ress","ffer","fere","rese","fre","ref"],"rp":["ers","ef","erf","eff","erse","efe","eres"]},"39":{"input":[1,2,3,6],"tlp":["reas",7091],"trp":["ears",10248],"tlw":["few",5711],"trw":["ears",565],"lp":["reas","few","swe","fea","swer","fear","sear","wes","afe","wers","safe","aref","affe","werf","swee","xer"],"rp":["ears","ews","ersa","exer"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["te",259049],"trp":["et",117117],"tlw":["tv",551],"trw":["et",324],"lp":["te","ve","tte","tee","tev","teve","teet","tv","vet","ttee"],"rp":["et","ev","eve","ett","eet","ette","ete","etee","eev","eeve"]},"41":{"input":[1,4,6],"tlp":["pe",115056],"trp":["ep",39298],"tlw":["tea",508],"trw":["eat",1112],"lp":["pe","av","ate","ave","va","ppe","pea","atte","appe","tea","tate","ape","ppea"],"rp":["ep","eat","eep","ept","eate","eav","epa"]},"42":{"input":[2,4,6],"tlp":["ce",144944],"trp":["ec",91763],"tlw":["tree",670],"trw":["ever",4714],"lp":["ce","ver","ter","rec","tter","cre","rv","tre","ret","cer","rce","cte","rte","cce"],"rp":["ec","ever","ect","erv","ert","ece"]},"43":{"input":[1,2,4,6],"tlp":["per",37369],"trp":["eca",14464],"tlw":["water",2519],"lp":["per","pre","ace","reat","pec","rep","ater","twe","rate","crea","pect","care","pare","twee","cep"],"rp":["eca","eac","etw","erat","etwe"]},"44":{"input":[3,4,6],"tlp":["de",167797],"trp":["ed",326541],"tlw":["set",3472],"trw":["ed",253],"lp":["de","ted","ste","sed","ded","des","ved","ves","tes","ssed","set","sted","dde","sev","seve","dee","dv"],"rp":["ed","est","eed"]},"45":{"input":[1,3,4,6],"tlp":["spe",18659],"trp":["ead",29380],"tlw":["state",2221],"trw":["east",920],"lp":["spe","ade","dea","ated","xpe","ped","pped","ates","aste","dep","adv","stea","step"],"rp":["ead","exp","expe","ext","esp","east","espe"]},"46":{"input":[2,3,4,6],"tlp":["red",36139],"trp":["ered",12958],"tlw":["street",2374],"trw":["effect",1185],"lp":["red","der","fte","ces","fter","dre","ced","ster","rest","sec","rde","cess","serv","ders","dec","cted","stre","ters","rder"],"rp":["ered"]},"47":{"input":[1,2,3,4,6],"tlw":["after",12071],"trw":["except",1180],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","en","ne","hen","een","ene","nee","nne","eh","hn","hee","enn","nh","nen","enne","hene","ehe","nhe","ehen","enh"]},"49":{"input":[1,5,6],"tlp":["ane",5091],"trp":["ha",357027],"tlw":["anne",519],"trw":["jane",336],"lp":["ane","ah","anne","ahe","ahea"],"rp":["ha","han","hea","ean","je","nea","ena","eha","enj","jea","nha","eah","eane","jean","nq"]},"50":{"input":[2,5,6],"tlp":["ren",22668],"trp":["her",160213],"tlw":["zen",79],"trw":["her",47940],"lp":["ren","rne","rke","rh"],"rp":["her","ke","here","hr","ner","ern","hre","eren","kne","ek","eek","ener","ken","hree","kee","nner"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["new",18090],"tlw":["when",27718],"trw":["new",10172],"lp":["wh","whe","wha","when","ake","wher","wen","ween","aren","week","arke","aken"],"rp":["new","har","hear","eak","knew","earn","nera","near"]},"52":{"input":[3,5,6],"tlp":["sh",119750],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["sh","she","sen","seem"],"rp":["me","em","men","hem","nes","eme","hes","mes","ens","ness","hese","eem","nse","mse","mem","emen"]},"53":{"input":[1,3,5,6],"tlp":["ame",34012],"trp":["has",13193],"tlw":["same",6718],"trw":["has",11125],"lp":["ame","sha","same","ash","ames","anes","sham"],"rp":["has","mea","mean","ema","name","eam","nex","exam","ham","eman","eans","exan","hame"]},"54":{"input":[2,3,5,6],"tlp":["rem",11660],"trp":["mer",13928],"tlw":["fresh",618],"trw":["mere",523],"lp":["rem","ske","reme","rme","fren","fen","rsh","rmer","rnme"],"rp":["mer","hers","erm","kes","eks","eeks","ners","mmer","ernm","efen","mere"]},"55":{"input":[1,2,3,5,6],"tlw":["answer",1929],"trw":["make",9390],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ent",104826],"tlw":["the",506536],"trw":["even",12216],"lp":["th","the","be","ven","ten","bee","been","then","bet","tten"],"rp":["ent","ht","nte","even","eth","nev","nv","neve","ethe","ente"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["have",35739],"lp":["tha","that","ath","pen","than","ph","athe","bea","ante","ppen","van","pene","bje"],"rp":["hat","hav","have","hap","happ","eath","enta"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["nce",54473],"tlw":["there",23867],"trw":["never",9168],"lp":["ch","ther","thr","bec","che","ber","tch","cen","rth","rent","cent","thre","rch","cke","bre"],"rp":["nce","enc","ence","nter","nch"]},"59":{"input":[1,2,4,5,6],"tlw":["what",26770],"trw":["each",6050],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["them",24753],"trp":["ned",28030],"tlw":["them",21593],"trw":["need",4397],"lp":["them","den","thes","dent","tem","sent"],"rp":["ned","ment","nde","end","med","hed","met","ents","mbe","nted","emb","meth","need","nded"]},"61":{"input":[1,3,4,5,6],"tlw":["death",2323],"trw":["had",63389],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["remember",2277],"trw":["members",1108],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["came",6889],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ai",104869],"trp":["ia",38456],"lp":["ai"],"rp":["ia","iai"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["ri",146328],"trp":["ir",91496],"lp":["ri","rri"],"rp":["ir","iri","irr","irri"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wi",119378],"trp":["ira",1826],"tlw":["air",2428],"trw":["ira",59],"lp":["wi","rai","air","ari","arri","ria","wri","wai","rria","aria","rwi","awi","rawi","wir","rari","awai","rrai","arwi"],"rp":["ira","iar"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","-s","isis","-si","-i"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["sai",25354],"trp":["ix",4876],"tlw":["six",1928],"trw":["ix",80],"lp":["sai","asi","assi","xi","six","ais","sia","xis","ssia","asis","sias","asia","axi","aisi"],"rp":["ix","isa","ias","isas","isaa","issa"]},"70":{"input":[2,3,7],"tlp":["fi",67126],"trp":["if",58122],"tlw":["sir",1984],"trw":["if",25154],"lp":["fi","fir","ris","firs","ffi","fri","sir","rsi","fif","rif","risi","fis","rifi"],"rp":["if","irs","iff","ifi","iffi","isf","-f"]},"71":{"input":[1,2,3,7],"tlp":["fai",5226],"trp":["isfa",500],"tlw":["fair",842],"lp":["fai","wis","wif","aris","fair","rais","airs","swi","frai","fix","ffai","rwis","sari","afri","affi","rsia","swif","wais","fia"],"rp":["isfa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["ti",213739],"trp":["it",311028],"tlw":["g",298],"trw":["it",92474],"lp":["ti","gi","tti","gg","tit","gt","tig","titi","ttit","ggi","git","gig","tg"],"rp":["it","ig","iti","itt","igi","itti","igg"]},"73":{"input":[1,4,7],"tlp":["ag",47829],"trp":["ip",16613],"tlw":["tip",221],"lp":["ag","ati","ga","pi","tai","aga","gai","agai","pai","ait","tia","tati","pti","agi","pit","ppi","gat"],"rp":["ip","ita","iat"]},"74":{"input":[2,4,7],"tlp":["ci",45417],"trp":["ic",118179],"tlw":["critic",79],"lp":["ci","gr","cti","tic","rg","rit","ric","tri","rig","rti","cri","cit","gir","riti","rtic","tir"],"rp":["ic","ici","ict","irt"]},"75":{"input":[1,2,4,7],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"lp":["wit","pri","gra","cia","acti","arg","rati","arti","rica","trai","pic","rtai","writ","gar","rag","wait","tica","cati"],"rp":["ica","icat"]},"76":{"input":[3,4,7],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["its",10155],"lp":["di","sti","did","sid","gs","sit","dis","sig","dg","sist","dit","tis","siti","dist","diti"],"rp":["id","ist","its","isti","idd"]},"77":{"input":[1,3,4,7],"tlp":["aid",27860],"trp":["ista",3836],"tlw":["said",23960],"trw":["ida",198],"lp":["aid","said","spi","adi","dia","sati","spit","xist","diat","disa","sag","ssag","stai","atis","disp"],"rp":["ista","ips","isp","ida","isap"]},"78":{"input":[2,3,4,7],"tlp":["fic",12500],"trp":["irst",11403],"tlw":["first",11244],"lp":["fic","ffic","dif","diff","sic","dri","fig","sci","dir","disc","dic","cis","rid","tif","cid","rdi","stri"],"rp":["irst","ift","isc"]},"79":{"input":[1,2,3,4,7],"tlw":["paris",1353],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"y","baseshift":"Y","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","ni","ny","nin","yi","yin","ini","inn","nni","inin","nnin","inni","yn","nny","iny","nyi","nyin","inny","ynn"]},"81":{"input":[1,5,7],"tlp":["ay",87083],"trp":["ina",10155],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","ain","any","ani","ayi","ayin","aini","anin","anni"],"rp":["ina","ian","ya","nia","inan","nai","ji","yan","inj","nian","iann"]},"82":{"input":[2,5,7],"tlp":["ry",67816],"trp":["ki",42462],"trw":["ink",130],"lp":["ry","rin","rni","rnin","rry","ryi","ryin","rki","rkin","rink","rik"],"rp":["ki","kin","ik","ink","nki","nkin","inki","ky","nry"]},"83":{"input":[1,2,5,7],"tlp":["way",28360],"trp":["yw",1970],"tlw":["way",11339],"trw":["iran",85],"lp":["way","win","ary","aki","akin","away","rain","arin","arry","ray","rian","arni","rary","anyw","wy"],"rp":["yw","nary","inar","nyw","kay"]},"84":{"input":[3,5,7],"tlp":["sin",21536],"trp":["im",93559],"tlw":["sin",306],"trw":["my",40423],"lp":["sin","sy","sim","smi","ssin"],"rp":["im","mi","my","ys","min","ins","nsi","mis","ims","nis","miss","mys","imi","insi","mmi"]},"85":{"input":[1,3,5,7],"tlp":["ays",16554],"trp":["may",9648],"tlw":["say",7781],"trw":["many",8068],"lp":["ays","say","ami","ains","says","asy","aim","sayi","amin","sian","anis","asin"],"rp":["may","many","ima","mai","main","iam","ians","mina"]},"86":{"input":[2,3,5,7],"tlp":["fin",16231],"trp":["inf",5607],"tlw":["firm",690],"trw":["kiss",443],"lp":["fin","ski","rim","rmi","fini","rmy","rmin","skin","firm","risk"],"rp":["inf","mir","nfi","nif","irm","isk","kis","kiss","nifi","mik"]},"87":{"input":[1,2,3,5,7],"tlw":["army",2073],"trw":["mary",586],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["ty",42717],"trp":["ng",301290],"tlw":["by",35333],"lp":["ty","by","tin","ting","bi","gin","gn","ttin"],"rp":["ng","ing","int","nti","ning","ity","ib","ying","ign","nit","yt","nig"]},"89":{"input":[1,4,5,7],"tlp":["ang",16987],"trp":["nati",5202],"tlw":["again",7165],"lp":["ang","gain","tain","gan","pin","ping","aint","anyt","atin","abi","py","pain","pany","ppin","agin","tay","anag"],"rp":["nati","nag","ntai"]},"90":{"input":[2,4,5,7],"tlp":["ring",17926],"trp":["king",26881],"tlw":["city",2930],"trw":["king",2321],"lp":["ring","bri","try","rty","cy","rib","city","cin","ryt","rity","cing","tryi","rinc","brin"],"rp":["king","inc","ick","nci","nic","ntry"]},"91":{"input":[1,2,4,5,7],"tlw":["taking",1995],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["tim",28120],"trp":["ind",31046],"tlw":["sitting",1409],"trw":["mind",4439],"lp":["tim","din","ding","dy","sing","didn","sib","sign"],"rp":["ind","ngs","ndi","ings","inst","idn","mig","ndin","ming","mind","mit","nsid"]},"93":{"input":[1,3,4,5,7],"tlw":["day",8306],"trw":["instant",472],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["find",4695],"trw":["kind",3481],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["asking",940],"trw":["making",2931],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"97":{"input":[1,6,7],"tlp":["au",32369],"trp":["ua",23498],"tlw":["que",92],"trw":["iq",115],"lp":["au","qu","qui","que","qua","quie","quee","quai"],"rp":["ua","equ","equi","eau","eque","iq","equa","iqu","ique","uai","iqui","iae"]},"98":{"input":[2,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["rue",170],"lp":["ru","rie","rrie","rue","zi","rei"],"rp":["ur","eir","ure","eri","ire","iz","uri","ize","ier","erie","urr","uir","uire","eur"]},"99":{"input":[1,2,6,7],"tlp":["requ",3277],"trp":["ura",5813],"tlw":["require",420],"trw":["iraq",73],"lp":["requ","quir","quar","azi","wei","arie","aur","aura","wire","aire"],"rp":["ura","uar","iew","eari","iza","eria","ewi","uare","erwi","iewe"]},"100":{"input":[3,6,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"101":{"input":[1,3,6,7],"tlp":["aus",14032],"trp":["exi",2803],"trw":["usa",134],"lp":["aus","ause","ques","sua","asu","aise","assu","squ","sequ","squa","xu","asie"],"rp":["exi","usa","usua","easi","easu","exis","ixe","isea"]},"102":{"input":[2,3,6,7],"tlp":["fu",24057],"trp":["urs",13334],"tlw":["sure",3684],"trw":["users",252],"lp":["fu","sur","sure","frie","ries","rus","resi","fie","rise","resu","refu"],"rp":["urs","ife","urse","iffe","ief","efu","uf","uff","ures"]},"103":{"input":[1,2,3,6,7],"tlw":["wife",2078],"trw":["easier",513],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ge",97282],"trp":["ut",147044],"tlw":["get",10986],"trw":["iv",292],"lp":["ge","vi","tu","get","gu","tiv","tive","giv","tie","give"],"rp":["ut","iv","ug","ive","eg","ite","ivi","ute","eti","uti"]},"105":{"input":[1,4,6,7],"tlp":["pu",22528],"trp":["up",44081],"tlw":["put",5210],"trw":["up",23594],"lp":["pu","age","put","avi","aug","tua","atu","aut","ativ","pie","quit","gav","gave"],"rp":["up","ega","upp","iva","iate","eati","uat"]},"106":{"input":[2,4,6,7],"tlp":["tur",27983],"trp":["uc",39944],"tlw":["true",2254],"trw":["ice",574],"lp":["tur","cu","gre","ger","ture","tru","rge","riv","cur","ctu","vic","gree","rive","ctiv"],"rp":["uc","ice","eci","ecti","iver","uct"]},"107":{"input":[1,2,4,6,7],"tlw":["great",6807],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["du",19747],"trp":["ide",35753],"tlw":["side",3662],"trw":["used",3487],"lp":["du","side","stu","ges","die","ged","vid","tud","vis","ties"],"rp":["ide","ust","ud","ied","iste","edi","esti","used","uest","ude"]},"109":{"input":[1,3,4,6,7],"tlw":["despite",946],"trw":["idea",2885],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["five",2604],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["arrived",1258],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hi",274759],"trw":["eye",1504],"lp":[],"rp":["hi","un","ey","hin","hey","ye","ine","hei","hu","ien","nu","hy","uni","ein","eye","eni","inu","hun","ney","enin"]},"113":{"input":[1,5,6,7],"tlp":["aine",5046],"trp":["ju",21952],"tlw":["queen",763],"trw":["yeah",918],"lp":["aine","aye","quen","aun","anie","anu"],"rp":["ju","yea","hai","una","eani","jun","nua","yeah","niq","niqu","nqu","hain","june","hani"]},"114":{"input":[2,5,6,7],"tlp":["rien",11605],"trp":["ery",27793],"tlw":["run",1998],"trw":["henry",1546],"lp":["rien","run","zin"],"rp":["ery","heir","ike","urn","hink","urne","erin","hir","urin","hur","niz","yer","urni","hri","ury","key","enry"]},"115":{"input":[1,2,5,6,7],"tlw":["why",6090],"trw":["year",3064],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["shi",11339],"trp":["his",109386],"tlw":["sun",1066],"trw":["his",69304],"lp":["shi","sum","sine"],"rp":["his","him","ime","mu","um","ish","mus","ines","yes","usin","imes","hims","imse","eyes","ishe","hus","ume"]},"117":{"input":[1,3,5,6,7],"tlw":["assume",344],"trw":["human",2178],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["fine",1422],"trw":["mike",918],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["wish",1198],"trw":["years",7833],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ith",80740],"tlw":["but",49620],"trw":["night",4461],"lp":["gh","thi","bu","ght","but","thin","they","thei","vin","ving"],"rp":["ith","igh","ugh","ight","hing","nge","ught","unt","inte","ub"]},"121":{"input":[1,4,5,6,7],"tlw":["anything",3884],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["their",26687],"trw":["every",7264],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["with",67032],"trw":["nature",1587],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["this",36089],"trw":["might",6921],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["game",1331],"trw":["just",14589],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["such",8032],"trw":["much",10233],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["because",9879],"trw":["experience",2559],"lp":[],"rp":[]},"128":{"input":[8],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"129":{"input":[1,8],"tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"bksp","base":"ao"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["ro",170933],"trp":["or",314634],"trw":["or",34654],"lp":["ro","roo","rro","ror","rror"],"rp":["or","oor","orr","orro","oro"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["row",380],"lp":["wo","wor","row","aro","roa","wro","rrow","woo","worr","arro","rao","aor"],"rp":["ow","ora","owa","owar","oar","orw","orwa","orar"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"trw":["'",14271],"lp":["so","soo","sso","s'","s's","ss'","ss's"],"rp":["os","'s","oss","oos","o'","oso","''","o's","'o","oss'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["aso",4273],"trp":["ox",1874],"lp":["aso","asso","a'","xo","a's","soa","aos","a'a","x'","ax'","x's","ax's","axo","saxo"],"rp":["ox","oas","osa","'a","ossa"]},"134":{"input":[2,3,8],"tlp":["fo",133745],"trp":["of",272457],"tlw":["for",70927],"trw":["of",245539],"lp":["fo","for","fro","rso","ros","sor","ross","foo","r'","r's","rof","ffo","ffor","rfo","rfor","sof"],"rp":["of","off","ors","'r"]},"135":{"input":[1,2,3,8],"tlp":["wors",1678],"trp":["ows",4674],"tlw":["sofa",209],"lp":["wors","forw","rows","swo","swor","affo","wso","awso","frow","sofa","rox","aros","ar'","ar's","w'"],"rp":["ows","'w","ofa","oars","ow'"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","too","tto","tot","toot","toto"],"rp":["ot","ott","oot","oto","otto"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["po",68607],"trp":["op",53305],"tlw":["top",1822],"lp":["po","ppo","top","pot","poo","ato","pop","topp","apo","appo","tota","pto"],"rp":["op","opp","oppo","oat","ota","oop","opt","opo"]},"138":{"input":[2,4,8],"tlp":["co",161789],"trp":["ort",28140],"tlw":["root",179],"lp":["co","tor","tro","cor","cro","rot","cto","cco","ctor","roc","ccor","coo","corr","cot"],"rp":["ort","oc","orc","occ","oct","octo"]},"139":{"input":[1,2,4,8],"tlp":["pro",33640],"trp":["orta",4717],"tlw":["two",11667],"lp":["pro","por","two","port","tow","rop","pow","acco","ppor","towa","prop","proc","acro","ppro","coa","crow","wrot"],"rp":["orta","oac","oca"]},"140":{"input":[3,4,8],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","sto","t'","t's","doo","stoo","tood","tod","d'","d's"],"rp":["od","'t","ost","ood","'d","odd","ots","ods","oods","oots"]},"141":{"input":[1,3,4,8],"tlp":["pos",16560],"trp":["oad",3493],"tlw":["stop",1798],"lp":["pos","spo","at'","at's","poss","stop","ppos","ado","toda","post","spot","sop"],"rp":["oad","osp","oda","ops","oast","oops","opos","osop"]},"142":{"input":[2,3,4,8],"tlp":["stor",8576],"trp":["ord",17538],"tlw":["door",3713],"lp":["stor","fort","rod","soc","door","sco","cros","forc","stro","dro","cord","doc","sort","tors","food","dor"],"rp":["ord","oft","ords","orts"]},"143":{"input":[1,2,3,4,8],"tlw":["words",3228],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"l","baseshift":"L","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ll","no","lo","ol","nl","loo","lon","onl","oll","llo","ool","oon","olo","ollo","nno","ono","onn","non","noo"]},"145":{"input":[1,5,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ano","alo","alon","anno","allo","ala"],"rp":["la","jo","lan","nal","ona","onal","lla","nall","olla","oal","njo","ola"]},"146":{"input":[2,5,8],"tlp":["rl",25465],"trp":["ok",35246],"tlw":["roll",381],"trw":["look",5477],"lp":["rl","ron","rol","roll","rok","rno"],"rp":["ok","ook","kno","ork","look","lk","nor","orn","orl","lor","lr","kl","loor","olor"]},"147":{"input":[1,2,5,8],"tlp":["work",16534],"trp":["now",32603],"tlw":["work",8749],"trw":["now",13343],"lp":["work","ral","arl","alk","wal","worl","alw","alwa","won","walk","wl","alr"],"rp":["now","own","know","low","lar","llow","lw","lwa"]},"148":{"input":[3,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["soon",3191],"trw":["mom",1398],"lp":["som","son","sl","sn'","sol"],"rp":["om","mo","n'","ons","ls","mos","mon","on'","los","omm","lso","oom","'m","lm","mom"]},"149":{"input":[1,3,5,8],"tlp":["als",13163],"trp":["las",11287],"tlw":["also",7989],"trw":["man's",744],"lp":["als","also","alm","amo","an'","smal","ason","almo","asn'","sona","amon","sla","sal","alls"],"rp":["las","mal","oma","oman","mall","lass"]},"150":{"input":[2,3,5,8],"tlp":["rom",40627],"trp":["mor",29841],"tlw":["from",35952],"trw":["looks",1175],"lp":["rom","from","fl","form","rson","room","fol","flo","foll","fron","floo"],"rp":["mor","lf","orm","onf","nfo","nfor","morn","oks","ooks"]},"151":{"input":[1,2,3,5,8],"tlw":["woman",3590],"trw":["major",1113],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bo",64448],"trp":["not",62064],"tlw":["bob",306],"trw":["not",43106],"lp":["bo","bl","tl","ttl","bot","ton","tol","boo","blo","bloo"],"rp":["not","lt","ob","nto","ont","ntl","lot","obl","nnot","nob"]},"153":{"input":[1,4,5,8],"tlp":["pl",68379],"trp":["lat",15533],"tlw":["plan",1335],"trw":["job",3249],"lp":["pl","abo","pla","abl","tal","pon","alt","anot","pol","tabl","plan","bla","plo","ppl","bal"],"rp":["lat","opl","lp","job","oba"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["con",43239],"trp":["onc",10039],"tlw":["took",5513],"lp":["con","cl","cont","bro","col","clo","rob","took","bor","book","conc","coll","ctl","ront"],"rp":["onc","ock","loc","ncl","ontr","ntro"]},"155":{"input":[1,2,4,5,8],"tlw":["call",2856],"trw":["local",1100],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["don",16568],"trp":["ld",104617],"tlw":["don't",9569],"trw":["most",10396],"lp":["don","dn'","dn't","don'","dl","sn't","bod","told","tom"],"rp":["ld","n't","old","most","ond","on't","mot","ldn","ldn'","ndo","obs"]},"157":{"input":[1,3,4,5,8],"tlw":["almost",3784],"trw":["last",4981],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["front",2573],"trw":["lord",1049],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["down",11247],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"@","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"161":{"input":[1,6,8],"trp":["oq",59],"lp":[],"rp":["oq"]},"162":{"input":[2,6,8],"tlp":["zo",557],"trp":["ore",43307],"tlw":["zero",137],"trw":["error",228],"lp":["zo","reo","roe","roz","roze","zero"],"rp":["ore","ero","eor","oz","oze","erro","orre","oreo","eror","eroe","oore","orer","ooz","ooze"]},"163":{"input":[1,2,6,8],"tlp":["wore",857],"trp":["owe",15537],"tlw":["wore",747],"trw":["owe",137],"lp":["wore","rowe","woe","azo"],"rp":["owe","ower","ewo","ewor","orea","erwo","oare"]},"164":{"input":[3,6,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe","se'","se's"],"rp":["ose","e'","e's","oes","osse","oose","eso","esso","oses","'e","es'","eos","es's","oe'","oe's"]},"165":{"input":[1,3,6,8],"trp":["easo",4023],"lp":[],"rp":["easo","oxe","oxes","exo"]},"166":{"input":[2,3,6,8],"tlp":["fore",14026],"trp":["efo",11759],"tlw":["rose",1049],"trw":["offer",1014],"lp":["fore","re'","re's","rose","rofe"],"rp":["efo","efor","erso","'re","offe","er'","er's","ere'","orse","erfo","ofe","ofes","e'r","e're","effo"]},"167":{"input":[1,2,3,6,8],"tlw":["we're",1513],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vo",13509],"trp":["ov",46618],"tlw":["vote",203],"lp":["vo","vot","vote","toe","tov","tove"],"rp":["ov","ove","ote","evo","otte","oet","evot","eov","eove","eto","oev","oeve","ovo","oote"]},"169":{"input":[1,4,6,8],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","avo","poe","pote","poet","vato","pov","pove","pope"],"rp":["eop","ope","oppe","epo","ova","eapo","ovat","opea","opte","oope"]},"170":{"input":[2,4,6,8],"tlp":["rov",6005],"trp":["over",21892],"tlw":["cover",700],"trw":["over",12910],"lp":["rov","cov","cove","reco","rote","rove","roce","vor","tore","revo","core","rvo"],"rp":["over","eco","orce","oce","orte","ecor","otec","ecto"]},"171":{"input":[1,2,4,6,8],"tlw":["power",3130],"trw":["operate",192],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["doe",5478],"trp":["e'd",4775],"tlw":["does",3360],"lp":["doe","does","sov"],"rp":["e'd","'v","'ve","oved","ode","osed","oted","otes","edo","esto","et'","et's","odde","oves","e'v","e've","eedo"]},"173":{"input":[1,3,4,6,8],"tlw":["stopped",1419],"trw":["exposed",267],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["force",1513],"trw":["order",2602],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["process",1455],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["le",213808],"trw":["one",30730],"lp":[],"rp":["le","ho","el","one","ell","lle","hel","hol","eel","len","ele","hoo","ole","eno","oh","elo","hool","olle","hole","hon"]},"177":{"input":[1,5,6,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["alone",2184],"trw":["john",1863],"lp":["alle","ale","alen"],"rp":["lea","eal","hal","ela","eall","hall","lean","joh","john","enjo","oje","heal","lane","joe","eale","elea","llea"]},"178":{"input":[2,5,6,8],"tlp":["rel",11908],"trp":["hro",12209],"tlw":["role",950],"trw":["honor",325],"lp":["rel","roke","rle","role","rele"],"rp":["hro","oke","hor","ooke","ler","lre","lke","orke","erl","kel","orne","ller","oken","erno","hook"]},"179":{"input":[1,2,5,6,8],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","sel","sho"],"rp":["ome","les","hos","hose","hom","omen","less","he'","msel","els","emo","home","lose","lem","mome","lse","mone"]},"181":{"input":[1,3,5,6,8],"tlw":["shall",1999],"trw":["male",440],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["feel",4278],"trw":["more",21171],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["women",3612],"trw":["half",2504],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tho",36998],"trp":["oth",46489],"tlw":["both",5084],"trw":["let",4207],"lp":["tho","ble","tle","tel","ttle","bel","vel","tell","both"],"rp":["oth","othe","noth","let","lv","lve","lov","love","entl","elt","elv"]},"185":{"input":[1,4,5,6,8],"tlw":["people",14668],"trw":["help",3633],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["brother",1465],"trw":["other",13909],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["another",6638],"trw":["later",4588],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["those",7914],"trw":["moment",3684],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["that's",4282],"trw":["least",2856],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["before",10203],"trw":["left",5159],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["called",4581],"trw":["learned",1609],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["io",113622],"lp":[],"rp":["io","oi"],"special":"punc"},"193":{"input":[1,7,8],"lp":[],"rp":[]},"194":{"input":[2,7,8],"tlp":["rio",7327],"trp":["ori",8551],"lp":["rio","rior","rrio","roi","rori"],"rp":["ori","ior","iro","orri","irro","orio","iori","oir","oiro"]},"195":{"input":[1,2,7,8],"tlp":["ario",1160],"trp":["owi",4542],"tlw":["warrior",125],"lp":["ario","rowi","airo"],"rp":["owi","oria","iora","oari"]},"196":{"input":[3,7,8],"tlp":["sio",15825],"trp":["i'",14185],"trw":["'i",461],"lp":["sio","ssio","soi","so-"],"rp":["i'","osi","ossi","isio","iso","ois","o-","'i","ios","iosi","oosi","osio","oiso","-o","isso"]},"197":{"input":[1,3,7,8],"tlp":["asio",1897],"trp":["oxi",253],"lp":["asio","xio","aiso"],"rp":["oxi","ixo"]},"198":{"input":[2,3,7,8],"tlp":["riso",1574],"trp":["offi",5584],"trw":["'if",72],"lp":["riso","rofi","rsio","rios","rosi"],"rp":["offi","ifo","ifor","ofi","iors","oris","-fo","isor","-ro","-roo","oirs","isfo","'if","iff'","o-f"]},"199":{"input":[1,2,3,7,8],"tlw":["warriors",145],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["tio",72429],"trp":["og",14040],"tlw":["go",9032],"lp":["tio","go","goo","got","goi","tog","gio","gott","gto","goti"],"rp":["og","itio","oti","otio","ito","ogi","igio","iot","oog","otog"]},"201":{"input":[1,4,7,8],"tlp":["atio",33167],"trp":["opi",2391],"tlw":["ago",1471],"lp":["atio","poi","ptio","ago","goa","ppoi","topi","pio","aigo","goat","gapo"],"rp":["opi","opti","oppi","otia","oga","oati","opag","ogat","ipo"]},"202":{"input":[2,4,7,8],"tlp":["ctio",12347],"trp":["org",5456],"tlw":["torrio",94],"trw":["org",99],"lp":["ctio","gro","cio","tori","rog","rogr","cog","rgo","gor"],"rp":["org","oic","oci","ogr","otic","orit","orti","itor","orig","icio","icto"]},"203":{"input":[1,2,4,7,8],"tlw":["grow",678],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["good",10385],"trp":["it'",8789],"tlw":["good",9480],"trw":["it's",8558],"lp":["good","stio","god","doi","dog","dio","gdo","g'","g's","to-","gods"],"rp":["it'","it's","osit","isto","i'd","oid","odi","iod","isdo"]},"205":{"input":[1,3,4,7,8],"tlw":["gossip",164],"trw":["ipod",68],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["forgot",261],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["radio",638],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["li",155342],"trw":["only",13824],"lp":[],"rp":["li","ly","yo","il","ion","ill","lly","lin","oin","nly","only","lli","oy","ili","ily","oli","llin","yon","illi","nio"]},"209":{"input":[1,5,7,8],"tlp":["ally",22338],"trp":["ial",13366],"tlw":["ally",126],"trw":["lay",1482],"lp":["ally","ali","ail","alli","ainl","anyo"],"rp":["ial","lay","iona","lai","lia","inal","lain","iall","joy","ila","njoy","lian","joi","join"]},"210":{"input":[2,5,7,8],"tlp":["rly",8446],"trp":["lik",24097],"tlw":["roy",83],"trw":["york",1727],"lp":["rly","ril","rli","ryo","ryon"],"rp":["lik","ory","irl","oki","okin","kil","kill","orni","ooki","lki","lkin","orki","kly","yor","orry"]},"211":{"input":[1,2,5,7,8],"tlw":["will",14271],"trw":["okay",1081],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["sion",15757],"trp":["ions",18292],"tlw":["sly",561],"trw":["i'm",6537],"lp":["sion","sil","sly","smil","sli"],"rp":["ions","mil","lis","i'm","omi","y'","onsi","mily","mili","omin","lim","y's","i'l","i'll","ison"]},"213":{"input":[1,3,5,7,8],"tlw":["animal",491],"trw":["mail",328],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["sorry",899],"trw":["mirror",461],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["always",6467],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tion",71969],"trp":["lit",22460],"tlw":["going",6947],"trw":["into",18343],"lp":["tion","gl","tly","til","till","goin","bli"],"rp":["lit","ong","into","long","ling","lig","oing","litt","ittl","ibl","ngl","oint","ntly"]},"217":{"input":[1,4,5,7,8],"tlw":["point",3165],"trw":["national",867],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["girl",2370],"trw":["looking",3174],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["working",2448],"trw":["knowing",919],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["still",7621],"trw":["isn't",1565],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["among",2526],"trw":["lady",1132],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["story",2254],"trw":["morning",2986],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["important",2765],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["ou",377630],"lp":[],"rp":["ou","iou","uo","oui","eou","uou","oue"]},"225":{"input":[1,6,7,8],"tlp":["quo",328],"trp":["iquo",129],"lp":["quo"],"rp":["iquo","oqu","oque"]},"226":{"input":[2,6,7,8],"tlp":["rou",33045],"trp":["our",59933],"trw":["our",14347],"lp":["rou","riou","rrou","rizo"],"rp":["our","erio","orie","uro","erou","euro","urio","orei","urro","orou","ouri","oure","izo","oriz","iour","orru"]},"227":{"input":[1,2,6,7,8],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["sou",7964],"trp":["ous",26493],"lp":["sou","siou"],"rp":["ous","ious","u'","ou'","ouse","usio","esou","oise","ouis","ousi","eous","uous","osu","ouss","us'","usso","ies'"]},"229":{"input":[1,3,6,7,8],"tlw":["sioux",68],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["four",2961],"trw":["ours",177],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wife's",127],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["vio",4502],"trp":["out",63916],"trw":["out",24396],"lp":["vio","voi","toge","tou","viou","gov","gove","geo","vou","goe"],"rp":["out","oug","ovi","oge","oget","utio","ovie","ego","oute","otiv"]},"233":{"input":[1,4,6,7,8],"tlw":["quote",89],"trw":["output",75],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["voice",2628],"trw":["occur",235],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["group",2351],"trw":["europe",720],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["goes",995],"trw":["i've",2219],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["positive",1027],"trw":["opposite",687],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["office",2363],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["support",1196],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["you",104946],"trw":["you",68463],"lp":[],"rp":["you","ul","oul","hou","oun","lu","ile","hil","ely","eli","lie","houl","ull","hile","nou","elie","line","youn","enou","lue"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anyone",1715],"trw":["enjoy",693],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["rule",725],"trw":["your",20504],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["while",7024],"trw":["early",2452],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["smile",1413],"trw":["house",4935],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["anxious",432],"trw":["usually",1445],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["full",2345],"trw":["life",8740],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["families",960],"trw":["meanwhile",361],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["thought",7112],"trw":["little",9495],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["about",23108],"trw":["upon",4442],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["through",8798],"trw":["everyone",2219],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["without",5841],"trw":["large",2557],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["something",7615],"trw":["lives",1641],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["possible",2350],"trw":["immediately",1263],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["could",18061],"trw":["itself",2205],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["especially",1737],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json index d7301ac637..64256c18ec 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"3":{"input":[1,2],"base":",","baseshift":"<","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"4":{"input":[3],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"5":{"input":[1,3],"base":"!","baseshift":"@","tlp":["ae",810],"trp":["ea",216643],"lp":["ae"],"rp":["ea","eea"],"special":"punc"},"6":{"input":[2,3],"base":".","baseshift":">","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"7":{"input":[1,2,3],"lp":[],"rp":[]},"8":{"input":[4],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["ai",104869],"trp":["ia",38456],"tlw":["p",765],"lp":["ai","pa","ap","pp","pi","app","pai","apa","ppi","pap","appi","api","ppa","appa","pip"],"rp":["ia","ip","ipp","ipa","ippi"]},"10":{"input":[2,4],"base":"y","baseshift":"Y","trp":["io",113622],"trw":["y",176],"lp":[],"rp":["io","yo","oi","oy","yi","oyi","oyo"]},"11":{"input":[1,2,4],"tlp":["ay",87083],"trp":["op",53305],"tlw":["pay",1548],"trw":["ya",68],"lp":["ay","po","ppo","poi","ayi","py","pay","ppy","poo","appy","pop","apo"],"rp":["op","opp","ya","oppo","opi","yp","oya","oop"]},"12":{"input":[3,4],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"13":{"input":[1,3,4],"tlp":["pe",115056],"trp":["up",44081],"tlw":["pipe",229],"trw":["up",23594],"lp":["pe","au","pu","ppe","pea","appe","ape","ppea","pie","pape","pee"],"rp":["up","ep","ua","eep","upp","epa","epe","eau","epi"]},"14":{"input":[2,3,4],"trp":["ou",377630],"trw":["you",68463],"lp":[],"rp":["ou","you","ey","ye","iou","eye","uy","oye","eyo","yee","oyee","uo","oui","eou","uou","uyi","yie","uye","oue","oyou"]},"15":{"input":[1,2,3,4],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","aye","pou","popu","poe"],"rp":["eop","ope","yea","oup","upo","uppo","oppe","epo","ype","opu","eapo","opea","oope","opie"]},"16":{"input":[5],"base":"h","baseshift":"H","trw":["h",335],"lp":[],"rp":[]},"17":{"input":[1,5],"base":";","baseshift":":","tlp":["ah",3197],"trp":["ha",357027],"tlw":["ah",458],"trw":["ha",121],"lp":["ah","aha"],"rp":["ha"],"special":"punc"},"18":{"input":[2,5],"base":"b","baseshift":"B","tlp":["bo",64448],"trp":["ho",160810],"tlw":["b",695],"trw":["oh",2847],"lp":["bo","boo","bb","bob","bobb","bbo"],"rp":["ho","ob","hoo","oh","hb","hbo","obo","obb","oho"]},"19":{"input":[1,2,5],"tlp":["ab",55519],"trp":["oba",3176],"lp":["ab","ba","abo","bab","boa","abb","aba","aboa","aho"],"rp":["oba","obab","hab","hao","oah","habb"]},"20":{"input":[3,5],"base":"j","baseshift":"J","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","je","eh","hee","ehe","ej","eje"]},"21":{"input":[1,3,5],"tlp":["aj",1718],"trp":["hea",22882],"lp":["aj","ahe","ahea","aje"],"rp":["hea","ja","eha","jea","eah","hae","ehea"]},"22":{"input":[2,3,5],"tlp":["be",175052],"trp":["jo",17794],"tlw":["be",44932],"trw":["job",3249],"lp":["be","bee","beh","bj","bje","bbe"],"rp":["jo","job","eb","joh","obe","obj","obje","oj","oje","eho","hoe","joe","ebo","heo"]},"23":{"input":[1,2,3,5],"tlp":["bea",5725],"trp":["joa",569],"tlw":["abee",97],"lp":["bea","beha","ajo","abe","abbe","abea","abee"],"rp":["joa","eba","eab","eeab","habe"]},"24":{"input":[4,5],"base":"f","baseshift":"F","tlp":["fi",67126],"trp":["hi",274759],"tlw":["f",277],"trw":["if",25154],"lp":["fi","ff","ffi","fif"],"rp":["hi","if","iff","ifi","iffi","hif","hf","ih"]},"25":{"input":[1,4,5],"tlp":["fa",47251],"trp":["hap",14305],"trw":["hip",126],"lp":["fa","af","ph","fai","aff","phi","aph","pha","ffa","affa","ffai","affi","pf","fia"],"rp":["hap","happ","hip","hai","hia","hipp"]},"26":{"input":[2,4,5],"tlp":["fo",133745],"trp":["of",272457],"tlw":["by",35333],"trw":["of",245539],"lp":["fo","by","bi","foo","boy","ffo","fy"],"rp":["of","off","ib","hy","offi","yb","ibi","hoi","ybo","ifo","hio","ofi","oof"]},"27":{"input":[1,2,4,5],"tlp":["abi",3591],"trp":["hop",4723],"tlw":["baby",848],"trw":["happy",1895],"lp":["abi","pho","ayb","phy","aby","baby","pab","apab","affo","bay","babi","aphy","bai"],"rp":["hop","habi","oph","iab","hopi","ophy","hopp"]},"28":{"input":[3,4,5],"tlp":["fe",67683],"trp":["ef",36973],"tlw":["fee",65],"trw":["huh",118],"lp":["fe","fu","ffe","fee","fie"],"rp":["ef","hei","ju","hu","ife","iffe","eff","ief","efu","uf","uff","efe","ehi","hie","effe"]},"29":{"input":[1,3,4,5],"tlp":["fea",4050],"trp":["eph",1305],"trw":["heap",97],"lp":["fea","afe","phe","affe","fau","pfu","pef"],"rp":["eph","jap","japa","hape","hau","heap","ephe","efea","eaf","ufa","jai","heep","uph"]},"30":{"input":[2,3,4,5],"tlp":["bu",70306],"trp":["hou",45889],"tlw":["buy",1026],"trw":["joy",650],"lp":["bu","bou","fou","bef","befo","bei","bui","behi"],"rp":["hou","hey","ub","efo","offe","oub","ibe","joy","ybe","joi","ubj","ubje"]},"31":{"input":[1,2,3,4,5],"tlw":["pub",80],"trw":["hope",1489],"lp":[],"rp":[]},"32":{"input":[6],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"33":{"input":[1,6],"base":"(","baseshift":"[","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","att","tat","tta","atta","ata","taa","ataa"],"rp":[],"special":"punc"},"34":{"input":[2,6],"base":"w","baseshift":"W","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","wo","tw","too","two","tow","woo","tto","tot","wt","ww","www","wow"],"rp":["ot","ow","ott","oot","oto","otto","owt"]},"35":{"input":[1,2,6],"tlp":["wa",198379],"trp":["owa",3731],"lp":["wa","aw","awa","wat","towa","ato","tota","twa","atto","tato","atoo","awo","toa","aot"],"rp":["owa","oat","ota","otta","otat"]},"36":{"input":[3,6],"base":"c","baseshift":"C","tlp":["te",259049],"trp":["et",117117],"tlw":["c",872],"trw":["et",324],"lp":["te","ce","ct","tte","cc","tc","cte","cce","tee","tec","tect"],"rp":["et","ec","ect","ett","eet","ece","ette","ete","ecte"]},"37":{"input":[1,3,6],"tlp":["ca",118675],"trp":["eat",31678],"tlw":["act",1387],"trw":["eat",1112],"lp":["ca","ac","ate","act","ace","atte","tea","cat","acc","atc","tate","tac","cate","acte","acce"],"rp":["eat","eca","eac","eate","eta"]},"38":{"input":[2,3,6],"tlp":["co",161789],"trp":["ew",37100],"tlw":["we",33258],"trw":["owe",137],"lp":["co","we","wee","twe","twee","cto","cco","coo"],"rp":["ew","oc","owe","eco","ote","etw","etwe","oce","occ","oct","octo","otte"]},"39":{"input":[1,2,3,6],"tlp":["wea",5512],"trp":["oac",2483],"tlw":["coat",590],"lp":["wea","acco","watc","wate","coa","acto","weat","coat","coac","awe","aco","coca","cato"],"rp":["oac","oca","occa","ewa","ocat","ocea","eato"]},"40":{"input":[4,6],"base":"k","baseshift":"K","tlp":["ti",213739],"trp":["it",311028],"trw":["it",92474],"lp":["ti","tti","tit","titi","ttit","tk"],"rp":["it","ki","ik","iti","itt","itti","kit","iki","kitt","kt"]},"41":{"input":[1,4,6],"tlp":["ati",45742],"trp":["ita",7797],"tlw":["tip",221],"trw":["kaa",57],"lp":["ati","ak","pt","tak","tai","aki","pat","ait","tia","tati","apt","pti","pit","taki","pati","pta"],"rp":["ita","iat","ka","itat"]},"42":{"input":[2,4,6],"tlp":["wi",119378],"trp":["ok",35246],"tlw":["took",5513],"trw":["kitty",157],"lp":["wi","wit","tio","ty","took","tty","twi"],"rp":["ok","ook","ity","itio","yt","oti","owi","oki","ooki","otio","yw","ky","ito"]},"43":{"input":[1,2,4,6],"tlp":["atio",33167],"trp":["opt",1183],"tlw":["way",11339],"trw":["okay",1081],"lp":["atio","way","away","top","pow","wai","wait","ptio","tay","pot","typ","pok","topp","wak","pty"],"rp":["opt","oka","kay","okay","ywa"]},"44":{"input":[3,4,6],"tlp":["tu",53060],"trp":["ut",147044],"tlw":["cut",1451],"trw":["ice",574],"lp":["tu","ck","ci","cu","cti","tic","tie"],"rp":["ut","ic","ke","uc","ike","ice","ite","ick","eci","ecti","ute","eti","ici"]},"45":{"input":[1,3,4,6],"tlp":["ake",27987],"trp":["ica",19163],"tlw":["take",7122],"trw":["keep",3496],"lp":["ake","ack","cau","take","pec","cia","acti","put","tua","pect","atu","pic","cap","aut","cep","cept"],"rp":["ica","ecau","ept","eak"]},"46":{"input":[2,3,4,6],"tlp":["cou",38026],"trp":["out",63916],"tlw":["city",2930],"trw":["out",24396],"lp":["cou","wou","ctio","cy","city","week","cio","ciou","tou"],"rp":["out","oke","ock","ooke","yet","oic","oice","oci","iew","utio","ety"]},"47":{"input":[1,2,3,4,6],"tlw":["type",863],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"d","baseshift":"D","tlp":["th",1104883],"trp":["ht",56378],"tlw":["th",802],"lp":["th","dd","dh","thd","ddh","tth"],"rp":["ht","hd","hth","htt"]},"49":{"input":[1,5,6],"tlp":["ad",140314],"trp":["hat",148416],"tlw":["that",110865],"trw":["had",63389],"lp":["ad","tha","that","da","ath","add","dat","dad","ada","data","atth","dha","ddha","thda","dadd"],"rp":["hat","had","hatt","hda","hath"]},"50":{"input":[2,5,6],"tlp":["wh",148489],"trp":["oth",46489],"tlw":["who",23669],"trw":["how",14162],"lp":["wh","do","tho","who","dow","bot","bod","both","doo","tood","bt","wd","tod"],"rp":["oth","od","how","ood","hot","odd","owd"]},"51":{"input":[1,2,5,6],"tlp":["wha",30534],"trp":["oad",3493],"tlw":["what",26770],"trw":["oath",137],"lp":["wha","what","tab","bat","bad","ado","batt","toda","boat","adow","dwa","daw","bath","bta","tba","atho"],"rp":["oad","oda","hado","obta"]},"52":{"input":[3,5,6],"tlp":["the",718961],"trp":["ed",326541],"tlw":["the",506536],"trw":["ed",253],"lp":["the","de","ch","ted","ded","che","tch","ced","dec","cted","ched","dde","dee"],"rp":["ed","eth","eed","hed","ethe","jec","ject"]},"53":{"input":[1,3,5,6],"tlp":["cha",21540],"trp":["ead",29380],"tlw":["death",2323],"trw":["each",6050],"lp":["cha","ach","ade","dea","athe","ated","atch","ache","tead","deat","aced","dead","date"],"rp":["ead","each","head","eath","eade","jac","hate"]},"54":{"input":[2,3,5,6],"tlp":["whe",44709],"trp":["othe",34663],"tlw":["bed",1960],"trw":["object",689],"lp":["whe","bec","bet","cho","wed","doe","choo","betw","bed","beco","bett","bjec","whet","doc","doct"],"rp":["othe","howe","owed","ode","ojec"]},"55":{"input":[1,2,3,5,6],"tlw":["watch",1263],"trw":["jaw",167],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["hit",1079],"lp":["di","thi","ft","did","dif","diff","dit","tif","diti","fit","ddi","fift"],"rp":["id","ith","hit","ift","idd","ithi","kid","idi"]},"57":{"input":[1,4,5,6],"tlp":["aid",27860],"trp":["hapt",2000],"tlw":["paid",1096],"trw":["ida",198],"lp":["aid","aft","fat","adi","fath","dia","path","diat","taf","taff","addi","paid","pid","dai","adit","fait","aith"],"rp":["hapt","ida","hak"]},"58":{"input":[2,4,5,6],"tlp":["with",75749],"trp":["yth",7557],"tlw":["with",67032],"lp":["with","whi","dy","why","body","book","bit","whit","doi","thy","wif","food","wid","foot"],"rp":["yth","ythi","itho","ody","othi","oft"]},"59":{"input":[1,2,4,5,6],"tlw":["day",8306],"trw":["habit",454],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["thei",26847],"trp":["ide",35753],"tlw":["feet",2131],"trw":["effect",1185],"lp":["thei","du","fte","chi","fic","ffic","die","duc","tud"],"rp":["ide","ich","hic","ked","hich","uch","ud","ied","edi","ethi","uth"]},"61":{"input":[1,3,4,5,6],"tlw":["face",4765],"trw":["idea",2885],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["but",49620],"trw":["office",2363],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["about",23108],"trw":["hoped",506],"lp":[],"rp":[]},"64":{"input":[7],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"65":{"input":[1,7],"base":"'","baseshift":"\"","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["'",14271],"lp":["an","ann","an'","ana","anna","a'","a'a","aan"],"rp":["na","n'","nan","nna","''","'a","nann","'an","'n"],"special":"punc"},"66":{"input":[2,7],"base":"q","baseshift":"Q","trp":["on",380429],"tlw":["q",103],"trw":["on",61313],"lp":[],"rp":["on","no","oon","nno","ono","onn","non","noo","noon","nq","onq","nnon","oq"]},"67":{"input":[1,2,7],"tlp":["ano",7268],"trp":["on'",11539],"trw":["o'",138],"lp":["ano","anno","aq","anon","anq"],"rp":["on'","ona","o'","oan","onna","onan","noa","'no","oan'","'o"]},"68":{"input":[3,7],"base":"v","baseshift":"V","tlp":["ve",240401],"trp":["en",361122],"tlw":["v",386],"trw":["even",12216],"lp":["ve","ven"],"rp":["en","ne","ev","eve","een","even","ene","nev","nv","neve","nee","nne","nve","enn","nen","nven","enne","env"]},"69":{"input":[1,3,7],"tlp":["av",63772],"trp":["e'",16794],"tlw":["van",633],"lp":["av","ave","va","ane","van","anne","aven","ava"],"rp":["e'","ean","eav","nea","'v","'ve","eave","en'","ena","eva","ne'","nav"]},"70":{"input":[2,3,7],"tlp":["vo",13509],"trp":["one",63385],"tlw":["von",319],"trw":["one",30730],"lp":["vo","von"],"rp":["one","ov","ove","eq","eno","onv","eon","eone","onve","onne","evo","nov","nvo","none","nove","nnov","onen","eov"]},"71":{"input":[1,2,3,7],"tlp":["avo",2634],"trp":["one'",1039],"lp":["avo","aneo"],"rp":["one'","ova","nova","eano","eavo","oe'","eona","oane","ovna"]},"72":{"input":[4,7],"base":"x","baseshift":"X","tlp":["xi",4595],"trp":["in",644105],"tlw":["x",233],"trw":["in",155002],"lp":["xi","xin","xii","xiii"],"rp":["in","ni","nin","ini","inn","ix","nni","inin","nnin","inni","nx","nxi","nix","ixi","ixin"]},"73":{"input":[1,4,7],"tlp":["ain",43995],"trp":["i'",14185],"tlw":["pain",1250],"trw":["'i",461],"lp":["ain","xp","ani","pan","pin","xa","pain","ppin","pani","aini","ax","anin","xan","apan","anx"],"rp":["i'","ina","ian","nia","inan"]},"74":{"input":[2,4,7],"trp":["ion",94353],"trw":["nixon",129],"lp":[],"rp":["ion","ny","oin","yin","yon","nio","oni","nion","ox","nyo","nyon","yn","iq","ony","nny","inno","iny","inio","ino","niq"]},"75":{"input":[1,2,4,7],"tlp":["any",30867],"trp":["iona",6976],"tlw":["any",10758],"trw":["opinion",667],"lp":["any","pon","poin","ayin","pany","anyo","apon","anio","xpo","any'","ay'","ppon"],"rp":["iona","y'","opin","yan","onia","ny'","iano","yna"]},"76":{"input":[3,4,7],"tlp":["vi",54014],"trp":["un",97406],"tlw":["vi",155],"trw":["nine",768],"lp":["vi","vin","vie"],"rp":["un","iv","ive","ex","ine","ien","nu","ivi","uni","ein","eni","inu","iev","inv","evi","ieve","nex"]},"77":{"input":[1,3,4,7],"tlp":["pen",17197],"trp":["exp",16071],"tlw":["avenue",408],"trw":["i've",2219],"lp":["pen","xpe","avi","avin","aine","ppen","pene","pine","aun"],"rp":["exp","expe","u'","exa","iva","i'v","i've","epen","una","eani","eavi"]},"78":{"input":[2,3,4,7],"tlp":["qu",27187],"trp":["oun",39137],"tlw":["queen",763],"trw":["union",600],"lp":["qu","qui","que","vio","voi","viou","quen"],"rp":["oun","equ","nou","ovi","youn","ney","enou","yone","oney","equi","eque","ovin","ovie"]},"79":{"input":[1,2,3,4,7],"tlw":["anyone",1715],"trw":["upon",4442],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"g","baseshift":"G","tlp":["gh",90668],"trp":["ng",301290],"tlw":["g",298],"lp":["gh","gn","gg"],"rp":["ng","hn","nh","ngn","ngh","hnn"]},"81":{"input":[1,5,7],"tlp":["ag",47829],"trp":["han",36890],"tlw":["gang",279],"trw":["hang",373],"lp":["ag","ga","ang","aga","gan","anag","gna","gag","agg","g'","agn","agan","gang"],"rp":["han","hang","nag","nha","nga","ngag","ng'"]},"82":{"input":[2,5,7],"tlp":["go",53049],"trp":["ong",22252],"tlw":["go",9032],"lp":["go","goo","gon","bon","gno","gho","ghb","ghbo","goog"],"rp":["ong","og","hon","ohn","ogn","nob","hono","nobo","oog","nb","hno"]},"83":{"input":[1,2,5,7],"tlp":["ban",5102],"trp":["nab",1526],"tlw":["ago",1471],"trw":["noah",100],"lp":["ban","ago","goa","bag","aban","agon","gab","bona","bagh"],"rp":["nab","ho'","onab","oga","nhab","ogan","onag","'b","noah","ohn'","'oh"]},"84":{"input":[3,5,7],"tlp":["ge",97282],"trp":["hen",50214],"tlw":["gene",85],"trw":["egg",150],"lp":["ge","gen","gene","gge","ghe","gne","veh"],"rp":["hen","eg","nge","eng","ege","nj","enj","enge","neg","hene","egg","egen","nhe"]},"85":{"input":[1,3,5,7],"tlp":["age",21698],"trp":["hav",41867],"tlw":["gave",3038],"trw":["have",35739],"lp":["age","ange","gav","gave","agen","gage","vag"],"rp":["hav","have","he'","ega","egan","nage","heav","eag","ehav","jan","enga","jean","jane"]},"86":{"input":[2,3,5,7],"tlp":["been",20749],"trp":["oge",4232],"tlw":["been",20749],"trw":["john",1863],"lp":["been","beg","ben","gone","gov","bov","bove","gove","bene","geo","bv","goe"],"rp":["oge","onge","hone","john","njo","enjo","ego","obv"]},"87":{"input":[1,2,3,5,7],"tlw":["began",3725],"trw":["joan",332],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gi",33313],"trp":["ing",245338],"tlw":["fig",732],"trw":["high",3405],"lp":["gi","fin","gin","fig","ging"],"rp":["ing","ig","hin","igh","hing","ning","nf","ign","nig","nigh","hig","high","inf","ngi","ngin"]},"89":{"input":[1,4,5,7],"tlp":["gai",12716],"trp":["iga",1887],"tlw":["again",7165],"trw":["hanging",518],"lp":["gai","gain","agai","ping","fina","agi","agin","aig","gani","fan","gina","aigh","pag","angi","gia","aign"],"rp":["iga","iag","igna","nfa"]},"90":{"input":[2,4,5,7],"tlp":["goi",7117],"trp":["ying",10969],"tlw":["going",6947],"trw":["ongoing",108],"lp":["goi","goin","big","gy","bin","gio","bing","box"],"rp":["ying","oing","onf","nfo","info","onfi","ogni","ogi","igio","igno","ogy","ighb"]},"91":{"input":[1,2,4,5,7],"tlw":["paying",444],"trw":["hoping",381],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gu",19194],"trp":["ug",51619],"tlw":["give",3971],"trw":["evening",1505],"lp":["gu","ving","giv","give","gue","fiv","five","fun","gine"],"rp":["ug","ugh","eing","ung","eig","hun","egi","eigh","ugg","ehin","egin"]},"93":{"input":[1,3,4,5,7],"tlw":["page",587],"trw":["having",3594],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["being",7746],"trw":["enough",4614],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["phone",1178],"trw":["heavy",1152],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"r","baseshift":"R","tlp":["rt",81050],"trp":["nt",218499],"tlw":["r",211],"lp":["rt","tr","rn","rr","tn","ttr","rtn","rtr","rnt"],"rp":["nt","ntr","nr"]},"97":{"input":[1,6,7],"tlp":["ar",265629],"trp":["'t",37625],"tlw":["ran",1611],"lp":["ar","ra","ant","art","tra","tan","rat","ran","t'","arr","tar","rta","arn","tant","ara"],"rp":["'t","n't","nat","nta","'r"]},"98":{"input":[2,6,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["town",2110],"trw":["not",43106],"lp":["ro","wor","wn","tor","ron","tro","row","roo","wr","ton"],"rp":["or","not","now","own","ort","nto","ont","oor","nor","orn"]},"99":{"input":[1,2,6,7],"tlp":["war",17594],"trp":["on't",11002],"tlw":["want",6609],"trw":["narrow",524],"lp":["war","wan","want","aro","anot","roa","raw","rwa","rwar","awar","won'","awn"],"rp":["on't","orta","ora","owar","onta","oar","orwa","orat"]},"100":{"input":[3,6,7],"tlp":["re",464927],"trp":["er",558051],"tlw":["ten",1916],"trw":["never",9168],"lp":["re","ver","ter","cr","ten","rc","ren","ree","rec","tter"],"rp":["er","ere","ent","nc","nce","ever","nte","enc","ence","ner"]},"101":{"input":[1,3,6,7],"tlp":["rea",59674],"trp":["ear",54836],"tlw":["are",29172],"trw":["near",2012],"lp":["rea","are","can","anc","reat","ance","car","rac","ater","rate","crea","ract","arc","care","ante"],"rp":["ear","era","'re","erat","earn"]},"102":{"input":[2,3,6,7],"tlp":["wer",47082],"trp":["ore",43307],"tlw":["were",34909],"trw":["over",12910],"lp":["wer","con","were","cont","wen","went","cor","cro","rov","ween","conc","rew"],"rp":["ore","over","new","onc","once","ower","orc","econ"]},"103":{"input":[1,2,3,6,7],"tlw":["water",2519],"trw":["ocean",381],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ri",146328],"trp":["ir",91496],"tlw":["tin",227],"trw":["ink",130],"lp":["ri","tin","rk","rin","rit","tri","rri","xt","rti","rni","ttin","rnin"],"rp":["ir","int","kin","kn","nti","nk","ink","nit"]},"105":{"input":[1,4,6,7],"tlp":["pr",76723],"trp":["it'",8789],"tlw":["part",4589],"lp":["pr","par","part","pri","rai","air","ari","tain","ark","arri","rati","rp","arti","ria","akin","ank","rain","trai"],"rp":["it'","nati"]},"106":{"input":[2,4,6,7],"tlp":["tion",71969],"trp":["kno",19117],"tlw":["work",8749],"trw":["into",18343],"lp":["tion","ry","work","win","try","rio","rry","tory","rty","wri","writ"],"rp":["kno","into","ork","know","ori","ory","oint","ntio","owin"]},"107":{"input":[1,2,4,6,7],"tlw":["point",3165],"trw":["nation",393],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["turn",2317],"trw":["next",4617],"lp":["ru","tur","rie","tiv","ric","ture","rien","tru","tive","turn"],"rp":["ur","eir","ure","eri","unt","ire","inc","inte","urn","enti"]},"109":{"input":[1,3,4,6,7],"tlw":["taken",2592],"trw":["experience",2559],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["very",10569],"trw":["your",20504],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["power",3130],"trw":["you're",4043],"lp":[],"rp":[]},"112":{"input":[5,6,7],"tlp":["ght",56087],"trp":["nd",415919],"tlw":["dr",852],"trw":["nd",119],"lp":["ght","rd","gr","dr","thr","rg","dn","rth","dg","rh","gt","gth","ddr"],"rp":["nd","hr","nth","ndr","ngt","ngr","ngth"]},"113":{"input":[1,5,6,7],"tlp":["and",307129],"trp":["har",16333],"tlw":["and",266855],"trw":["hand",5168],"lp":["and","ard","than","dn'","dn't","gra","arg","tand","rad","dar","dan","gar","dra","rang"],"rp":["har","hand","'d","hat'","hard","nda"]},"114":{"input":[2,5,6,7],"tlp":["br",30536],"trp":["ord",17538],"tlw":["down",11247],"trw":["north",1391],"lp":["br","don","thro","down","good","bro","gro","got","rob","word","bor","rod","door"],"rp":["ord","ond","hro","noth","hor","org","ndo"]},"115":{"input":[1,2,5,6,7],"tlw":["don't",9569],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ther",83716],"trp":["her",160213],"tlw":["there",23867],"trw":["her",47940],"lp":["ther","red","der","get","then","gre","den","ger","ved","dre","rge","rned"],"rp":["her","here","ned","nde","end","nder","ered","nted"]},"117":{"input":[1,3,5,6,7],"tlw":["great",6807],"trw":["heard",3016],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["when",27718],"trw":["other",13909],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["another",6638],"trw":["edward",463],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["fr",62589],"trp":["ight",39009],"tlw":["think",7751],"trw":["night",4461],"lp":["fr","thin","ting","din","ding","ring","fir","rig","righ","fri","rf","didn","find"],"rp":["ight","ind","king","ndi","hink","idn","ndin"]},"121":{"input":[1,4,5,6,7],"tlw":["didn't",7051],"trw":["i'd",3142],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["for",70927],"trw":["nothing",5093],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["anything",3884],"trw":["ordinary",614],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["their",26687],"trw":["under",4429],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["after",12071],"trw":["happened",1976],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["around",6455],"trw":["opened",1401],"lp":[],"rp":[]},"128":{"input":[8],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"129":{"input":[1,8],"base":"-","baseshift":"_","tlp":["as",286499],"trp":["-s",481],"tlw":["as",63759],"trw":["-",1362],"lp":["as","sa","ass","ssa","assa","asa","sas","saa","ssas","sass"],"rp":["-s","-a"],"special":"punc"},"130":{"input":[2,8],"tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"bksp","base":"os"},"131":{"input":[1,2,8],"tlp":["aso",4273],"trp":["oas",835],"lp":["aso","asso","soa","aos","so-"],"rp":["oas","o-","osa","ossa","-o"]},"132":{"input":[3,8],"base":")","baseshift":"]","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ase",11581],"trp":["eas",23956],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","ases","seas"],"rp":["eas","ease","essa","esea","easa","e-","-e","eass","-se","e-a","-es"]},"134":{"input":[2,3,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe"],"rp":["ose","oes","osse","oose","eso","esso","oses","eos"]},"135":{"input":[1,2,3,8],"trp":["easo",4023],"lp":[],"rp":["easo"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","isis"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["sp",40374],"trp":["ips",2652],"tlw":["pass",1068],"lp":["sp","sai","ps","pas","asi","pass","spi","assi","spa","aps","ais","sia","sap","asp","sapp","ssia"],"rp":["ips","isa","isp","isap"]},"138":{"input":[2,4,8],"tlp":["sio",15825],"trp":["ys",27984],"lp":["sio","sy","ssio","sys","ssy"],"rp":["ys","osi","ossi","isio","iso","ysi","oys","ois","ios","ysis","iosi","yos","yoss","oosi","osio"]},"139":{"input":[1,2,4,8],"tlp":["pos",16560],"trp":["osp",1974],"tlw":["say",7781],"lp":["pos","ays","say","spo","poss","posi","says","ppos","asy","asio","sayi","psy","sop"],"rp":["osp","ops","y-","ospi","oops","opos","osop"]},"140":{"input":[3,4,8],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"141":{"input":[1,3,4,8],"tlp":["spe",18659],"trp":["esp",8233],"tlw":["pause",378],"trw":["usa",134],"lp":["spe","aus","ause","sup","supp","sua","spea","asu","sep","aise","assu","spee","pus"],"rp":["esp","espe","usa","usua","easi","easu","ups"]},"142":{"input":[2,3,4,8],"tlp":["sou",7964],"trp":["ous",26493],"trw":["eyes",5472],"lp":["sou","sey"],"rp":["ous","ious","yes","ouse","eyes","yse","usio","usy","uys","esou","yees","oise","ouis","ousi","eous","eys","uous","osu"]},"143":{"input":[1,2,3,4,8],"tlw":["suppose",803],"trw":["easy",1561],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","tlp":["sh",119750],"trp":["ms",20491],"trw":["m",1273],"lp":["sh","sm","shm","ssm","ssh"],"rp":["ms","mm","hs","hm","mms"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["has",11125],"lp":["am","sha","sam","sma","ash","ama","ams","sham","amm","aham","asm","asha"],"rp":["ma","has","mas","ham","mma","mass","-m","-ma"]},"146":{"input":[2,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["boss",848],"trw":["mom",1398],"lp":["som","sho","bs","sb","bos","smo"],"rp":["om","mo","mb","mos","hos","omm","hom","oom","mom","obs","mmo","ommo","omb","moo"]},"147":{"input":[1,2,5,8],"tlp":["amo",4702],"trp":["oma",6690],"tlw":["bass",106],"trw":["obama",363],"lp":["amo","bas","amb","abs","sba","abso","bass","bam","bama","amba"],"rp":["oma","omma","mba","mbas","homa","omas","obam","hamb","-b","omba"]},"148":{"input":[3,5,8],"tlp":["she",58316],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["she","seem"],"rp":["me","em","hem","eme","hes","mes","hese","eem","mse","mem","ems","mme","eeme","emem","mee","hems","emse","eems"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["mea",9606],"tlw":["same",6718],"trw":["james",771],"lp":["ame","same","ames","ashe","amme"],"rp":["mea","ema","eam","maj","hame","jam","meas","eams","hase","jame","eame","emma","e-m","e-ma","mae"]},"150":{"input":[2,3,5,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","bes","bse","semb"],"rp":["ome","hose","mbe","emb","embe","emo","home","memb","mome","meo","omeo","omes","obse","memo","omme","jobs"]},"151":{"input":[1,2,3,5,8],"tlw":["base",538],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["shi",11339],"trp":["his",109386],"tlw":["fish",451],"trw":["his",69304],"lp":["shi","sim","smi","sf","fis"],"rp":["his","im","mi","him","ish","mis","ims","hims","miss","imi","mmi","imm","mf","ism","isf"]},"153":{"input":[1,4,5,8],"tlp":["ami",8211],"trp":["mp",43386],"tlw":["ship",877],"trw":["map",280],"lp":["ami","fam","fami","ship","amp","simp","fas","aim","ashi","saf","pm"],"rp":["mp","imp","mpa","ima","mai","haps","iam","hips","-f"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["sib",6869],"trp":["my",49697],"tlw":["boys",1175],"trw":["my",40423],"lp":["sib","ssib","sof","sibi","boys","sym","shio"],"rp":["my","omi","mys","ym","mbi","omis","hys","ommi","hysi","omf","mfo","omfo","imb"]},"155":{"input":[1,2,4,5,8],"tlw":["shop",667],"trw":["may",6928],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["sum",4274],"trp":["ime",28758],"tlw":["sum",220],"trw":["jim",446],"lp":["sum","fes","suf","suff"],"rp":["ime","mu","um","jus","mus","imes","imse","ishe","hus","ume","ush","hum","emi","mmu","umm","imme"]},"157":{"input":[1,3,4,5,8],"tlw":["safe",789],"trw":["jump",350],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["busy",647],"trw":["house",4935],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["famous",816],"trw":["maybe",2276],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"z","baseshift":"Z","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","sts","zz","tst","tz","tts"],"rp":[]},"161":{"input":[1,6,8],"tlp":["sta",40389],"trp":["-t",1205],"tlw":["sat",2253],"lp":["sta","ast","stat","sat","az","tas","za","ats","zat","tast","t-","sast","asta","asts","t-s","t-t","azz","zza","tsta"],"rp":["-t"]},"162":{"input":[2,6,8],"tlp":["sto",21671],"trp":["ost",21248],"tlw":["toss",85],"trw":["oz",100],"lp":["sto","ws","sw","stoo","tos","swo","zo","wso","toss","tso","stot"],"rp":["ost","ows","ots","oz","oots","osts","osto","otos","otst"]},"163":{"input":[1,2,6,8],"tlp":["was",117615],"trp":["oast",835],"tlw":["was",112330],"lp":["was","saw","aws","to-","swa","wast","awso","asto","atso","wats","toas","sota"],"rp":["oast","oats","-tw","-two","-to","-to-","-w","-wo"]},"164":{"input":[3,6,8],"tlp":["ste",30114],"trp":["est",36800],"tlw":["set",3472],"lp":["ste","sc","ces","tes","ze","sec","cess","set","cts","cces","test","cs","tse","sett"],"rp":["est","esc","ets","este","ects","eces"]},"165":{"input":[1,3,6,8],"tlp":["cas",7637],"trp":["east",4973],"tlw":["case",2870],"trw":["east",920],"lp":["cas","ates","aste","case","sca","stea","aces","ccas","seat","sac","cast","aze","acts","stac","asc"],"rp":["east","esta","esca","-c","eats"]},"166":{"input":[2,3,6,8],"tlp":["swe",5581],"trp":["ews",3282],"tlw":["west",1068],"lp":["swe","soc","sco","seco","wes","west","cos","cost","ssoc","stoc","swee","scot","sew"],"rp":["ews","oces","otes","oze","esto","oste","osc"]},"167":{"input":[1,2,3,6,8],"tlw":["coast",540],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["sti",24448],"trp":["ist",28091],"tlw":["sit",1264],"trw":["its",10155],"lp":["sti","sk","sit","sist","tis","siti","ski","zi","tsi","tist","sitt","stit"],"rp":["ist","its","ks","iz","isti","isit","ists","itis"]},"169":{"input":[1,4,6,8],"tlp":["ask",11409],"trp":["ista",3836],"tlw":["ask",2497],"lp":["ask","sati","past","spit","azi","zati","stai","stak","atis","task","asti","asks","aski","stia","sak","pts","sita"],"rp":["ista","iza","izat"]},"170":{"input":[2,4,6,8],"tlp":["wis",5185],"trp":["osit",4706],"tlw":["sky",622],"lp":["wis","stio","syst","sity","sty","swi","sky","zy","swit","sito","twis","wist"],"rp":["osit","isto","yst","oks","ooks","izo","osti","isky"]},"171":{"input":[1,2,4,6,8],"tlw":["stop",1798],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["suc",11912],"trp":["ust",31229],"tlw":["success",1485],"lp":["suc","stu","ske","ties","cus","sic","sci","cis","succ","stic","cks"],"rp":["ust","iste","esti","ize","uest","kes","isc","uts","ices"]},"173":{"input":[1,3,4,6,8],"tlw":["speak",1583],"trw":["escape",642],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["weeks",1328],"trw":["keys",254],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spoke",1285],"trw":["opposite",687],"lp":[],"rp":[]},"176":{"input":[5,6,8],"tlp":["ds",32521],"trp":["hts",3276],"lp":["ds","tm","ths","dm","sd","stm","dsh","dds","dst","thm","thst","sht","sth"],"rp":["hts","mst","mt","mth","htm","hst"]},"177":{"input":[1,5,6,8],"tlp":["adm",2373],"trp":["mat",11909],"tlw":["sad",457],"trw":["mad",373],"lp":["adm","dam","ads","sad","shad","tma","adam","amaz","sda","atm","stma","tmas","d-"],"rp":["mat","mad","matt","mast","msta","maz","hast"]},"178":{"input":[2,5,6,8],"tlp":["thos",7914],"trp":["most",15009],"tlw":["show",2474],"trw":["most",10396],"lp":["thos","wom","show","tom","dom","whom","whos","stom","shot","dows","bst","doz","ttom"],"rp":["most","mot","moth","mod","ods","host","oods"]},"179":{"input":[1,2,5,6,8],"tlw":["thomas",561],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["them",24753],"trp":["med",15366],"tlw":["them",21593],"trw":["met",1822],"lp":["them","sed","des","thes","tem","ssed","shed","sch","sted","tme","ches","dem","zed","desc","stem"],"rp":["med","met","meth","emed","meet"]},"181":{"input":[1,3,5,6,8],"tlw":["came",6889],"trw":["made",9696],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["those",7914],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["became",2829],"trw":["matthew",262],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["this",36089],"trp":["mit",4914],"tlw":["this",36089],"trw":["kids",1451],"lp":["this","tim","sid","dis","dist","dmi","tsid","tish","tisf"],"rp":["mit","hist","mid","mist","ids","mitt","midd","kids","mmit","imit","mik"]},"185":{"input":[1,4,5,6,8],"tlw":["said",23960],"trw":["maid",197],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["books",1442],"trw":["myth",226],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["days",3754],"trw":["habits",317],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",17984],"trw":["just",14589],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["asked",5484],"trw":["make",9390],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sometimes",2685],"trw":["outside",2061],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["because",9879],"trw":["empty",823],"lp":[],"rp":[]},"192":{"input":[7,8],"base":"l","baseshift":"L","tlp":["sl",14047],"trp":["ll",183975],"trw":["l",235],"lp":["sl","sn","ssl"],"rp":["ll","ns","ls","nl","lls","ln","lln","nsl","nns"]},"193":{"input":[1,7,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","als","ans","sn'","san","asn","asn'","sla"],"rp":["la","'s","lan","nal","las","'l","'ll","lla","lass","nall","n's"]},"194":{"input":[2,7,8],"tlp":["son",18915],"trp":["lo",103908],"tlw":["soon",3191],"trw":["loss",625],"lp":["son","sol","soon","slo","sons","sq"],"rp":["lo","ol","ons","loo","lon","onl","oll","los","llo","lso","ool","olo","ollo","ols"]},"195":{"input":[1,2,7,8],"tlp":["also",7989],"trp":["onal",8944],"tlw":["also",7989],"trw":["loan",120],"lp":["also","alo","alon","ason","sona","allo","sola","son'"],"rp":["onal","olla","oal","ola","loa","oals","on's","o's","osal","olan","loan","o-n"]},"196":{"input":[3,7,8],"tlp":["sel",25483],"trp":["le",213808],"tlw":["seen",3375],"trw":["less",3333],"lp":["sel","sen","ves","vel"],"rp":["le","el","ell","lle","les","nes","ens","ness","eel","len","less","ele","lv","nse","lve","els"]},"197":{"input":[1,3,7,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["save",729],"trw":["leave",2148],"lp":["alle","ale","val","sav","avel","vas","aves"],"rp":["lea","eal","e's","leas","ela","eall","leav","eans","lean","esn'","e'l","e'll","lane"]},"198":{"input":[2,3,7,8],"tlp":["vol",4101],"trp":["ole",7645],"tlw":["solve",211],"trw":["love",3654],"lp":["vol","velo","volv","sov"],"rp":["ole","lov","love","lose","elo","olle","lone","ones","olv","olve","ello","oesn","onse","nvol","olen","evol"]},"199":{"input":[1,2,3,7,8],"tlw":["alone",2184],"trw":["one's",680],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["sin",21536],"trp":["li",155342],"tlw":["six",1928],"trw":["ill",512],"lp":["sin","sil","ssin","six","sli","xis"],"rp":["li","il","ill","lin","ins","lli","nsi","ili","lis","llin","nis","illi","insi","inis"]},"201":{"input":[1,4,7,8],"tlp":["pl",68379],"trp":["ial",13366],"tlw":["plan",1335],"trw":["i'll",2287],"lp":["pl","pla","ali","ail","ains","plan","pli","xpl","plai","ppl","xpla"],"rp":["ial","lp","lai","lia","inal","lain","iall","lip","ila"]},"202":{"input":[2,4,7,8],"tlp":["sion",15757],"trp":["ly",122921],"tlw":["sly",561],"trw":["only",13824],"lp":["sion","sly"],"rp":["ly","lly","ions","nly","only","ily","oli","onsi","loy","lio","lion","ison","llio","ilo","oil","yl","inly","lyi"]},"203":{"input":[1,2,4,7,8],"tlw":["play",1696],"trw":["lay",1482],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["vis",5954],"trp":["ul",100189],"tlw":["sun",1066],"trw":["live",2131],"lp":["vis","visi","sine"],"rp":["ul","lu","ile","eli","lie","liv","ines","ull","live","usin","elie","line","lue","uil","elli","liev","elin"]},"205":{"input":[1,3,4,7,8],"tlw":["value",1339],"trw":["explain",790],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["soul",950],"trw":["louis",534],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["people",14668],"trw":["usually",1445],"lp":[],"rp":[]},"208":{"input":[5,7,8],"tlp":["gs",15960],"trp":["ngs",13154],"lp":["gs","gl","ghl","ggl","gm","gns","sg","ghs","gnm","ggs"],"rp":["ngs","ngl","lm","nm","hl","nsh","mn","lg","ml","lsh"]},"209":{"input":[1,5,7,8],"tlp":["alm",5014],"trp":["man",42306],"tlw":["small",3786],"trw":["man",9572],"lp":["alm","gla","smal","shal","gam","glan","sag","glas"],"rp":["man","mal","hal","'m","nam","mag","mall","hall","mana","mann","mman","lang"]},"210":{"input":[2,5,7,8],"tlp":["bl",48180],"trp":["mon",15025],"tlw":["song",454],"trw":["long",7506],"lp":["bl","blo","bloo","gol","glo"],"rp":["mon","long","hol","hool","lmo","lmos","obl","log","mong","mbl","mmon","olog","nom","onsh","onom"]},"211":{"input":[1,2,5,7,8],"tlw":["along",3060],"trw":["lab",187],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["ges",7464],"trp":["men",40378],"tlw":["smell",549],"trw":["men",6294],"lp":["ges","gle","vem","gges","veme"],"rp":["men","hel","msel","emen","lem","leg","engl","nme","nmen","ngle","lege","mel","hell","leng","lleg"]},"213":{"input":[1,3,5,7,8],"tlw":["game",1331],"trw":["name",3325],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["someone",3001],"trw":["move",1750],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["able",2600],"trw":["ebola",147],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["fl",14707],"trp":["min",22065],"tlw":["sign",979],"trw":["hill",676],"lp":["fl","sing","sig","sign","fil"],"rp":["min","lf","hil","mil","ling","ings","lif","lig","ligh","mig","migh","ming","lish","mili","nish"]},"217":{"input":[1,4,5,7,8],"tlw":["fall",1195],"trw":["i'm",6537],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["bill",951],"trw":["million",900],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["family",3955],"trw":["many",8068],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["feel",4278],"trw":["life",8740],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["simple",1385],"trw":["help",3633],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["business",3695],"trw":["money",3556],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["possible",2350],"trw":["impossible",978],"lp":[],"rp":[]},"224":{"input":[6,7,8],"tlp":["rs",105128],"trp":["lt",24155],"lp":["rs","tl","str","rl","rst","ttl","rts","rns","rls","stl","rtl","sr"],"rp":["lt","nts","nst","ntl","lr","nstr","lts","nz"]},"225":{"input":[1,6,7,8],"tlp":["t's",15472],"trp":["lat",15533],"tlw":["start",1979],"trw":["last",4981],"lp":["t's","tal","ars","stan","ral","arl","star","stra","sn't","alt","at's","alr","r's","rsta","ants","ras"],"rp":["lat","lar","last","nsta"]},"226":{"input":[2,6,7,8],"tlp":["stor",8576],"trp":["low",16681],"tlw":["sort",1672],"trw":["lot",2713],"lp":["stor","rso","rson","worl","ros","tol","rol","sor","ross","wl","stro"],"rp":["low","llow","ors","orl","lw","lot","lor","nsw","owl"]},"227":{"input":[1,2,6,7,8],"tlw":["wasn't",3475],"trw":["law",1217],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["res",45093],"trp":["ers",54211],"tlw":["tell",4528],"trw":["let",4207],"lp":["res","cl","tle","tel","rse","ser","ttle","rel","ress","cle","ster","rest","tell","serv","sent","rese","stre"],"rp":["ers","ents","let"]},"229":{"input":[1,3,6,7,8],"tlw":["call",2856],"trw":["later",4588],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["well",8952],"trw":["news",1412],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["across",2659],"trw":["local",1100],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["til",13601],"trp":["lik",24097],"tlw":["still",7621],"trw":["list",991],"lp":["til","ris","till","stil","stin","sir"],"rp":["lik","lit","irs","irst","lk","inst","litt","ittl","ilit","irl","list","kil","ntil","kill"]},"233":{"input":[1,4,6,7,8],"tlw":["talk",2625],"trw":["it's",8558],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["will",14271],"trw":["look",5477],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["always",6467],"trw":["national",867],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["since",3793],"trw":["like",19390],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["place",5268],"trw":["natural",1235],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["likely",1530],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["really",4931],"trw":["years",7833],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"tlp":["rm",33028],"trp":["ld",104617],"trw":["mr",4133],"lp":["rm","dl","rds","rld","rms","ghts","rsh","ddl","rtm","rnm"],"rp":["ld","nds","mr","ldn","lth","ldr","ndl","mrs","nths","htl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["that's",4282],"trw":["hands",3247],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["world",6250],"trw":["old",6168],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almost",3784],"trw":["normal",610],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["themselves",2651],"trw":["held",2063],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["called",4581],"trw":["large",2557],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["school",3844],"trw":["more",21171],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["table",2154],"trw":["major",1113],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["first",11244],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["against",4423],"trw":["making",2931],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["from",35952],"trw":["looking",3174],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["probably",2197],"trw":["important",2765],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["felt",4669],"trw":["left",5159],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["perhaps",2737],"trw":["instead",2310],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["looked",5103],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["already",3329],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"3":{"input":[1,2],"base":",","baseshift":"<","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"4":{"input":[3],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"5":{"input":[1,3],"base":"!","baseshift":"@","tlp":["ae",810],"trp":["ea",216643],"lp":["ae"],"rp":["ea","eea"],"special":"punc"},"6":{"input":[2,3],"base":".","baseshift":">","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"7":{"input":[1,2,3],"lp":[],"rp":[]},"8":{"input":[4],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["ai",104869],"trp":["ia",38456],"tlw":["p",765],"lp":["ai","pa","ap","pp","pi","app","pai","apa","ppi","pap","appi","api","ppa","appa","pip"],"rp":["ia","ip","ipp","ipa","ippi"]},"10":{"input":[2,4],"base":"y","baseshift":"Y","trp":["io",113622],"trw":["y",176],"lp":[],"rp":["io","yo","oi","oy","yi","oyi","oyo"]},"11":{"input":[1,2,4],"tlp":["ay",87083],"trp":["op",53305],"tlw":["pay",1548],"trw":["ya",68],"lp":["ay","po","ppo","poi","ayi","py","pay","ppy","poo","appy","pop","apo"],"rp":["op","opp","ya","oppo","opi","yp","oya","oop"]},"12":{"input":[3,4],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"13":{"input":[1,3,4],"tlp":["pe",115056],"trp":["up",44081],"tlw":["pipe",229],"trw":["up",23594],"lp":["pe","au","pu","ppe","pea","appe","ape","ppea","pie","pape","pee"],"rp":["up","ep","ua","eep","upp","epa","epe","eau","epi"]},"14":{"input":[2,3,4],"trp":["ou",377630],"trw":["you",68463],"lp":[],"rp":["ou","you","ey","ye","iou","eye","uy","oye","eyo","yee","oyee","uo","oui","eou","uou","uyi","yie","uye","oue","oyou"]},"15":{"input":[1,2,3,4],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","aye","pou","popu","poe"],"rp":["eop","ope","yea","oup","upo","uppo","oppe","epo","ype","opu","eapo","opea","oope","opie"]},"16":{"input":[5],"base":"h","baseshift":"H","trw":["h",335],"lp":[],"rp":[]},"17":{"input":[1,5],"base":";","baseshift":":","tlp":["ah",3197],"trp":["ha",357027],"tlw":["ah",458],"trw":["ha",121],"lp":["ah","aha"],"rp":["ha"],"special":"punc"},"18":{"input":[2,5],"base":"b","baseshift":"B","tlp":["bo",64448],"trp":["ho",160810],"tlw":["b",695],"trw":["oh",2847],"lp":["bo","boo","bb","bob","bobb","bbo"],"rp":["ho","ob","hoo","oh","hb","hbo","obo","obb","oho"]},"19":{"input":[1,2,5],"tlp":["ab",55519],"trp":["oba",3176],"lp":["ab","ba","abo","bab","boa","abb","aba","aboa","aho"],"rp":["oba","obab","hab","hao","oah","habb"]},"20":{"input":[3,5],"base":"j","baseshift":"J","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","je","eh","hee","ehe","ej","eje"]},"21":{"input":[1,3,5],"tlp":["aj",1718],"trp":["hea",22882],"lp":["aj","ahe","ahea","aje"],"rp":["hea","ja","eha","jea","eah","hae","ehea"]},"22":{"input":[2,3,5],"tlp":["be",175052],"trp":["jo",17794],"tlw":["be",44932],"trw":["job",3249],"lp":["be","bee","beh","bj","bje","bbe"],"rp":["jo","job","eb","joh","obe","obj","obje","oj","oje","eho","hoe","joe","ebo","heo"]},"23":{"input":[1,2,3,5],"tlp":["bea",5725],"trp":["joa",569],"tlw":["abee",97],"lp":["bea","beha","ajo","abe","abbe","abea","abee"],"rp":["joa","eba","eab","eeab","habe"]},"24":{"input":[4,5],"base":"f","baseshift":"F","tlp":["fi",67126],"trp":["hi",274759],"tlw":["f",277],"trw":["if",25154],"lp":["fi","ff","ffi","fif"],"rp":["hi","if","iff","ifi","iffi","hif","hf","ih"]},"25":{"input":[1,4,5],"tlp":["fa",47251],"trp":["hap",14305],"trw":["hip",126],"lp":["fa","af","ph","fai","aff","phi","aph","pha","ffa","affa","ffai","affi","pf","fia"],"rp":["hap","happ","hip","hai","hia","hipp"]},"26":{"input":[2,4,5],"tlp":["fo",133745],"trp":["of",272457],"tlw":["by",35333],"trw":["of",245539],"lp":["fo","by","bi","foo","boy","ffo","fy"],"rp":["of","off","ib","hy","offi","yb","ibi","hoi","ybo","ifo","hio","ofi","oof"]},"27":{"input":[1,2,4,5],"tlp":["abi",3591],"trp":["hop",4723],"tlw":["baby",848],"trw":["happy",1895],"lp":["abi","pho","ayb","phy","aby","baby","pab","apab","affo","bay","babi","aphy","bai"],"rp":["hop","habi","oph","iab","hopi","ophy","hopp"]},"28":{"input":[3,4,5],"tlp":["fe",67683],"trp":["ef",36973],"tlw":["fee",65],"trw":["huh",118],"lp":["fe","fu","ffe","fee","fie"],"rp":["ef","hei","ju","hu","ife","iffe","eff","ief","efu","uf","uff","efe","ehi","hie","effe"]},"29":{"input":[1,3,4,5],"tlp":["fea",4050],"trp":["eph",1305],"trw":["heap",97],"lp":["fea","afe","phe","affe","fau","pfu","pef"],"rp":["eph","jap","japa","hape","hau","heap","ephe","efea","eaf","ufa","jai","heep","uph"]},"30":{"input":[2,3,4,5],"tlp":["bu",70306],"trp":["hou",45889],"tlw":["buy",1026],"trw":["joy",650],"lp":["bu","bou","fou","bef","befo","bei","bui","behi"],"rp":["hou","hey","ub","efo","offe","oub","ibe","joy","ybe","joi","ubj","ubje"]},"31":{"input":[1,2,3,4,5],"tlw":["pub",80],"trw":["hope",1489],"lp":[],"rp":[]},"32":{"input":[6],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"33":{"input":[1,6],"base":"(","baseshift":"[","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","att","tat","tta","atta","ata","taa","ataa"],"rp":[],"special":"punc"},"34":{"input":[2,6],"base":"w","baseshift":"W","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","wo","tw","too","two","tow","woo","tto","tot","wt","ww","www","wow"],"rp":["ot","ow","ott","oot","oto","otto","owt"]},"35":{"input":[1,2,6],"tlp":["wa",198379],"trp":["owa",3731],"lp":["wa","aw","awa","wat","towa","ato","tota","twa","atto","tato","atoo","awo","toa","aot"],"rp":["owa","oat","ota","otta","otat"]},"36":{"input":[3,6],"base":"c","baseshift":"C","tlp":["te",259049],"trp":["et",117117],"tlw":["c",872],"trw":["et",324],"lp":["te","ce","ct","tte","cc","tc","cte","cce","tee","tec","tect"],"rp":["et","ec","ect","ett","eet","ece","ette","ete","ecte"]},"37":{"input":[1,3,6],"tlp":["ca",118675],"trp":["eat",31678],"tlw":["act",1387],"trw":["eat",1112],"lp":["ca","ac","ate","act","ace","atte","tea","cat","acc","atc","tate","tac","cate","acte","acce"],"rp":["eat","eca","eac","eate","eta"]},"38":{"input":[2,3,6],"tlp":["co",161789],"trp":["ew",37100],"tlw":["we",33258],"trw":["owe",137],"lp":["co","we","wee","twe","twee","cto","cco","coo"],"rp":["ew","oc","owe","eco","ote","etw","etwe","oce","occ","oct","octo","otte"]},"39":{"input":[1,2,3,6],"tlp":["wea",5512],"trp":["oac",2483],"tlw":["coat",590],"lp":["wea","acco","watc","wate","coa","acto","weat","coat","coac","awe","aco","coca","cato"],"rp":["oac","oca","occa","ewa","ocat","ocea","eato"]},"40":{"input":[4,6],"base":"k","baseshift":"K","tlp":["ti",213739],"trp":["it",311028],"trw":["it",92474],"lp":["ti","tti","tit","titi","ttit","tk"],"rp":["it","ki","ik","iti","itt","itti","kit","iki","kitt","kt"]},"41":{"input":[1,4,6],"tlp":["ati",45742],"trp":["ita",7797],"tlw":["tip",221],"trw":["kaa",57],"lp":["ati","ak","pt","tak","tai","aki","pat","ait","tia","tati","apt","pti","pit","taki","pati","pta"],"rp":["ita","iat","ka","itat"]},"42":{"input":[2,4,6],"tlp":["wi",119378],"trp":["ok",35246],"tlw":["took",5513],"trw":["kitty",157],"lp":["wi","wit","tio","ty","took","tty","twi"],"rp":["ok","ook","ity","itio","yt","oti","owi","oki","ooki","otio","yw","ky","ito"]},"43":{"input":[1,2,4,6],"tlp":["atio",33167],"trp":["opt",1183],"tlw":["way",11339],"trw":["okay",1081],"lp":["atio","way","away","top","pow","wai","wait","ptio","tay","pot","typ","pok","topp","wak","pty"],"rp":["opt","oka","kay","okay","ywa"]},"44":{"input":[3,4,6],"tlp":["tu",53060],"trp":["ut",147044],"tlw":["cut",1451],"trw":["ice",574],"lp":["tu","ck","ci","cu","cti","tic","tie"],"rp":["ut","ic","ke","uc","ike","ice","ite","ick","eci","ecti","ute","eti","ici"]},"45":{"input":[1,3,4,6],"tlp":["ake",27987],"trp":["ica",19163],"tlw":["take",7122],"trw":["keep",3496],"lp":["ake","ack","cau","take","pec","cia","acti","put","tua","pect","atu","pic","cap","aut","cep","cept"],"rp":["ica","ecau","ept","eak"]},"46":{"input":[2,3,4,6],"tlp":["cou",38026],"trp":["out",63916],"tlw":["city",2930],"trw":["out",24396],"lp":["cou","wou","ctio","cy","city","week","cio","ciou","tou"],"rp":["out","oke","ock","ooke","yet","oic","oice","oci","iew","utio","ety"]},"47":{"input":[1,2,3,4,6],"tlw":["type",863],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"d","baseshift":"D","tlp":["th",1104883],"trp":["ht",56378],"tlw":["th",802],"lp":["th","dd","dh","thd","ddh","tth"],"rp":["ht","hd","hth","htt"]},"49":{"input":[1,5,6],"tlp":["ad",140314],"trp":["hat",148416],"tlw":["that",110865],"trw":["had",63389],"lp":["ad","tha","that","da","ath","add","dat","dad","ada","data","atth","dha","ddha","thda","dadd"],"rp":["hat","had","hatt","hda","hath"]},"50":{"input":[2,5,6],"tlp":["wh",148489],"trp":["oth",46489],"tlw":["who",23669],"trw":["how",14162],"lp":["wh","do","tho","who","dow","bot","bod","both","doo","tood","bt","wd","tod"],"rp":["oth","od","how","ood","hot","odd","owd"]},"51":{"input":[1,2,5,6],"tlp":["wha",30534],"trp":["oad",3493],"tlw":["what",26770],"trw":["oath",137],"lp":["wha","what","tab","bat","bad","ado","batt","toda","boat","adow","dwa","daw","bath","bta","tba","atho"],"rp":["oad","oda","hado","obta"]},"52":{"input":[3,5,6],"tlp":["the",718961],"trp":["ed",326541],"tlw":["the",506536],"trw":["ed",253],"lp":["the","de","ch","ted","ded","che","tch","ced","dec","cted","ched","dde","dee"],"rp":["ed","eth","eed","hed","ethe","jec","ject"]},"53":{"input":[1,3,5,6],"tlp":["cha",21540],"trp":["ead",29380],"tlw":["death",2323],"trw":["each",6050],"lp":["cha","ach","ade","dea","athe","ated","atch","ache","tead","deat","aced","dead","date"],"rp":["ead","each","head","eath","eade","jac","hate"]},"54":{"input":[2,3,5,6],"tlp":["whe",44709],"trp":["othe",34663],"tlw":["bed",1960],"trw":["object",689],"lp":["whe","bec","bet","cho","wed","doe","choo","betw","bed","beco","bett","bjec","whet","doc","doct"],"rp":["othe","howe","owed","ode","ojec"]},"55":{"input":[1,2,3,5,6],"tlw":["watch",1263],"trw":["jaw",167],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["hit",1079],"lp":["di","thi","ft","did","dif","diff","dit","tif","diti","fit","ddi","fift"],"rp":["id","ith","hit","ift","idd","ithi","kid","idi"]},"57":{"input":[1,4,5,6],"tlp":["aid",27860],"trp":["hapt",2000],"tlw":["paid",1096],"trw":["ida",198],"lp":["aid","aft","fat","adi","fath","dia","path","diat","taf","taff","addi","paid","pid","dai","adit","fait","aith"],"rp":["hapt","ida","hak"]},"58":{"input":[2,4,5,6],"tlp":["with",75749],"trp":["yth",7557],"tlw":["with",67032],"lp":["with","whi","dy","why","body","book","bit","whit","doi","thy","wif","food","wid","foot"],"rp":["yth","ythi","itho","ody","othi","oft"]},"59":{"input":[1,2,4,5,6],"tlw":["day",8306],"trw":["habit",454],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["thei",26847],"trp":["ide",35753],"tlw":["feet",2131],"trw":["effect",1185],"lp":["thei","du","fte","chi","fic","ffic","die","duc","tud"],"rp":["ide","ich","hic","ked","hich","uch","ud","ied","edi","ethi","uth"]},"61":{"input":[1,3,4,5,6],"tlw":["face",4765],"trw":["idea",2885],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["but",49620],"trw":["office",2363],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["about",23108],"trw":["hoped",506],"lp":[],"rp":[]},"64":{"input":[7],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"65":{"input":[1,7],"base":"'","baseshift":"\"","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["'",14271],"lp":["an","ann","an'","ana","anna","a'","a'a","aan"],"rp":["na","n'","nan","nna","''","'a","nann","'an","'n"],"special":"punc"},"66":{"input":[2,7],"base":"q","baseshift":"Q","trp":["on",380429],"tlw":["q",103],"trw":["on",61313],"lp":[],"rp":["on","no","oon","nno","ono","onn","non","noo","noon","nq","onq","nnon","oq"]},"67":{"input":[1,2,7],"tlp":["ano",7268],"trp":["on'",11539],"trw":["o'",138],"lp":["ano","anno","aq","anon","anq"],"rp":["on'","ona","o'","oan","onna","onan","noa","'no","oan'","'o"]},"68":{"input":[3,7],"base":"v","baseshift":"V","tlp":["ve",240401],"trp":["en",361122],"tlw":["v",386],"trw":["even",12216],"lp":["ve","ven"],"rp":["en","ne","ev","eve","een","even","ene","nev","nv","neve","nee","nne","nve","enn","nen","nven","enne","env"]},"69":{"input":[1,3,7],"tlp":["av",63772],"trp":["e'",16794],"tlw":["van",633],"lp":["av","ave","va","ane","van","anne","aven","ava"],"rp":["e'","ean","eav","nea","'v","'ve","eave","en'","ena","eva","ne'","nav"]},"70":{"input":[2,3,7],"tlp":["vo",13509],"trp":["one",63385],"tlw":["von",319],"trw":["one",30730],"lp":["vo","von"],"rp":["one","ov","ove","eq","eno","onv","eon","eone","onve","onne","evo","nov","nvo","none","nove","nnov","onen","eov"]},"71":{"input":[1,2,3,7],"tlp":["avo",2634],"trp":["one'",1039],"lp":["avo","aneo"],"rp":["one'","ova","nova","eano","eavo","oe'","eona","oane","ovna"]},"72":{"input":[4,7],"base":"x","baseshift":"X","tlp":["xi",4595],"trp":["in",644105],"tlw":["x",233],"trw":["in",155002],"lp":["xi","xin","xii","xiii"],"rp":["in","ni","nin","ini","inn","ix","nni","inin","nnin","inni","nx","nxi","nix","ixi","ixin"]},"73":{"input":[1,4,7],"tlp":["ain",43995],"trp":["i'",14185],"tlw":["pain",1250],"trw":["'i",461],"lp":["ain","xp","ani","pan","pin","xa","pain","ppin","pani","aini","ax","anin","xan","apan","anx"],"rp":["i'","ina","ian","nia","inan"]},"74":{"input":[2,4,7],"trp":["ion",94353],"trw":["nixon",129],"lp":[],"rp":["ion","ny","oin","yin","yon","nio","oni","nion","ox","nyo","nyon","yn","iq","ony","nny","inno","iny","inio","ino","niq"]},"75":{"input":[1,2,4,7],"tlp":["any",30867],"trp":["iona",6976],"tlw":["any",10758],"trw":["opinion",667],"lp":["any","pon","poin","ayin","pany","anyo","apon","anio","xpo","any'","ay'","ppon"],"rp":["iona","y'","opin","yan","onia","ny'","iano","yna"]},"76":{"input":[3,4,7],"tlp":["vi",54014],"trp":["un",97406],"tlw":["vi",155],"trw":["nine",768],"lp":["vi","vin","vie"],"rp":["un","iv","ive","ex","ine","ien","nu","ivi","uni","ein","eni","inu","iev","inv","evi","ieve","nex"]},"77":{"input":[1,3,4,7],"tlp":["pen",17197],"trp":["exp",16071],"tlw":["avenue",408],"trw":["i've",2219],"lp":["pen","xpe","avi","avin","aine","ppen","pene","pine","aun"],"rp":["exp","expe","u'","exa","iva","i'v","i've","epen","una","eani","eavi"]},"78":{"input":[2,3,4,7],"tlp":["qu",27187],"trp":["oun",39137],"tlw":["queen",763],"trw":["union",600],"lp":["qu","qui","que","vio","voi","viou","quen"],"rp":["oun","equ","nou","ovi","youn","ney","enou","yone","oney","equi","eque","ovin","ovie"]},"79":{"input":[1,2,3,4,7],"tlw":["anyone",1715],"trw":["upon",4442],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"g","baseshift":"G","tlp":["gh",90668],"trp":["ng",301290],"tlw":["g",298],"lp":["gh","gn","gg"],"rp":["ng","hn","nh","ngn","ngh","hnn"]},"81":{"input":[1,5,7],"tlp":["ag",47829],"trp":["han",36890],"tlw":["gang",279],"trw":["hang",373],"lp":["ag","ga","ang","aga","gan","anag","gna","gag","agg","g'","agn","agan","gang"],"rp":["han","hang","nag","nha","nga","ngag","ng'"]},"82":{"input":[2,5,7],"tlp":["go",53049],"trp":["ong",22252],"tlw":["go",9032],"lp":["go","goo","gon","bon","gno","gho","ghb","ghbo","goog"],"rp":["ong","og","hon","ohn","ogn","nob","hono","nobo","oog","nb","hno"]},"83":{"input":[1,2,5,7],"tlp":["ban",5102],"trp":["nab",1526],"tlw":["ago",1471],"trw":["noah",100],"lp":["ban","ago","goa","bag","aban","agon","gab","bona","bagh"],"rp":["nab","ho'","onab","oga","nhab","ogan","onag","'b","noah","ohn'","'oh"]},"84":{"input":[3,5,7],"tlp":["ge",97282],"trp":["hen",50214],"tlw":["gene",85],"trw":["egg",150],"lp":["ge","gen","gene","gge","ghe","gne","veh"],"rp":["hen","eg","nge","eng","ege","nj","enj","enge","neg","hene","egg","egen","nhe"]},"85":{"input":[1,3,5,7],"tlp":["age",21698],"trp":["hav",41867],"tlw":["gave",3038],"trw":["have",35739],"lp":["age","ange","gav","gave","agen","gage","vag"],"rp":["hav","have","he'","ega","egan","nage","heav","eag","ehav","jan","enga","jean","jane"]},"86":{"input":[2,3,5,7],"tlp":["been",20749],"trp":["oge",4232],"tlw":["been",20749],"trw":["john",1863],"lp":["been","beg","ben","gone","gov","bov","bove","gove","bene","geo","bv","goe"],"rp":["oge","onge","hone","john","njo","enjo","ego","obv"]},"87":{"input":[1,2,3,5,7],"tlw":["began",3725],"trw":["joan",332],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gi",33313],"trp":["ing",245338],"tlw":["fig",732],"trw":["high",3405],"lp":["gi","fin","gin","fig","ging"],"rp":["ing","ig","hin","igh","hing","ning","nf","ign","nig","nigh","hig","high","inf","ngi","ngin"]},"89":{"input":[1,4,5,7],"tlp":["gai",12716],"trp":["iga",1887],"tlw":["again",7165],"trw":["hanging",518],"lp":["gai","gain","agai","ping","fina","agi","agin","aig","gani","fan","gina","aigh","pag","angi","gia","aign"],"rp":["iga","iag","igna","nfa"]},"90":{"input":[2,4,5,7],"tlp":["goi",7117],"trp":["ying",10969],"tlw":["going",6947],"trw":["ongoing",108],"lp":["goi","goin","big","gy","bin","gio","bing","box"],"rp":["ying","oing","onf","nfo","info","onfi","ogni","ogi","igio","igno","ogy","ighb"]},"91":{"input":[1,2,4,5,7],"tlw":["paying",444],"trw":["hoping",381],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gu",19194],"trp":["ug",51619],"tlw":["give",3971],"trw":["evening",1505],"lp":["gu","ving","giv","give","gue","fiv","five","fun","gine"],"rp":["ug","ugh","eing","ung","eig","hun","egi","eigh","ugg","ehin","egin"]},"93":{"input":[1,3,4,5,7],"tlw":["page",587],"trw":["having",3594],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["being",7746],"trw":["enough",4614],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["phone",1178],"trw":["heavy",1152],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"r","baseshift":"R","tlp":["rt",81050],"trp":["nt",218499],"tlw":["r",211],"lp":["rt","tr","rn","rr","tn","ttr","rtn","rtr","rnt"],"rp":["nt","ntr","nr"]},"97":{"input":[1,6,7],"tlp":["ar",265629],"trp":["'t",37625],"tlw":["ran",1611],"lp":["ar","ra","ant","art","tra","tan","rat","ran","t'","arr","tar","rta","arn","tant","ara"],"rp":["'t","n't","nat","nta","'r"]},"98":{"input":[2,6,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["town",2110],"trw":["not",43106],"lp":["ro","wor","wn","tor","ron","tro","row","roo","wr","ton"],"rp":["or","not","now","own","ort","nto","ont","oor","nor","orn"]},"99":{"input":[1,2,6,7],"tlp":["war",17594],"trp":["on't",11002],"tlw":["want",6609],"trw":["narrow",524],"lp":["war","wan","want","aro","anot","roa","raw","rwa","rwar","awar","won'","awn"],"rp":["on't","orta","ora","owar","onta","oar","orwa","orat"]},"100":{"input":[3,6,7],"tlp":["re",464927],"trp":["er",558051],"tlw":["ten",1916],"trw":["never",9168],"lp":["re","ver","ter","cr","ten","rc","ren","ree","rec","tter"],"rp":["er","ere","ent","nc","nce","ever","nte","enc","ence","ner"]},"101":{"input":[1,3,6,7],"tlp":["rea",59674],"trp":["ear",54836],"tlw":["are",29172],"trw":["near",2012],"lp":["rea","are","can","anc","reat","ance","car","rac","ater","rate","crea","ract","arc","care","ante"],"rp":["ear","era","'re","erat","earn"]},"102":{"input":[2,3,6,7],"tlp":["wer",47082],"trp":["ore",43307],"tlw":["were",34909],"trw":["over",12910],"lp":["wer","con","were","cont","wen","went","cor","cro","rov","ween","conc","rew"],"rp":["ore","over","new","onc","once","ower","orc","econ"]},"103":{"input":[1,2,3,6,7],"tlw":["water",2519],"trw":["ocean",381],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ri",146328],"trp":["ir",91496],"tlw":["tin",227],"trw":["ink",130],"lp":["ri","tin","rk","rin","rit","tri","rri","xt","rti","rni","ttin","rnin"],"rp":["ir","int","kin","kn","nti","nk","ink","nit"]},"105":{"input":[1,4,6,7],"tlp":["pr",76723],"trp":["it'",8789],"tlw":["part",4589],"lp":["pr","par","part","pri","rai","air","ari","tain","ark","arri","rati","rp","arti","ria","akin","ank","rain","trai"],"rp":["it'","nati"]},"106":{"input":[2,4,6,7],"tlp":["tion",71969],"trp":["kno",19117],"tlw":["work",8749],"trw":["into",18343],"lp":["tion","ry","work","win","try","rio","rry","tory","rty","wri","writ"],"rp":["kno","into","ork","know","ori","ory","oint","ntio","owin"]},"107":{"input":[1,2,4,6,7],"tlw":["point",3165],"trw":["nation",393],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["turn",2317],"trw":["next",4617],"lp":["ru","tur","rie","tiv","ric","ture","rien","tru","tive","turn"],"rp":["ur","eir","ure","eri","unt","ire","inc","inte","urn","enti"]},"109":{"input":[1,3,4,6,7],"tlw":["taken",2592],"trw":["experience",2559],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["very",10569],"trw":["your",20504],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["power",3130],"trw":["you're",4043],"lp":[],"rp":[]},"112":{"input":[5,6,7],"tlp":["ght",56087],"trp":["nd",415919],"tlw":["dr",852],"trw":["nd",119],"lp":["ght","rd","gr","dr","thr","rg","dn","rth","dg","rh","gt","gth","ddr"],"rp":["nd","hr","nth","ndr","ngt","ngr","ngth"]},"113":{"input":[1,5,6,7],"tlp":["and",307129],"trp":["har",16333],"tlw":["and",266855],"trw":["hand",5168],"lp":["and","ard","than","dn'","dn't","gra","arg","tand","rad","dar","dan","gar","dra","rang"],"rp":["har","hand","'d","hat'","hard","nda"]},"114":{"input":[2,5,6,7],"tlp":["br",30536],"trp":["ord",17538],"tlw":["down",11247],"trw":["north",1391],"lp":["br","don","thro","down","good","bro","gro","got","rob","word","bor","rod","door"],"rp":["ord","ond","hro","noth","hor","org","ndo"]},"115":{"input":[1,2,5,6,7],"tlw":["don't",9569],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ther",83716],"trp":["her",160213],"tlw":["there",23867],"trw":["her",47940],"lp":["ther","red","der","get","then","gre","den","ger","ved","dre","rge","rned"],"rp":["her","here","ned","nde","end","nder","ered","nted"]},"117":{"input":[1,3,5,6,7],"tlw":["great",6807],"trw":["heard",3016],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["when",27718],"trw":["other",13909],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["another",6638],"trw":["edward",463],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["fr",62589],"trp":["ight",39009],"tlw":["think",7751],"trw":["night",4461],"lp":["fr","thin","ting","din","ding","ring","fir","rig","righ","fri","rf","didn","find"],"rp":["ight","ind","king","ndi","hink","idn","ndin"]},"121":{"input":[1,4,5,6,7],"tlw":["didn't",7051],"trw":["i'd",3142],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["for",70927],"trw":["nothing",5093],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["anything",3884],"trw":["ordinary",614],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["their",26687],"trw":["under",4429],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["after",12071],"trw":["happened",1976],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["around",6455],"trw":["opened",1401],"lp":[],"rp":[]},"128":{"input":[8],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"129":{"input":[1,8],"base":"-","baseshift":"_","tlp":["as",286499],"trp":["-s",481],"tlw":["as",63759],"trw":["-",1362],"lp":["as","sa","ass","ssa","assa","asa","sas","saa","ssas","sass"],"rp":["-s","-a"],"special":"punc"},"130":{"input":[2,8],"tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"bksp","base":"os"},"131":{"input":[1,2,8],"tlp":["aso",4273],"trp":["oas",835],"lp":["aso","asso","soa","aos","so-"],"rp":["oas","o-","osa","ossa","-o"]},"132":{"input":[3,8],"base":")","baseshift":"]","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ase",11581],"trp":["eas",23956],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","ases","seas"],"rp":["eas","ease","essa","esea","easa","e-","-e","eass","-se","e-a","-es"]},"134":{"input":[2,3,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe"],"rp":["ose","oes","osse","oose","eso","esso","oses","eos"]},"135":{"input":[1,2,3,8],"trp":["easo",4023],"lp":[],"rp":["easo"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","isis"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["sp",40374],"trp":["ips",2652],"tlw":["pass",1068],"lp":["sp","sai","ps","pas","asi","pass","spi","assi","spa","aps","ais","sia","sap","asp","sapp","ssia"],"rp":["ips","isa","isp","isap"]},"138":{"input":[2,4,8],"tlp":["sio",15825],"trp":["ys",27984],"lp":["sio","sy","ssio","sys","ssy"],"rp":["ys","osi","ossi","isio","iso","ysi","oys","ois","ios","ysis","iosi","yos","yoss","oosi","osio"]},"139":{"input":[1,2,4,8],"tlp":["pos",16560],"trp":["osp",1974],"tlw":["say",7781],"lp":["pos","ays","say","spo","poss","posi","says","ppos","asy","asio","sayi","psy","sop"],"rp":["osp","ops","y-","ospi","oops","opos","osop"]},"140":{"input":[3,4,8],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"141":{"input":[1,3,4,8],"tlp":["spe",18659],"trp":["esp",8233],"tlw":["pause",378],"trw":["usa",134],"lp":["spe","aus","ause","sup","supp","sua","spea","asu","sep","aise","assu","spee","pus"],"rp":["esp","espe","usa","usua","easi","easu","ups"]},"142":{"input":[2,3,4,8],"tlp":["sou",7964],"trp":["ous",26493],"trw":["eyes",5472],"lp":["sou","sey"],"rp":["ous","ious","yes","ouse","eyes","yse","usio","usy","uys","esou","yees","oise","ouis","ousi","eous","eys","uous","osu"]},"143":{"input":[1,2,3,4,8],"tlw":["suppose",803],"trw":["easy",1561],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","tlp":["sh",119750],"trp":["ms",20491],"trw":["m",1273],"lp":["sh","sm","shm","ssm","ssh"],"rp":["ms","mm","hs","hm","mms"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["has",11125],"lp":["am","sha","sam","sma","ash","ama","ams","sham","amm","aham","asm","asha"],"rp":["ma","has","mas","ham","mma","mass","-m","-ma"]},"146":{"input":[2,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["boss",848],"trw":["mom",1398],"lp":["som","sho","bs","sb","bos","smo"],"rp":["om","mo","mb","mos","hos","omm","hom","oom","mom","obs","mmo","ommo","omb","moo"]},"147":{"input":[1,2,5,8],"tlp":["amo",4702],"trp":["oma",6690],"tlw":["bass",106],"trw":["obama",363],"lp":["amo","bas","amb","abs","sba","abso","bass","bam","bama","amba"],"rp":["oma","omma","mba","mbas","homa","omas","obam","hamb","-b","omba"]},"148":{"input":[3,5,8],"tlp":["she",58316],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["she","seem"],"rp":["me","em","hem","eme","hes","mes","hese","eem","mse","mem","ems","mme","eeme","emem","mee","hems","emse","eems"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["mea",9606],"tlw":["same",6718],"trw":["james",771],"lp":["ame","same","ames","ashe","amme"],"rp":["mea","ema","eam","maj","hame","jam","meas","eams","hase","jame","eame","emma","e-m","e-ma","mae"]},"150":{"input":[2,3,5,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","bes","bse","semb"],"rp":["ome","hose","mbe","emb","embe","emo","home","memb","mome","meo","omeo","omes","obse","memo","omme","jobs"]},"151":{"input":[1,2,3,5,8],"tlw":["base",538],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["shi",11339],"trp":["his",109386],"tlw":["fish",451],"trw":["his",69304],"lp":["shi","sim","smi","sf","fis"],"rp":["his","im","mi","him","ish","mis","ims","hims","miss","imi","mmi","imm","mf","ism","isf"]},"153":{"input":[1,4,5,8],"tlp":["ami",8211],"trp":["mp",43386],"tlw":["ship",877],"trw":["map",280],"lp":["ami","fam","fami","ship","amp","simp","fas","aim","ashi","saf","pm"],"rp":["mp","imp","mpa","ima","mai","haps","iam","hips","-f"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["sib",6869],"trp":["my",49697],"tlw":["boys",1175],"trw":["my",40423],"lp":["sib","ssib","sof","sibi","boys","sym","shio"],"rp":["my","omi","mys","ym","mbi","omis","hys","ommi","hysi","omf","mfo","omfo","imb"]},"155":{"input":[1,2,4,5,8],"tlw":["shop",667],"trw":["may",6928],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["sum",4274],"trp":["ime",28758],"tlw":["sum",220],"trw":["jim",446],"lp":["sum","fes","suf","suff"],"rp":["ime","mu","um","jus","mus","imes","imse","ishe","hus","ume","ush","hum","emi","mmu","umm","imme"]},"157":{"input":[1,3,4,5,8],"tlw":["safe",789],"trw":["jump",350],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["busy",647],"trw":["house",4935],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["famous",816],"trw":["maybe",2276],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"z","baseshift":"Z","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","sts","zz","tst","tz","tts"],"rp":[]},"161":{"input":[1,6,8],"tlp":["sta",40389],"trp":["-t",1205],"tlw":["sat",2253],"lp":["sta","ast","stat","sat","az","tas","za","ats","zat","tast","t-","sast","asta","asts","t-s","t-t","azz","zza","tsta"],"rp":["-t"]},"162":{"input":[2,6,8],"tlp":["sto",21671],"trp":["ost",21248],"tlw":["toss",85],"trw":["oz",100],"lp":["sto","ws","sw","stoo","tos","swo","zo","wso","toss","tso","stot"],"rp":["ost","ows","ots","oz","oots","osts","osto","otos","otst"]},"163":{"input":[1,2,6,8],"tlp":["was",117615],"trp":["oast",835],"tlw":["was",112330],"lp":["was","saw","aws","to-","swa","wast","awso","asto","atso","wats","toas","sota"],"rp":["oast","oats","-tw","-two","-to","-to-","-w","-wo"]},"164":{"input":[3,6,8],"tlp":["ste",30114],"trp":["est",36800],"tlw":["set",3472],"lp":["ste","sc","ces","tes","ze","sec","cess","set","cts","cces","test","cs","tse","sett"],"rp":["est","esc","ets","este","ects","eces"]},"165":{"input":[1,3,6,8],"tlp":["cas",7637],"trp":["east",4973],"tlw":["case",2870],"trw":["east",920],"lp":["cas","ates","aste","case","sca","stea","aces","ccas","seat","sac","cast","aze","acts","stac","asc"],"rp":["east","esta","esca","-c","eats"]},"166":{"input":[2,3,6,8],"tlp":["swe",5581],"trp":["ews",3282],"tlw":["west",1068],"lp":["swe","soc","sco","seco","wes","west","cos","cost","ssoc","stoc","swee","scot","sew"],"rp":["ews","oces","otes","oze","esto","oste","osc"]},"167":{"input":[1,2,3,6,8],"tlw":["coast",540],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["sti",24448],"trp":["ist",28091],"tlw":["sit",1264],"trw":["its",10155],"lp":["sti","sk","sit","sist","tis","siti","ski","zi","tsi","tist","sitt","stit"],"rp":["ist","its","ks","iz","isti","isit","ists","itis"]},"169":{"input":[1,4,6,8],"tlp":["ask",11409],"trp":["ista",3836],"tlw":["ask",2497],"lp":["ask","sati","past","spit","azi","zati","stai","stak","atis","task","asti","asks","aski","stia","sak","pts","sita"],"rp":["ista","iza","izat"]},"170":{"input":[2,4,6,8],"tlp":["wis",5185],"trp":["osit",4706],"tlw":["sky",622],"lp":["wis","stio","syst","sity","sty","swi","sky","zy","swit","sito","twis","wist"],"rp":["osit","isto","yst","oks","ooks","izo","osti","isky"]},"171":{"input":[1,2,4,6,8],"tlw":["stop",1798],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["suc",11912],"trp":["ust",31229],"tlw":["success",1485],"lp":["suc","stu","ske","ties","cus","sic","sci","cis","succ","stic","cks"],"rp":["ust","iste","esti","ize","uest","kes","isc","uts","ices"]},"173":{"input":[1,3,4,6,8],"tlw":["speak",1583],"trw":["escape",642],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["weeks",1328],"trw":["keys",254],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spoke",1285],"trw":["opposite",687],"lp":[],"rp":[]},"176":{"input":[5,6,8],"tlp":["ds",32521],"trp":["hts",3276],"lp":["ds","tm","ths","dm","sd","stm","dsh","dds","dst","thm","thst","sht","sth"],"rp":["hts","mst","mt","mth","htm","hst"]},"177":{"input":[1,5,6,8],"tlp":["adm",2373],"trp":["mat",11909],"tlw":["sad",457],"trw":["mad",373],"lp":["adm","dam","ads","sad","shad","tma","adam","amaz","sda","atm","stma","tmas","d-"],"rp":["mat","mad","matt","mast","msta","maz","hast"]},"178":{"input":[2,5,6,8],"tlp":["thos",7914],"trp":["most",15009],"tlw":["show",2474],"trw":["most",10396],"lp":["thos","wom","show","tom","dom","whom","whos","stom","shot","dows","bst","doz","ttom"],"rp":["most","mot","moth","mod","ods","host","oods"]},"179":{"input":[1,2,5,6,8],"tlw":["thomas",561],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["them",24753],"trp":["med",15366],"tlw":["them",21593],"trw":["met",1822],"lp":["them","sed","des","thes","tem","ssed","shed","sch","sted","tme","ches","dem","zed","desc","stem"],"rp":["med","met","meth","emed","meet"]},"181":{"input":[1,3,5,6,8],"tlw":["came",6889],"trw":["made",9696],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["those",7914],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["became",2829],"trw":["matthew",262],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["this",36089],"trp":["mit",4914],"tlw":["this",36089],"trw":["kids",1451],"lp":["this","tim","sid","dis","dist","dmi","tsid","tish","tisf"],"rp":["mit","hist","mid","mist","ids","mitt","midd","kids","mmit","imit","mik"]},"185":{"input":[1,4,5,6,8],"tlw":["said",23960],"trw":["maid",197],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["books",1442],"trw":["myth",226],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["days",3754],"trw":["habits",317],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",17984],"trw":["just",14589],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["asked",5484],"trw":["make",9390],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sometimes",2685],"trw":["outside",2061],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["because",9879],"trw":["empty",823],"lp":[],"rp":[]},"192":{"input":[7,8],"base":"l","baseshift":"L","tlp":["sl",14047],"trp":["ll",183975],"trw":["l",235],"lp":["sl","sn","ssl"],"rp":["ll","ns","ls","nl","lls","ln","lln","nsl","nns"]},"193":{"input":[1,7,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","als","ans","sn'","san","asn","asn'","sla"],"rp":["la","'s","lan","nal","las","'l","'ll","lla","lass","nall","n's"]},"194":{"input":[2,7,8],"tlp":["son",18915],"trp":["lo",103908],"tlw":["soon",3191],"trw":["loss",625],"lp":["son","sol","soon","slo","sons","sq"],"rp":["lo","ol","ons","loo","lon","onl","oll","los","llo","lso","ool","olo","ollo","ols"]},"195":{"input":[1,2,7,8],"tlp":["also",7989],"trp":["onal",8944],"tlw":["also",7989],"trw":["loan",120],"lp":["also","alo","alon","ason","sona","allo","sola","son'"],"rp":["onal","olla","oal","ola","loa","oals","on's","o's","osal","olan","loan","o-n"]},"196":{"input":[3,7,8],"tlp":["sel",25483],"trp":["le",213808],"tlw":["seen",3375],"trw":["less",3333],"lp":["sel","sen","ves","vel"],"rp":["le","el","ell","lle","les","nes","ens","ness","eel","len","less","ele","lv","nse","lve","els"]},"197":{"input":[1,3,7,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["save",729],"trw":["leave",2148],"lp":["alle","ale","val","sav","avel","vas","aves"],"rp":["lea","eal","e's","leas","ela","eall","leav","eans","lean","esn'","e'l","e'll","lane"]},"198":{"input":[2,3,7,8],"tlp":["vol",4101],"trp":["ole",7645],"tlw":["solve",211],"trw":["love",3654],"lp":["vol","velo","volv","sov"],"rp":["ole","lov","love","lose","elo","olle","lone","ones","olv","olve","ello","oesn","onse","nvol","olen","evol"]},"199":{"input":[1,2,3,7,8],"tlw":["alone",2184],"trw":["one's",680],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["sin",21536],"trp":["li",155342],"tlw":["six",1928],"trw":["ill",512],"lp":["sin","sil","ssin","six","sli","xis"],"rp":["li","il","ill","lin","ins","lli","nsi","ili","lis","llin","nis","illi","insi","inis"]},"201":{"input":[1,4,7,8],"tlp":["pl",68379],"trp":["ial",13366],"tlw":["plan",1335],"trw":["i'll",2287],"lp":["pl","pla","ali","ail","ains","plan","pli","xpl","plai","ppl","xpla"],"rp":["ial","lp","lai","lia","inal","lain","iall","lip","ila"]},"202":{"input":[2,4,7,8],"tlp":["sion",15757],"trp":["ly",122921],"tlw":["sly",561],"trw":["only",13824],"lp":["sion","sly"],"rp":["ly","lly","ions","nly","only","ily","oli","onsi","loy","lio","lion","ison","llio","ilo","oil","yl","inly","lyi"]},"203":{"input":[1,2,4,7,8],"tlw":["play",1696],"trw":["lay",1482],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["vis",5954],"trp":["ul",100189],"tlw":["sun",1066],"trw":["live",2131],"lp":["vis","visi","sine"],"rp":["ul","lu","ile","eli","lie","liv","ines","ull","live","usin","elie","line","lue","uil","elli","liev","elin"]},"205":{"input":[1,3,4,7,8],"tlw":["value",1339],"trw":["explain",790],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["soul",950],"trw":["louis",534],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["people",14668],"trw":["usually",1445],"lp":[],"rp":[]},"208":{"input":[5,7,8],"tlp":["gs",15960],"trp":["ngs",13154],"lp":["gs","gl","ghl","ggl","gm","gns","sg","ghs","gnm","ggs"],"rp":["ngs","ngl","lm","nm","hl","nsh","mn","lg","ml","lsh"]},"209":{"input":[1,5,7,8],"tlp":["alm",5014],"trp":["man",42306],"tlw":["small",3786],"trw":["man",9572],"lp":["alm","gla","smal","shal","gam","glan","sag","glas"],"rp":["man","mal","hal","'m","nam","mag","mall","hall","mana","mann","mman","lang"]},"210":{"input":[2,5,7,8],"tlp":["bl",48180],"trp":["mon",15025],"tlw":["song",454],"trw":["long",7506],"lp":["bl","blo","bloo","gol","glo"],"rp":["mon","long","hol","hool","lmo","lmos","obl","log","mong","mbl","mmon","olog","nom","onsh","onom"]},"211":{"input":[1,2,5,7,8],"tlw":["along",3060],"trw":["lab",187],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["ges",7464],"trp":["men",40378],"tlw":["smell",549],"trw":["men",6294],"lp":["ges","gle","vem","gges","veme"],"rp":["men","hel","msel","emen","lem","leg","engl","nme","nmen","ngle","lege","mel","hell","leng","lleg"]},"213":{"input":[1,3,5,7,8],"tlw":["game",1331],"trw":["name",3325],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["someone",3001],"trw":["move",1750],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["able",2600],"trw":["ebola",147],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["fl",14707],"trp":["min",22065],"tlw":["sign",979],"trw":["hill",676],"lp":["fl","sing","sig","sign","fil"],"rp":["min","lf","hil","mil","ling","ings","lif","lig","ligh","mig","migh","ming","lish","mili","nish"]},"217":{"input":[1,4,5,7,8],"tlw":["fall",1195],"trw":["i'm",6537],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["bill",951],"trw":["million",900],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["family",3955],"trw":["many",8068],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["feel",4278],"trw":["life",8740],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["simple",1385],"trw":["help",3633],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["business",3695],"trw":["money",3556],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["possible",2350],"trw":["impossible",978],"lp":[],"rp":[]},"224":{"input":[6,7,8],"tlp":["rs",105128],"trp":["lt",24155],"lp":["rs","tl","str","rl","rst","ttl","rts","rns","rls","stl","rtl","sr"],"rp":["lt","nts","nst","ntl","lr","nstr","lts","nz"]},"225":{"input":[1,6,7,8],"tlp":["t's",15472],"trp":["lat",15533],"tlw":["start",1979],"trw":["last",4981],"lp":["t's","tal","ars","stan","ral","arl","star","stra","sn't","alt","at's","alr","r's","rsta","ants","ras"],"rp":["lat","lar","last","nsta"]},"226":{"input":[2,6,7,8],"tlp":["stor",8576],"trp":["low",16681],"tlw":["sort",1672],"trw":["lot",2713],"lp":["stor","rso","rson","worl","ros","tol","rol","sor","ross","wl","stro"],"rp":["low","llow","ors","orl","lw","lot","lor","nsw","owl"]},"227":{"input":[1,2,6,7,8],"tlw":["wasn't",3475],"trw":["law",1217],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["res",45093],"trp":["ers",54211],"tlw":["tell",4528],"trw":["let",4207],"lp":["res","cl","tle","tel","rse","ser","ttle","rel","ress","cle","ster","rest","tell","serv","sent","rese","stre"],"rp":["ers","ents","let"]},"229":{"input":[1,3,6,7,8],"tlw":["call",2856],"trw":["later",4588],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["well",8952],"trw":["news",1412],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["across",2659],"trw":["local",1100],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["til",13601],"trp":["lik",24097],"tlw":["still",7621],"trw":["list",991],"lp":["til","ris","till","stil","stin","sir"],"rp":["lik","lit","irs","irst","lk","inst","litt","ittl","ilit","irl","list","kil","ntil","kill"]},"233":{"input":[1,4,6,7,8],"tlw":["talk",2625],"trw":["it's",8558],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["will",14271],"trw":["look",5477],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["always",6467],"trw":["national",867],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["since",3793],"trw":["like",19390],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["place",5268],"trw":["natural",1235],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["likely",1530],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["really",4931],"trw":["years",7833],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"tlp":["rm",33028],"trp":["ld",104617],"trw":["mr",4133],"lp":["rm","dl","rds","rld","rms","ghts","rsh","ddl","rtm","rnm"],"rp":["ld","nds","mr","ldn","lth","ldr","ndl","mrs","nths","htl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["that's",4282],"trw":["hands",3247],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["world",6250],"trw":["old",6168],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almost",3784],"trw":["normal",610],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["themselves",2651],"trw":["held",2063],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["called",4581],"trw":["large",2557],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["school",3844],"trw":["more",21171],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["table",2154],"trw":["major",1113],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["first",11244],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["against",4423],"trw":["making",2931],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["from",35952],"trw":["looking",3174],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["probably",2197],"trw":["important",2765],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["felt",4669],"trw":["left",5159],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["perhaps",2737],"trw":["instead",2310],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["looked",5103],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["already",3329],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json index 054183678a..44a1a08813 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",286499],"tlw":["was",112330],"lp":["as","wa","was","sa","aw","ass","ws","awa","sw","ssa","saw","assa","aws","asa","swa","sas","ww","saa","www","ssas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",129154],"tlw":["e",471],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",216643],"tlw":["x",233],"lp":["ea","ex","xa","exa","xe","exe","ax","ae","axe","eea"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["ed",326541],"tlw":["see",9997],"lp":["ed","es","se","de","ess","ds","see","sed","ese","ded","des","eed","sse","dd","ses","ssed","esse","dde","dee","sses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",140314],"tlw":["we",33258],"lp":["ad","we","da","ew","ead","eas","ade","dea","ase","wee","sea","wed","swe","wea","asse","ease","add","ews","eade","essa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","fa","ff","ft","af","att","aft","tat","fat","aff","tta","atta","tf","taf","taff","ata","ffa","affa","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260669],"tlw":["c",872],"lp":["st","ct","ts","sc","cc","tc","sts","cts","cs","tst","cst","tts","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["fact",3233],"lp":["ca","ac","sta","act","tw","ast","fac","cat","acc","cas","stat","wat","sat","atc","fact","tac","sca","watc","sf","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",558051],"tlw":["tree",670],"lp":["er","re","te","et","ere","rt","tr","ter","rr","tte","ree","ett","tter","tre","ret","eet","ert","ette","ete","rte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265629],"tlw":["are",29172],"lp":["ar","ra","fe","fr","rea","ear","are","ate","ef","art","eat","tra","rat","fte","reat","era","ffe","arr","afte","fter"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",144944],"tlw":["set",3472],"lp":["ce","rs","ec","ers","ted","rd","res","est","red","der","cr","ect","ste","dr","str","rc","ces","rst","rec","rse"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["wer",47082],"tlw":["were",34909],"lp":["wer","were","ard","ace","war","car","eca","ars","eac","read","rac","ears","ated","wr","ward","star","twe","stra","crea","reas"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"lp":["an","ann","ana","anna","aq","aan","anq"],"rp":["na","nan","nna","nq","nann"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9321],"trp":["ns",85305],"trw":["j",365],"lp":["sn"],"rp":["ns","nj","nns"]},"19":{"input":[1,2,5],"tlp":["wn",31110],"trp":["ja",7328],"tlw":["san",544],"trw":["jaw",167],"lp":["wn","ans","wan","san","asn","answ","wasn","aj","sq","awn","asan","sna","wns","anw"],"rp":["ja","nsw","jan","nw","nsa","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",361122],"trp":["ne",208843],"tlw":["eye",1504],"trw":["ye",442],"lp":["en","ey","een","ene","eye","enn","enne","eny","enny"],"rp":["ne","ye","ny","nee","nne","ney","yn","nen","nny","yee","yne"]},"21":{"input":[1,3,5],"tlp":["ay",87083],"trp":["yea",12043],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","any","ean","eq","ane","aye","anne","ena","xan","exan","anx","eane","enan","enea"],"rp":["yea","nea","nex","ya","nx","yan"]},"22":{"input":[2,3,5],"tlp":["end",27020],"trp":["nd",415919],"tlw":["eyes",5472],"trw":["need",4397],"lp":["end","dy","den","sen","dn","ens","sy","ense"],"rp":["nd","ned","ys","nde","nes","nds","ness","je","yes","nse","need","nded"]},"23":{"input":[1,2,3,5],"tlp":["and",307129],"trp":["new",18090],"tlw":["and",266855],"trw":["new",10172],"lp":["and","way","day","ays","say","wen","ways","ady","ands","away","eady","ween","dan","days","ande","says","sand"],"rp":["new","nda","nswe"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["fan",245],"lp":["ab","ba","ant","tan","tant","tab","ban","bab","bat","fan","batt","anta","fant","abb"],"rp":["nat","nf","nta","nab","nfa","nant"]},"26":{"input":[2,4,5],"tlp":["bs",6980],"trp":["nc",79565],"tlw":["bc",95],"lp":["bs","bj","sb","bst","bts","bc","bsc","bbs","cn","cb","cbs","stn"],"rp":["nc","nts","nst","nsc","nct","ncts"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["nsta",3211],"tlw":["can",15149],"lp":["can","anc","stan","bac","want","tanc","bas","ants","cann","abs","sba","sban","stab","sant","cq","acq","cans"],"rp":["nsta","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",175052],"trp":["nte",31075],"tlw":["be",44932],"trw":["yet",4449],"lp":["be","ent","ry","ty","rn","by","br","ery","ten","ren","bee","been","ber","rne","ern","bet"],"rp":["nte","ner","nter","ntr"]},"29":{"input":[1,3,4,5],"tlp":["ran",19074],"trp":["year",11125],"tlw":["ran",1611],"trw":["next",4617],"lp":["ran","ary","bef","arn","bea","ante","earn","bra","brea","aren","tran","ften","anyt","bar","rtan","req"],"rp":["year","nera","next","near"]},"30":{"input":[2,3,4,5],"tlp":["enc",25606],"trp":["nce",54473],"tlw":["best",3733],"lp":["enc","ence","bec","ents","cen","cent","rned","dent","sent","bes","renc","bed","cy","tend"],"rp":["nce","nder","nted","jec","ject","nces"]},"31":{"input":[1,2,3,4,5],"tlw":["went",6413],"trw":["years",7833],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",104869],"trp":["ia",38456],"tlw":["aziz",61],"lp":["ai","az","za","zi","azi","zz","azz","zza","ziz","aziz"],"rp":["ia","iz","iza","izi","izz","izza","iai"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sk","sis","ski","sks","ssis"],"rp":["is","ki","ik","ks","isi","iss","issi","isk","kis","kiss","iki","isis","isks"]},"35":{"input":[1,2,6],"tlp":["wi",119378],"trp":["ka",3991],"tlw":["ask",2497],"trw":["kaa",57],"lp":["wi","ak","sai","ask","asi","aki","wis","assi","wai","ais","sia","swi","ssia","wak","asks","aski","siz","asis"],"rp":["ka","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",51232],"trp":["ie",85987],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",9545],"trp":["ize",5603],"tlw":["xiii",65],"trw":["ix",80],"lp":["ze","xi","exi","aze","ez","eez","eiz","eze","eeze","eize","xie","axi","zei","ezi","eezi","eizi"],"rp":["ize","ix","ixe","ixi"]},"38":{"input":[2,3,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["kids",1451],"lp":["di","did","sid","side","dis","esi","edi","die","ek","eek","ske","essi"],"rp":["id","ke","ide","ike","ked","ies","ied","ise"]},"39":{"input":[1,2,3,6],"tlp":["ake",27987],"trp":["idea",4816],"tlw":["said",23960],"trw":["idea",2885],"lp":["ake","aid","said","eak","aske","adi","dia","akes","week","six","zed","eadi","easi","edia","xis","aise"],"rp":["idea","iew","ized","ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",213739],"trp":["it",311028],"tlw":["tv",551],"trw":["it",92474],"lp":["ti","vi","tiv","tti","tit","vit","tivi","viv","titi","ttit","viti","tv"],"rp":["it","iv","iti","itt","ivi","itti","itiv","ivit"]},"41":{"input":[1,4,6],"tlp":["fi",67126],"trp":["if",58122],"tlw":["fit",689],"trw":["if",25154],"lp":["fi","av","ati","va","tai","ffi","avi","ait","fai","tia","tati","ativ","vat","tif"],"rp":["if","iff","ita","ift","iat","ifi"]},"42":{"input":[2,4,6],"tlp":["ck",51278],"trp":["ic",118179],"tlw":["sit",1264],"trw":["its",10155],"lp":["ck","ci","sti","cti","tic","sit","cit","vis","vic","sist","sic","ctiv","visi","tis"],"rp":["ic","ist","its","ick","ici","ict"]},"43":{"input":[1,2,4,6],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"trw":["isaac",209],"lp":["wit","ack","tak","fic","cia","acti","ffic","wait","tica","sati","cati","wif","taki","fici","aci"],"rp":["ica","ista","icat","ific","icia"]},"44":{"input":[3,4,6],"tlp":["ve",240401],"trp":["ir",91496],"tlw":["ever",4714],"trw":["ive",85],"lp":["ve","ri","ver","ev","eve","ever","eir","rie","eri","rit","rv","tri","rri","tive","erv","rti"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ave",49806],"trp":["ife",12017],"tlw":["five",2604],"lp":["ave","fir","rai","air","ari","fri","arri","frie","rati","arti","ria","eav","trai","rtai","fie","eave"],"rp":["ife","iffe","ief","iate"]},"46":{"input":[2,3,4,6],"tlp":["rk",28978],"trp":["ice",25015],"tlw":["tried",2205],"lp":["rk","ved","ves","ric","ris","eci","ecti","serv","esti","ried","cri","rke","cke","vid","ties","vers"],"rp":["ice","irs","irst","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["first",11244],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","hi","ni","hin","nin","ini","inn","nni","inin","hn","nnin","inni","nh","hni","inh","hini","hnn","ih"]},"49":{"input":[1,5,6],"tlp":["ain",43995],"trp":["ha",357027],"tlw":["ah",458],"trw":["han",268],"lp":["ain","ani","ah","aini","zin","anin","aniz","azin"],"rp":["ha","han","ina","ian","hai","niz","nia","iq","inan","niza","nha","niq"]},"50":{"input":[2,5,6],"tlp":["sh",119750],"trp":["his",109386],"tlw":["skin",661],"trw":["his",69304],"lp":["sh","sin","shi","ssin"],"rp":["his","kin","kn","nk","ins","ish","ink","nsi","hink","nis","nki","nkin","hs","nish","inki","insi"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["has",13193],"tlw":["wish",1198],"trw":["has",11125],"lp":["wh","whi","wha","win","sha","ains","akin","ank","ash","wish","ashi","anks","wash","sian","anis","asin","whis"],"rp":["has","hank","ians"]},"52":{"input":[3,5,6],"tlp":["ein",10146],"trp":["he",1036192],"tlw":["eh",128],"trw":["he",92135],"lp":["ein","eh","eni","enin","ehi","ehin"],"rp":["he","hen","hey","ine","hei","ien","hy","yi","yin","hee","hie","nie","nei","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",5046],"trp":["hea",22882],"tlw":["annie",159],"trw":["yeah",918],"lp":["aine","ayi","ayin","eha","eani","zen","anie","ahe","anxi","ahea","eah","zy","zine","azy","xh","exh"],"rp":["hea","nize","nxi","yeah"]},"54":{"input":[2,3,5,6],"tlp":["she",58316],"trp":["ind",31046],"tlw":["she",45928],"trw":["kind",3481],"lp":["she","din","didn","shed"],"rp":["ind","hes","hed","ndi","hese","ines","ined","iend","iden","idn","kne","ndin","ken","nsid","ishe","indi"]},"55":{"input":[1,2,3,5,6],"tlw":["when",27718],"trw":["had",63389],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ith",80740],"tlw":["bit",1490],"trw":["hit",1079],"lp":["th","thi","thin","tin","bi","vin","ttin","bit"],"rp":["ith","ht","int","nti","ib","nv","nit","hit","inv","ntin","nth","ivin"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["hat",521],"lp":["tha","that","ath","fin","than","tain","avin","fath","aint","van","fina","atin","abi","fini"],"rp":["hat","hav","inf","nati","havi","ntai"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["ich",25423],"tlw":["this",36089],"trw":["nick",237],"lp":["ch","this","chi","tch","sib","chin","sch","ssib","stin","sinc","cin"],"rp":["ich","hic","hich","inc","inst","nch","nci","nic","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["with",67032],"trw":["jack",1623],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",718961],"trp":["her",160213],"tlw":["the",506536],"trw":["her",47940],"lp":["the","ther","they","ven","thei","very","rin","thr","even","then","eth","enti","rien"],"rp":["her","here","heir","hr","ity","inte","nev"]},"61":{"input":[1,3,4,5,6],"tlw":["father",3696],"trw":["have",35739],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",9773],"trw":["interest",1336],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["where",9655],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["wow",113],"lp":["wo","aso","woo","asso","swo","wso","awso","soa","aos","wow","awo","sow"],"rp":["ow","ows","owa","oas","osa","ossa","owo"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",22601],"trp":["oe",10755],"trw":["-",1362],"lp":["eo","e-"],"rp":["oe","o-","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",296],"trp":["ox",1874],"lp":["xo","exo","e-a","axo"],"rp":["ox","oxe","-a"]},"70":{"input":[2,3,7],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","doe","does","doo","eso","esso","edo"],"rp":["od","ose","ood","oes","ode","osed","odd","osse","ods","oose","oods","odde","oses"]},"71":{"input":[1,2,3,7],"tlp":["dow",14691],"trp":["owe",15537],"tlw":["wood",515],"trw":["owed",149],"lp":["dow","easo","ado","wood","dows","adow","sado","ewo"],"rp":["owe","owed","oad","owd","oda","owde","owds","-da","o-da","oads","oade","oxes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","go","too","goo","got","gg","tog","gt","tto","gott","tot","gto"],"rp":["ot","og","ott","oot","oto","otto","oog","otog"]},"73":{"input":[1,4,7],"tlp":["fo",133745],"trp":["of",272457],"tlw":["ago",1471],"trw":["of",245539],"lp":["fo","ag","ga","aga","foo","gat","tag","ago","ato","ffo","goa","foot","gag","agg","tota"],"rp":["of","off","oft","oat","ota"]},"74":{"input":[2,4,7],"tlp":["co",161789],"trp":["oc",25929],"tlw":["cost",675],"lp":["co","sto","gs","cto","soc","sco","cco","stoo","cog","coo","cos","cost","cot","ssoc"],"rp":["oc","ost","occ","oct","ots","octo"]},"75":{"input":[1,2,4,7],"tlp":["two",12798],"trp":["oac",2483],"tlw":["two",11667],"lp":["two","tow","acco","towa","coa","sag","foc","sof","ssag","soft","acto","stag","cof","coff","coat"],"rp":["oac","oca","occa","oast","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["get",10986],"trw":["or",34654],"lp":["ro","ge","gr","eg","get","gre","rg","tor","ger","tro","roo","rge","gro","rot"],"rp":["or","ore","ort","ote","oor","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",111436],"trp":["orta",4717],"tlw":["for",70927],"trw":["offer",1014],"lp":["for","fro","age","fore","efo","efor","gra","grea","arg","aro","ega","fort","arge","roa","gar","rag"],"rp":["orta","ora","offe","ofte"]},"78":{"input":[2,3,4,7],"tlp":["eco",13557],"trp":["ord",17538],"tlw":["good",9480],"trw":["order",2602],"lp":["eco","good","cor","stor","ges","rso","erso","cro","ged","ros","dg","rod","dge","door","sor","ross"],"rp":["ord","ors","orde","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["words",3228],"trw":["offered",1121],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ou","no","un","oun","nu","nou","oon","nno","unn","ono","onn","non","noo","noon","noun","uo","nnou","onou","unu"]},"81":{"input":[1,5,7],"tlp":["au",32369],"trp":["ua",23498],"lp":["au","qu","ano","qua","anno","aun","anu","anua","quan","quo"],"rp":["ua","ona","una","nua","oan","nqu","onna","uan","onq","onqu"]},"82":{"input":[2,5,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["soon",3191],"trw":["us",10609],"lp":["su","son","sou","ssu","soon","soun","sun","sus","sons"],"rp":["us","ons","ous","ju","jo","jus","uss","usu","nsu","njo","oj"]},"83":{"input":[1,2,5,7],"tlp":["wou",29932],"trp":["now",32603],"tlw":["won",495],"trw":["now",13343],"lp":["wou","aus","won","ason","sua","sona","asu","assu","ajo","squ","squa","woun"],"rp":["now","own","nown","usa","usua","usan","ousa","nows"]},"84":{"input":[3,5,7],"tlp":["eno",5765],"trp":["yo",112940],"trw":["you",68463],"lp":["eno","enou","eu","eon","eone"],"rp":["yo","you","one","ue","oy","yon","youn","yone","oney","uy","uen","oye","nue","une","onne"]},"85":{"input":[1,3,5,7],"tlp":["que",9630],"trp":["oya",1710],"tlw":["anyone",1715],"lp":["que","equ","eau","eque","quen","anyo","quee","equa","xu","exu","xua","exua","aneo","xon"],"rp":["oya","unex","ux","nque","uxu","unea"]},"86":{"input":[2,3,5,7],"tlp":["du",19747],"trp":["und",37128],"tlw":["done",3602],"trw":["use",3572],"lp":["du","don","done","esu"],"rp":["und","use","ound","ud","ond","unde","ues","ouse","used","ody","ude","ndo","odu","onde","udd","ones"]},"87":{"input":[1,2,3,5,7],"tlw":["down",11247],"trw":["owned",326],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",70306],"trp":["ng",301290],"tlw":["but",49620],"trw":["not",43106],"lp":["bu","bo","tu","but","bou","bout","gu","gn"],"rp":["ng","ut","out","not","ug","oug","ong","ob","nto","ont","unt","ub"]},"89":{"input":[1,4,5,7],"tlp":["abo",26472],"trp":["uf",3979],"tlw":["about",23108],"lp":["abo","fu","abou","ang","fou","gan","aug","tua","atu","anot","foun","aut"],"rp":["uf","onf","uff","natu","nfo","nag","oba","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",43239],"trp":["uc",39944],"tlw":["cut",1451],"trw":["just",14589],"lp":["con","cou","cu","suc","cons","cont","stu","coun","bus","cus","ctu","conc"],"rp":["uc","ust","just","ngs","onc","unc","uct","job"]},"91":{"input":[1,2,4,5,7],"tlw":["town",2110],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["rou",33045],"trp":["ur",136165],"tlw":["turn",2317],"trw":["your",20504],"lp":["rou","ru","tur","roug","gen","ture","roun","tru","turn","ron","bro","eng"],"rp":["ur","our","ure","your","nge","urn","ute","nger"]},"93":{"input":[1,3,4,5,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["course",3730],"trw":["once",5524],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["because",9879],"trw":["understand",2238],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",183975],"trw":["oil",657],"lp":[],"rp":["ll","li","io","il","lo","ol","ill","oi","loo","oll","lli","ili","llo","oli","ool","illi","olo","ollo","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ali","ail","alo","allo","ala","aliz","alli"],"rp":["la","ial","lai","lia","lla","liz","iall","ila","olla","oal","ola"]},"98":{"input":[2,6,7],"tlp":["sio",15825],"trp":["ok",35246],"tlw":["skills",834],"trw":["look",5477],"lp":["sio","sl","ssio","sol","sil"],"rp":["ok","ls","ook","lik","look","lk","los","lis","lso","osi","ossi","lls","oki","kil","isio"]},"99":{"input":[1,2,6,7],"tlp":["wil",18445],"trp":["low",16681],"tlw":["will",14271],"trw":["low",1274],"lp":["wil","will","als","alk","also","wal","alw","alwa","walk","wl","wall"],"rp":["low","las","llow","lw","lwa","owi","lass","owl","law"]},"100":{"input":[3,6,7],"tlp":["el",142952],"trp":["le",213808],"tlw":["el",99],"trw":["lie",725],"lp":["el","ell","eli","eel","ele","elie","elo","elli","eeli","ello","elle"],"rp":["le","lle","ile","lie","ole","olle","ille","lee","iel"]},"101":{"input":[1,3,6,7],"tlp":["eal",18892],"trp":["lea",26849],"tlw":["alex",152],"lp":["eal","alle","ale","ela","eall","eali","aile","alex","eale","eliz","xio","elea","ael"],"rp":["lea","lex","lize","lexa","oze","llea","lexi"]},"102":{"input":[2,3,6,7],"tlp":["sel",25483],"trp":["ld",104617],"tlw":["else",2789],"trw":["like",19390],"lp":["sel","dl","els","eld","del","dle"],"rp":["ld","like","old","led","les","oke","lled","ild","less","oked","ooke","lose","ldi","lde"]},"103":{"input":[1,2,3,6,7],"tlw":["well",8952],"trw":["lead",1050],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["tio",72429],"trp":["ig",72061],"tlw":["till",1036],"trw":["lot",2713],"lp":["tio","gi","tl","gl","til","vo","ttl","till","giv"],"rp":["ig","ov","lt","lit","lig","liv","litt","ittl","lv","itio","oti"]},"105":{"input":[1,4,6,7],"tlp":["atio",33167],"trp":["lf",21773],"tlw":["fall",1195],"lp":["atio","tal","fl","gai","agai","alt","val","fol","gla","fig","flo","foll","agi","fil","alit"],"rp":["lf","lat","lif","offi","lati"]},"106":{"input":[2,4,6,7],"tlp":["cl",31724],"trp":["lic",9087],"tlw":["still",7621],"trw":["lost",2029],"lp":["cl","ctio","col","stil","sig","clo","took","clos","stio","cov","coll","soci","ctl"],"rp":["lic","ock","osit","loc","oic","oci","list"]},"107":{"input":[1,2,4,6,7],"tlw":["call",2856],"trw":["last",4981],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",25465],"trp":["ove",39462],"tlw":["tell",4528],"trw":["over",12910],"lp":["rl","tle","tel","ttle","rel","rig","vel","tell","give","rio","elt","rov"],"rp":["ove","over","let","ori","lve","live","orl","love"]},"109":{"input":[1,3,4,6,7],"tlw":["felt",4669],"trw":["life",8740],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["told",5605],"trw":["lives",1641],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["work",8749],"trw":["least",2856],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",160810],"trw":["oh",2847],"lp":[],"rp":["ho","ul","ion","oul","hou","ui","lin","lu","nl","hu","lon","oin","hil","onl","hol","iou","uni","houl","ull","hoo"]},"113":{"input":[1,5,6,7],"tlp":["qui",11723],"trp":["lan",16797],"tlw":["annual",207],"trw":["hall",950],"lp":["qui","alon","alu","qual","ainl","aul"],"rp":["lan","nal","ual","onal","hal","iona","uall","ula","hall","inal","lain","lau","nall","lian"]},"114":{"input":[2,5,6,7],"tlp":["sho",24544],"trp":["kno",19117],"tlw":["soul",950],"trw":["john",1863],"lp":["sho","sion","shou","sul"],"rp":["kno","ions","hos","ious","usi","hous","usin","onsi","lish","hus","okin","ush","lus","lkin","usl","ousl"]},"115":{"input":[1,2,5,6,7],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",17170],"trp":["ly",122921],"trw":["only",13824],"lp":["ely","elin","enl"],"rp":["ly","lly","nly","only","hel","ily","len","hile","line","lue","hole","lone","loy","hone","ully","llen","ule"]},"117":{"input":[1,3,5,6,7],"tlw":["alone",2184],"trw":["lay",1482],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["should",7178],"trw":["house",4935],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["would",27522],"trw":["usually",1445],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ing",245338],"tlw":["thought",7112],"trw":["into",18343],"lp":["gh","tion","ght","bl","tho","ting","thou"],"rp":["ing","igh","oth","ugh","ight","hing","ough","ning","into","ught","houg","long","ling"]},"121":{"input":[1,4,5,6,7],"tlw":["again",7165],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",8032],"trw":["looking",3174],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["without",5841],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["through",8798],"trw":["other",13909],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["another",6638],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["could",18061],"trw":["others",3864],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["already",3329],"trw":["however",3319],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",37015],"trw":["p",765],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",46764],"trp":["pa",72065],"trw":["pa",273],"lp":["ap","app","apa","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",40374],"trp":["ps",13734],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3930],"trp":["pas",8500],"tlw":["sap",81],"trw":["pass",1068],"lp":["spa","aps","sap","asp","sapp","wsp","wspa","spap","assp"],"rp":["pas","pass","pw","pwa","paw","paws"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",39298],"trp":["pe",115056],"trw":["'",14271],"lp":["ep","e'","eep","epe","epp","eppe","eepe"],"rp":["pe","ppe","pee","''","'e","p'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",16071],"trp":["pea",10889],"lp":["xp","exp","appe","xpe","expe","ape","epa","eap","epea","xpa","expa","a'","eape","a'a","x'","ax'"],"rp":["pea","ppea","pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",18659],"trp":["'s",36901],"tlw":["deep",1465],"trw":["'s",213],"lp":["spe","e's","esp","e'd","dep","espe","deep","sep","desp","depe","spee","eps","d'","d's"],"rp":["'s","'d","ped","pped","pes","pse"]},"135":{"input":[1,2,3,8],"tlp":["we'",3765],"trp":["'w",281],"tlw":["we'd",695],"trw":["passed",1693],"lp":["we'","spea","depa","sepa","aspe","ewsp","we'd","weap","aped","weep","wep","apes","apse","swep","a's","xped","espa","dpa"],"rp":["'w","peas"]},"136":{"input":[4,8],"tlp":["tp",256],"trp":["pt",19963],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",4201],"trp":["pat",6411],"tlw":["tap",153],"trw":["pat",193],"lp":["apt","apta","tap","tapp"],"rp":["pat","pta","patt","pf","ptat"]},"138":{"input":[2,4,8],"trp":["pts",388],"lp":[],"rp":["pts","pst","ptc","pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",5240],"trp":["pac",3604],"tlw":["cap",258],"trw":["past",2353],"lp":["cap","capt","spac","scap","capa","apac","spat","fsp","ffsp","caps"],"rp":["pac","past","pact","patc","psta","pats"]},"140":{"input":[3,4,8],"tlp":["t'",15643],"trp":["pr",76723],"trw":["per",611],"lp":["t'","rep","ept","rp","tep","r'","er'","rpr","re'","ere'"],"rp":["pr","'t","per","pre","'r","'re","pte","ppr","pet","pret"]},"141":{"input":[1,3,4,8],"tlp":["at'",5623],"trp":["par",26731],"tlw":["appear",816],"trw":["part",4589],"lp":["at'","xper","epar","rap","appr","aper","apte","repa","xpr","expr","xpre","apar"],"rp":["par","part","pare","pear","pra","perf","pera","para"]},"142":{"input":[2,3,4,8],"tlp":["t's",15472],"trp":["pres",13007],"tlw":["step",1154],"trw":["press",708],"lp":["t's","spec","cep","cept","resp","step","r's","er's","re's","spr","sper","ccep","teps"],"rp":["pres","pec","pers","pect","perc","prec","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["we're",1513],"trw":["perfect",1065],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",43386],"trw":["m",1273],"lp":[],"rp":["mp","mm","nm","mn","pm","np"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","amp","ama","apan","amm","ampa","amn","aman"],"rp":["ma","man","pan","mpa","nam","mpan","mana","mma","mann","mman","nap","map"]},"146":{"input":[2,5,8],"tlp":["sm",13242],"trp":["ms",20491],"trw":["ms",185],"lp":["sm","ssm"],"rp":["ms","nsp","mps","nsm","mns","mms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7005],"trp":["mas",4399],"tlw":["sam",133],"trw":["mass",521],"lp":["sam","sma","ams","span","ansp","amps","snap","asm","assm","ssma"],"rp":["mas","maj","mass","jap","japa","mans","jam","mw","mpas","pans"]},"148":{"input":[3,5,8],"tlp":["em",87362],"trp":["me",235102],"tlw":["enemy",1028],"trw":["my",40423],"lp":["em","eme","eem","emp","emen","eeme","emem"],"rp":["me","my","n'","men","pen","mem","'m","y'","mme","ppen","pene","py","mee"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["may",9648],"tlw":["an'",417],"trw":["many",8068],"lp":["ame","ema","eam","an'","xam","exam","eman","appy","xamp","amen","xpen"],"rp":["may","mea","many","mean","name","pany","pay","pane","man'"]},"150":{"input":[2,3,5,8],"tlp":["dn'",13235],"trp":["med",15366],"tlw":["seemed",4232],"trw":["jem",320],"lp":["dn'","seem","sn'","ems","emed","spen","dem","dm","emse","esn'"],"rp":["med","mes","mse","mys","pend","myse","y's","n's","mmed","pens"]},"151":{"input":[1,2,3,5,8],"tlw":["same",6718],"trw":["made",9696],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",4765],"trp":["mb",19208],"lp":["tm","bm"],"rp":["mb","mpt","ntm","pb","mt","mpb"]},"153":{"input":[1,4,5,8],"tlp":["fam",7099],"trp":["mat",11909],"trw":["mba",123],"lp":["fam","amb","tma","tnam","atm","apab","amat","bam","bama","amba","tam"],"rp":["mat","matt","mf","mba","mpat","pant","pab","mant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",1138],"trp":["mst",943],"lp":["stm"],"rp":["mst","mc","mbs","mpts","mcc","mcs"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",660],"trw":["pants",299],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",33028],"trp":["n't",37419],"tlw":["remember",2277],"trw":["mr",4133],"lp":["rm","rem","emb","erm","tem","embe","reme","rme","temp","tme","tmen"],"rp":["n't","ment","met","mer","mbe","mber","mr","memb","meet"]},"157":{"input":[1,3,4,5,8],"tlw":["army",2073],"trw":["matter",2479],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["spent",1640],"trw":["mrs",2541],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["came",6889],"trw":["parents",2027],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",28303],"lp":[],"rp":["pi","ip","ppi","ipp","ippi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["appi",2174],"trp":["pai",6465],"trw":["pizza",143],"lp":["appi","api"],"rp":["pai","ipa","pia","piz","pizz","iap","ippa"]},"162":{"input":[2,6,8],"tlp":["spi",5949],"trp":["ips",2652],"tlw":["sip",104],"trw":["piss",63],"lp":["spi","sip","ssip","sipp","skip","spis"],"rp":["ips","isp","pis","kp","pk","pki","piss","kip","psi","kipp"]},"163":{"input":[1,2,6,8],"tlp":["spai",637],"trp":["isap",1148],"lp":["spai","wip","aspi","apk","apki","wipi","apis"],"rp":["isap","ispa","kpa"]},"164":{"input":[3,6,8],"tlp":["epi",1744],"trp":["i'",14185],"trw":["'i",461],"lp":["epi","eepi","eppi"],"rp":["i'","pie","ippe","ipe","'i","pipe","ppie","ip'"]},"165":{"input":[1,3,6,8],"tlp":["epai",321],"trp":["iz'",67],"lp":["epai","z'","eapi"],"rp":["iz'"]},"166":{"input":[2,3,6,8],"tlp":["disp",1152],"trp":["keep",4608],"tlw":["spies",180],"trw":["keep",3496],"lp":["disp","espi","dip","spie","epis"],"rp":["keep","i'd","kep","pid","ispe","pied","pies","pedi","iped","ip's","k'","k's","ipes","kesp","psid"]},"167":{"input":[1,2,3,6,8],"tlw":["speak",1583],"trw":["paid",1096],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",610],"trp":["pti",3889],"tlw":["tip",221],"trw":["pit",127],"lp":["tip","tipp"],"rp":["pti","pit","ipt","ipti"]},"169":{"input":[1,4,6,8],"tlp":["apit",605],"trp":["pati",1779],"lp":["apit"],"rp":["pati","pita","ptai","ipat","pav","ptia"]},"170":{"input":[2,4,6,8],"tlp":["cip",2669],"trp":["pic",5474],"tlw":["tips",128],"trw":["pick",801],"lp":["cip","spit","spic","scip","tips","ckp"],"rp":["pic","pick","pict","icip","pici","pitc","pist","pics","ptic"]},"171":{"input":[1,2,4,6,8],"trw":["pack",385],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",2627],"trp":["pri",13942],"tlw":["trip",647],"trw":["i've",2219],"lp":["rip","rpri","epti","trip","ript","e'v","e've"],"rp":["pri","it'","peri","'v","'ve","pir","i'v","i've","priv","piri","prev","pite","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["repair",185],"trw":["private",1010],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",946],"trw":["it's",8558],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["we've",750],"trw":["paris",1353],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",93559],"trw":["him",28423],"lp":[],"rp":["im","mi","him","min","ph","imp","pin","hip","imi","ppin","mmi","imm","phi","mini","hm","nim","mmin","imin","pini","mpi"]},"177":{"input":[1,5,6,8],"tlp":["ami",8211],"trp":["hap",14305],"tlw":["aim",231],"trw":["pain",1250],"lp":["ami","aim","amin","aph","anim","amaz"],"rp":["hap","happ","ima","mai","main","pain","ham","pani","iam","mina","nima","pha","maz","impa"]},"178":{"input":[2,5,6,8],"tlp":["ship",5146],"trp":["mis",8985],"tlw":["ship",877],"trw":["miss",1642],"lp":["ship","sim","smi","simp","simi","shm","spin"],"rp":["mis","ims","hims","miss","hips","ism","mik","insp","ishm","hisp","nspi","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["spanish",469],"trw":["mask",160],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2800],"trp":["ime",28758],"trw":["i'm",6537],"lp":["emi","emin","epin","eph"],"rp":["ime","hem","he'","i'm","mine","hey'","phy","imme","pine","imen","phe","peni","hme","in'","hmen","meh"]},"181":{"input":[1,3,5,6,8],"tlw":["examine",179],"trw":["happy",1895],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["she'd",1495],"trw":["mind",4439],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["shame",796],"trw":["make",9390],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",28120],"trp":["mit",4914],"tlw":["tim",128],"trw":["ibm",109],"lp":["tim","timi","bmi"],"rp":["mit","mbi","mitt","mmit","imit","mbin","ntim","imb","mpti","ptin","mbit","intm","mith","itm","mitm","ptim","pth"]},"185":{"input":[1,4,5,6,8],"trw":["path",946],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",320],"trw":["pitch",164],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["captain",1078],"trw":["match",450],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",21593],"trw":["prevent",380],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["remain",740],"trw":["haven't",641],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["didn't",7051],"trw":["isn't",1565],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["that's",4282],"trw":["perhaps",2737],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",68607],"trw":["pop",223],"lp":[],"rp":["po","op","ppo","opp","oppo","poo","pop","oop","opo","popp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1508],"trp":["opa",186],"lp":["apo","appo"],"rp":["opa","oap"]},"194":{"input":[2,7,8],"tlp":["spo",7683],"trp":["pos",16560],"lp":["spo","sop","spos","sspo","spoo"],"rp":["pos","poss","ppos","osp","ops","oops","opos","osop","pso"]},"195":{"input":[1,2,7,8],"tlp":["soap",132],"trp":["pow",4845],"tlw":["soap",132],"lp":["soap"],"rp":["pow","posa"]},"196":{"input":[3,7,8],"tlp":["eop",15223],"trp":["peo",15223],"trw":["pope",239],"lp":["eop","epo"],"rp":["peo","peop","ope","oppe","o'","poe","oope","pope","oe'","'o","-p"]},"197":{"input":[1,3,7,8],"tlp":["eapo",649],"trp":["opea",428],"lp":["eapo","xpo","expo"],"rp":["opea","-pa"]},"198":{"input":[2,3,7,8],"tlp":["espo",3005],"trp":["pose",4757],"trw":["possessed",333],"lp":["espo","dop"],"rp":["pose","oped","ospe","o's","osep","opes","od'","od's","o'd","oe's","pod","oss'"]},"199":{"input":[1,2,3,7,8],"tlw":["exposed",267],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",6183],"trp":["pot",2394],"tlw":["top",1822],"trw":["pot",221],"lp":["top","topp","toop"],"rp":["pot","opt","pto","pott","ptop"]},"201":{"input":[1,4,7,8],"tlp":["gap",376],"trp":["pag",1322],"tlw":["gap",204],"trw":["potato",74],"lp":["gap","apto","gapo","atop"],"rp":["pag","pota","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",3680],"trp":["post",1282],"tlw":["stop",1798],"trw":["post",644],"lp":["stop","cop","spot","tops","cops","coop","copp","gosp","copt","scop"],"rp":["post","poc","pots","pco"]},"203":{"input":[1,2,4,7,8],"tlw":["gaps",71],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6404],"trp":["pro",33640],"tlw":["report",778],"trw":["poor",1596],"lp":["rop","rope","repo","epor","rpo","ropo","ropp","rpor","roop"],"rp":["pro","por","port","oper","ppor","prop","ppro","prog","poor","prot","orp"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",98],"trw":["page",587],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["stopped",1419],"trw":["process",1455],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["corporate",363],"trw":["power",3130],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",158331],"trw":["up",23594],"lp":[],"rp":["om","mo","up","mu","pu","um","omp","mon","omm","pon","oom","mom","mpo","mou","upp","oup","upo","upon","uppo","num"]},"209":{"input":[1,5,7,8],"tlp":["amo",4702],"trp":["oma",6690],"trw":["mao",108],"lp":["amo","amon","amou","apon","amu","ampu"],"rp":["oma","ompa","oman","uma","uman","omma","pau","manu","mona","mau","upa","napo","mao","opam"]},"210":{"input":[2,5,7,8],"tlp":["som",32033],"trp":["mos",15768],"tlw":["sum",220],"trw":["jump",350],"lp":["som","sup","supp","sum","spon","summ","smo","susp","ssum"],"rp":["mos","mus","pons","mous","mpos","pus","ups","usp","ums","mons","oms"]},"211":{"input":[1,2,5,7,8],"tlw":["woman",3590],"trw":["mason",79],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",6070],"trp":["ome",63421],"trw":["money",3556],"lp":["emo","epu"],"rp":["ome","on'","omen","u'","ou'","you'","open","mome","ume","mone","meo","omeo","meon","memo","omme","umen","ompe","umme"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",15162],"trw":["opened",1401],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["women",3612],"trw":["paused",403],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",5301],"trp":["mot",10460],"tlw":["tom",762],"trw":["put",5210],"lp":["tom","tum","gm","bom","bomb","tup","ttom"],"rp":["mot","put","umb","pub","mont","numb","mong","omb","mout","mput","upt","putt","ptu"]},"217":{"input":[1,4,5,7,8],"tlw":["among",2526],"trw":["obama",363],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",1407],"trw":["most",10396],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["famous",816],"trw":["moscow",341],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["room",5055],"trw":["more",21171],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",35952],"trw":["program",634],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["don't",9569],"trw":["person",3411],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["major",1113],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",68379],"trw":["pool",330],"lp":[],"rp":["pl","opl","lp","poi","pol","pli","poli","plo","ppl","lip","lop","opi","pil","ipl","ppli","ppoi","lipp","oppi","pill","pilo"]},"225":{"input":[1,6,7,8],"tlp":["appl",2216],"trp":["pla",24558],"tlw":["apollo",82],"trw":["lap",242],"lp":["appl","apol","alp"],"rp":["pla","plai","pal","lap","pala","ipal","llap","pola","lapp","ppal","pall","ppla","palo"]},"226":{"input":[2,6,7,8],"tlp":["spok",1763],"trp":["posi",4502],"tlw":["slip",260],"trw":["lips",930],"lp":["spok","spl","slip","spli","spoi","spio"],"rp":["posi","pok","lips","ospi","plis","ispl","ispo","lps","plos","pois","piso","kpl","opk","opki"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",95],"trw":["pillow",134],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",15223],"trp":["ple",30676],"trw":["people",14668],"lp":["eopl","elp","epl","elop","e'l","e'll","epli"],"rp":["ple","ople","'l","'ll","plie","i'l","i'll","leep","iple","lope","pel","pple","lep"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",631],"trw":["pale",447],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",1285],"trw":["people's",449],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["we'll",807],"trw":["please",985],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",337],"trp":["ptio",2778],"trw":["pilot",266],"lp":["topi","tipl","tpl"],"rp":["ptio","opti","ptl","pig","plit","pov","pilg","plot","ltip","lpt","lpit"]},"233":{"input":[1,4,6,7,8],"tlw":["flip",108],"trw":["plato",120],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["split",254],"trw":["politics",443],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",544],"trw":["political",1085],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",165],"trw":["prove",546],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",549],"trw":["plate",447],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replied",1257],"trw":["police",1092],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["special",1059],"trw":["place",5268],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",16287],"trw":["million",900],"lp":[],"rp":["mil","mpl","hom","lm","omi","poin","ompl","impo","hop","mili","pul","impl","lmo","hum","omin","pho","minu","lim","muni","pull"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",491],"trw":["human",2178],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["shop",667],"trw":["mission",568],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["small",3786],"trw":["plans",687],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["employee",275],"trw":["home",4865],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["example",1694],"trw":["play",1696],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simply",1710],"trw":["pulled",1252],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["explained",950],"trw":["played",975],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",366],"trw":["imagination",438],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["coming",1985],"trw":["much",10233],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["almost",3784],"trw":["making",2931],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["government",1285],"trw":["mother",4253],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["family",3955],"trw":["important",2765],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["something",7615],"trw":["possible",2350],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["especially",1737],"trw":["himself",5632],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",286499],"tlw":["was",112330],"lp":["as","wa","was","sa","aw","ass","ws","awa","sw","ssa","saw","assa","aws","asa","swa","sas","ww","saa","www","ssas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",129154],"tlw":["e",471],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",216643],"tlw":["x",233],"lp":["ea","ex","xa","exa","xe","exe","ax","ae","axe","eea"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["ed",326541],"tlw":["see",9997],"lp":["ed","es","se","de","ess","ds","see","sed","ese","ded","des","eed","sse","dd","ses","ssed","esse","dde","dee","sses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",140314],"tlw":["we",33258],"lp":["ad","we","da","ew","ead","eas","ade","dea","ase","wee","sea","wed","swe","wea","asse","ease","add","ews","eade","essa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","fa","ff","ft","af","att","aft","tat","fat","aff","tta","atta","tf","taf","taff","ata","ffa","affa","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260669],"tlw":["c",872],"lp":["st","ct","ts","sc","cc","tc","sts","cts","cs","tst","cst","tts","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["fact",3233],"lp":["ca","ac","sta","act","tw","ast","fac","cat","acc","cas","stat","wat","sat","atc","fact","tac","sca","watc","sf","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",558051],"tlw":["tree",670],"lp":["er","re","te","et","ere","rt","tr","ter","rr","tte","ree","ett","tter","tre","ret","eet","ert","ette","ete","rte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265629],"tlw":["are",29172],"lp":["ar","ra","fe","fr","rea","ear","are","ate","ef","art","eat","tra","rat","fte","reat","era","ffe","arr","afte","fter"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",144944],"tlw":["set",3472],"lp":["ce","rs","ec","ers","ted","rd","res","est","red","der","cr","ect","ste","dr","str","rc","ces","rst","rec","rse"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["wer",47082],"tlw":["were",34909],"lp":["wer","were","ard","ace","war","car","eca","ars","eac","read","rac","ears","ated","wr","ward","star","twe","stra","crea","reas"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"lp":["an","ann","ana","anna","aq","aan","anq"],"rp":["na","nan","nna","nq","nann"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9321],"trp":["ns",85305],"trw":["j",365],"lp":["sn"],"rp":["ns","nj","nns"]},"19":{"input":[1,2,5],"tlp":["wn",31110],"trp":["ja",7328],"tlw":["san",544],"trw":["jaw",167],"lp":["wn","ans","wan","san","asn","answ","wasn","aj","sq","awn","asan","sna","wns","anw"],"rp":["ja","nsw","jan","nw","nsa","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",361122],"trp":["ne",208843],"tlw":["eye",1504],"trw":["ye",442],"lp":["en","ey","een","ene","eye","enn","enne","eny","enny"],"rp":["ne","ye","ny","nee","nne","ney","yn","nen","nny","yee","yne"]},"21":{"input":[1,3,5],"tlp":["ay",87083],"trp":["yea",12043],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","any","ean","eq","ane","aye","anne","ena","xan","exan","anx","eane","enan","enea"],"rp":["yea","nea","nex","ya","nx","yan"]},"22":{"input":[2,3,5],"tlp":["end",27020],"trp":["nd",415919],"tlw":["eyes",5472],"trw":["need",4397],"lp":["end","dy","den","sen","dn","ens","sy","ense"],"rp":["nd","ned","ys","nde","nes","nds","ness","je","yes","nse","need","nded"]},"23":{"input":[1,2,3,5],"tlp":["and",307129],"trp":["new",18090],"tlw":["and",266855],"trw":["new",10172],"lp":["and","way","day","ays","say","wen","ways","ady","ands","away","eady","ween","dan","days","ande","says","sand"],"rp":["new","nda","nswe"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["fan",245],"lp":["ab","ba","ant","tan","tant","tab","ban","bab","bat","fan","batt","anta","fant","abb"],"rp":["nat","nf","nta","nab","nfa","nant"]},"26":{"input":[2,4,5],"tlp":["bs",6980],"trp":["nc",79565],"tlw":["bc",95],"lp":["bs","bj","sb","bst","bts","bc","bsc","bbs","cn","cb","cbs","stn"],"rp":["nc","nts","nst","nsc","nct","ncts"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["nsta",3211],"tlw":["can",15149],"lp":["can","anc","stan","bac","want","tanc","bas","ants","cann","abs","sba","sban","stab","sant","cq","acq","cans"],"rp":["nsta","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",175052],"trp":["nte",31075],"tlw":["be",44932],"trw":["yet",4449],"lp":["be","ent","ry","ty","rn","by","br","ery","ten","ren","bee","been","ber","rne","ern","bet"],"rp":["nte","ner","nter","ntr"]},"29":{"input":[1,3,4,5],"tlp":["ran",19074],"trp":["year",11125],"tlw":["ran",1611],"trw":["next",4617],"lp":["ran","ary","bef","arn","bea","ante","earn","bra","brea","aren","tran","ften","anyt","bar","rtan","req"],"rp":["year","nera","next","near"]},"30":{"input":[2,3,4,5],"tlp":["enc",25606],"trp":["nce",54473],"tlw":["best",3733],"lp":["enc","ence","bec","ents","cen","cent","rned","dent","sent","bes","renc","bed","cy","tend"],"rp":["nce","nder","nted","jec","ject","nces"]},"31":{"input":[1,2,3,4,5],"tlw":["went",6413],"trw":["years",7833],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",104869],"trp":["ia",38456],"tlw":["aziz",61],"lp":["ai","az","za","zi","azi","zz","azz","zza","ziz","aziz"],"rp":["ia","iz","iza","izi","izz","izza","iai"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sk","sis","ski","sks","ssis"],"rp":["is","ki","ik","ks","isi","iss","issi","isk","kis","kiss","iki","isis","isks"]},"35":{"input":[1,2,6],"tlp":["wi",119378],"trp":["ka",3991],"tlw":["ask",2497],"trw":["kaa",57],"lp":["wi","ak","sai","ask","asi","aki","wis","assi","wai","ais","sia","swi","ssia","wak","asks","aski","siz","asis"],"rp":["ka","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",51232],"trp":["ie",85987],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",9545],"trp":["ize",5603],"tlw":["xiii",65],"trw":["ix",80],"lp":["ze","xi","exi","aze","ez","eez","eiz","eze","eeze","eize","xie","axi","zei","ezi","eezi","eizi"],"rp":["ize","ix","ixe","ixi"]},"38":{"input":[2,3,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["kids",1451],"lp":["di","did","sid","side","dis","esi","edi","die","ek","eek","ske","essi"],"rp":["id","ke","ide","ike","ked","ies","ied","ise"]},"39":{"input":[1,2,3,6],"tlp":["ake",27987],"trp":["idea",4816],"tlw":["said",23960],"trw":["idea",2885],"lp":["ake","aid","said","eak","aske","adi","dia","akes","week","six","zed","eadi","easi","edia","xis","aise"],"rp":["idea","iew","ized","ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",213739],"trp":["it",311028],"tlw":["tv",551],"trw":["it",92474],"lp":["ti","vi","tiv","tti","tit","vit","tivi","viv","titi","ttit","viti","tv"],"rp":["it","iv","iti","itt","ivi","itti","itiv","ivit"]},"41":{"input":[1,4,6],"tlp":["fi",67126],"trp":["if",58122],"tlw":["fit",689],"trw":["if",25154],"lp":["fi","av","ati","va","tai","ffi","avi","ait","fai","tia","tati","ativ","vat","tif"],"rp":["if","iff","ita","ift","iat","ifi"]},"42":{"input":[2,4,6],"tlp":["ck",51278],"trp":["ic",118179],"tlw":["sit",1264],"trw":["its",10155],"lp":["ck","ci","sti","cti","tic","sit","cit","vis","vic","sist","sic","ctiv","visi","tis"],"rp":["ic","ist","its","ick","ici","ict"]},"43":{"input":[1,2,4,6],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"trw":["isaac",209],"lp":["wit","ack","tak","fic","cia","acti","ffic","wait","tica","sati","cati","wif","taki","fici","aci"],"rp":["ica","ista","icat","ific","icia"]},"44":{"input":[3,4,6],"tlp":["ve",240401],"trp":["ir",91496],"tlw":["ever",4714],"trw":["ive",85],"lp":["ve","ri","ver","ev","eve","ever","eir","rie","eri","rit","rv","tri","rri","tive","erv","rti"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ave",49806],"trp":["ife",12017],"tlw":["five",2604],"lp":["ave","fir","rai","air","ari","fri","arri","frie","rati","arti","ria","eav","trai","rtai","fie","eave"],"rp":["ife","iffe","ief","iate"]},"46":{"input":[2,3,4,6],"tlp":["rk",28978],"trp":["ice",25015],"tlw":["tried",2205],"lp":["rk","ved","ves","ric","ris","eci","ecti","serv","esti","ried","cri","rke","cke","vid","ties","vers"],"rp":["ice","irs","irst","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["first",11244],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","hi","ni","hin","nin","ini","inn","nni","inin","hn","nnin","inni","nh","hni","inh","hini","hnn","ih"]},"49":{"input":[1,5,6],"tlp":["ain",43995],"trp":["ha",357027],"tlw":["ah",458],"trw":["han",268],"lp":["ain","ani","ah","aini","zin","anin","aniz","azin"],"rp":["ha","han","ina","ian","hai","niz","nia","iq","inan","niza","nha","niq"]},"50":{"input":[2,5,6],"tlp":["sh",119750],"trp":["his",109386],"tlw":["skin",661],"trw":["his",69304],"lp":["sh","sin","shi","ssin"],"rp":["his","kin","kn","nk","ins","ish","ink","nsi","hink","nis","nki","nkin","hs","nish","inki","insi"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["has",13193],"tlw":["wish",1198],"trw":["has",11125],"lp":["wh","whi","wha","win","sha","ains","akin","ank","ash","wish","ashi","anks","wash","sian","anis","asin","whis"],"rp":["has","hank","ians"]},"52":{"input":[3,5,6],"tlp":["ein",10146],"trp":["he",1036192],"tlw":["eh",128],"trw":["he",92135],"lp":["ein","eh","eni","enin","ehi","ehin"],"rp":["he","hen","hey","ine","hei","ien","hy","yi","yin","hee","hie","nie","nei","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",5046],"trp":["hea",22882],"tlw":["annie",159],"trw":["yeah",918],"lp":["aine","ayi","ayin","eha","eani","zen","anie","ahe","anxi","ahea","eah","zy","zine","azy","xh","exh"],"rp":["hea","nize","nxi","yeah"]},"54":{"input":[2,3,5,6],"tlp":["she",58316],"trp":["ind",31046],"tlw":["she",45928],"trw":["kind",3481],"lp":["she","din","didn","shed"],"rp":["ind","hes","hed","ndi","hese","ines","ined","iend","iden","idn","kne","ndin","ken","nsid","ishe","indi"]},"55":{"input":[1,2,3,5,6],"tlw":["when",27718],"trw":["had",63389],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ith",80740],"tlw":["bit",1490],"trw":["hit",1079],"lp":["th","thi","thin","tin","bi","vin","ttin","bit"],"rp":["ith","ht","int","nti","ib","nv","nit","hit","inv","ntin","nth","ivin"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["hat",521],"lp":["tha","that","ath","fin","than","tain","avin","fath","aint","van","fina","atin","abi","fini"],"rp":["hat","hav","inf","nati","havi","ntai"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["ich",25423],"tlw":["this",36089],"trw":["nick",237],"lp":["ch","this","chi","tch","sib","chin","sch","ssib","stin","sinc","cin"],"rp":["ich","hic","hich","inc","inst","nch","nci","nic","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["with",67032],"trw":["jack",1623],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",718961],"trp":["her",160213],"tlw":["the",506536],"trw":["her",47940],"lp":["the","ther","they","ven","thei","very","rin","thr","even","then","eth","enti","rien"],"rp":["her","here","heir","hr","ity","inte","nev"]},"61":{"input":[1,3,4,5,6],"tlw":["father",3696],"trw":["have",35739],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",9773],"trw":["interest",1336],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["where",9655],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["wow",113],"lp":["wo","aso","woo","asso","swo","wso","awso","soa","aos","wow","awo","sow"],"rp":["ow","ows","owa","oas","osa","ossa","owo"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",22601],"trp":["oe",10755],"trw":["-",1362],"lp":["eo","e-"],"rp":["oe","o-","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",296],"trp":["ox",1874],"lp":["xo","exo","e-a","axo"],"rp":["ox","oxe","-a"]},"70":{"input":[2,3,7],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","doe","does","doo","eso","esso","edo"],"rp":["od","ose","ood","oes","ode","osed","odd","osse","ods","oose","oods","odde","oses"]},"71":{"input":[1,2,3,7],"tlp":["dow",14691],"trp":["owe",15537],"tlw":["wood",515],"trw":["owed",149],"lp":["dow","easo","ado","wood","dows","adow","sado","ewo"],"rp":["owe","owed","oad","owd","oda","owde","owds","-da","o-da","oads","oade","oxes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","go","too","goo","got","gg","tog","gt","tto","gott","tot","gto"],"rp":["ot","og","ott","oot","oto","otto","oog","otog"]},"73":{"input":[1,4,7],"tlp":["fo",133745],"trp":["of",272457],"tlw":["ago",1471],"trw":["of",245539],"lp":["fo","ag","ga","aga","foo","gat","tag","ago","ato","ffo","goa","foot","gag","agg","tota"],"rp":["of","off","oft","oat","ota"]},"74":{"input":[2,4,7],"tlp":["co",161789],"trp":["oc",25929],"tlw":["cost",675],"lp":["co","sto","gs","cto","soc","sco","cco","stoo","cog","coo","cos","cost","cot","ssoc"],"rp":["oc","ost","occ","oct","ots","octo"]},"75":{"input":[1,2,4,7],"tlp":["two",12798],"trp":["oac",2483],"tlw":["two",11667],"lp":["two","tow","acco","towa","coa","sag","foc","sof","ssag","soft","acto","stag","cof","coff","coat"],"rp":["oac","oca","occa","oast","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["get",10986],"trw":["or",34654],"lp":["ro","ge","gr","eg","get","gre","rg","tor","ger","tro","roo","rge","gro","rot"],"rp":["or","ore","ort","ote","oor","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",111436],"trp":["orta",4717],"tlw":["for",70927],"trw":["offer",1014],"lp":["for","fro","age","fore","efo","efor","gra","grea","arg","aro","ega","fort","arge","roa","gar","rag"],"rp":["orta","ora","offe","ofte"]},"78":{"input":[2,3,4,7],"tlp":["eco",13557],"trp":["ord",17538],"tlw":["good",9480],"trw":["order",2602],"lp":["eco","good","cor","stor","ges","rso","erso","cro","ged","ros","dg","rod","dge","door","sor","ross"],"rp":["ord","ors","orde","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["words",3228],"trw":["offered",1121],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ou","no","un","oun","nu","nou","oon","nno","unn","ono","onn","non","noo","noon","noun","uo","nnou","onou","unu"]},"81":{"input":[1,5,7],"tlp":["au",32369],"trp":["ua",23498],"lp":["au","qu","ano","qua","anno","aun","anu","anua","quan","quo"],"rp":["ua","ona","una","nua","oan","nqu","onna","uan","onq","onqu"]},"82":{"input":[2,5,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["soon",3191],"trw":["us",10609],"lp":["su","son","sou","ssu","soon","soun","sun","sus","sons"],"rp":["us","ons","ous","ju","jo","jus","uss","usu","nsu","njo","oj"]},"83":{"input":[1,2,5,7],"tlp":["wou",29932],"trp":["now",32603],"tlw":["won",495],"trw":["now",13343],"lp":["wou","aus","won","ason","sua","sona","asu","assu","ajo","squ","squa","woun"],"rp":["now","own","nown","usa","usua","usan","ousa","nows"]},"84":{"input":[3,5,7],"tlp":["eno",5765],"trp":["yo",112940],"trw":["you",68463],"lp":["eno","enou","eu","eon","eone"],"rp":["yo","you","one","ue","oy","yon","youn","yone","oney","uy","uen","oye","nue","une","onne"]},"85":{"input":[1,3,5,7],"tlp":["que",9630],"trp":["oya",1710],"tlw":["anyone",1715],"lp":["que","equ","eau","eque","quen","anyo","quee","equa","xu","exu","xua","exua","aneo","xon"],"rp":["oya","unex","ux","nque","uxu","unea"]},"86":{"input":[2,3,5,7],"tlp":["du",19747],"trp":["und",37128],"tlw":["done",3602],"trw":["use",3572],"lp":["du","don","done","esu"],"rp":["und","use","ound","ud","ond","unde","ues","ouse","used","ody","ude","ndo","odu","onde","udd","ones"]},"87":{"input":[1,2,3,5,7],"tlw":["down",11247],"trw":["owned",326],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",70306],"trp":["ng",301290],"tlw":["but",49620],"trw":["not",43106],"lp":["bu","bo","tu","but","bou","bout","gu","gn"],"rp":["ng","ut","out","not","ug","oug","ong","ob","nto","ont","unt","ub"]},"89":{"input":[1,4,5,7],"tlp":["abo",26472],"trp":["uf",3979],"tlw":["about",23108],"lp":["abo","fu","abou","ang","fou","gan","aug","tua","atu","anot","foun","aut"],"rp":["uf","onf","uff","natu","nfo","nag","oba","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",43239],"trp":["uc",39944],"tlw":["cut",1451],"trw":["just",14589],"lp":["con","cou","cu","suc","cons","cont","stu","coun","bus","cus","ctu","conc"],"rp":["uc","ust","just","ngs","onc","unc","uct","job"]},"91":{"input":[1,2,4,5,7],"tlw":["town",2110],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["rou",33045],"trp":["ur",136165],"tlw":["turn",2317],"trw":["your",20504],"lp":["rou","ru","tur","roug","gen","ture","roun","tru","turn","ron","bro","eng"],"rp":["ur","our","ure","your","nge","urn","ute","nger"]},"93":{"input":[1,3,4,5,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["course",3730],"trw":["once",5524],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["because",9879],"trw":["understand",2238],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",183975],"trw":["oil",657],"lp":[],"rp":["ll","li","io","il","lo","ol","ill","oi","loo","oll","lli","ili","llo","oli","ool","illi","olo","ollo","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ali","ail","alo","allo","ala","aliz","alli"],"rp":["la","ial","lai","lia","lla","liz","iall","ila","olla","oal","ola"]},"98":{"input":[2,6,7],"tlp":["sio",15825],"trp":["ok",35246],"tlw":["skills",834],"trw":["look",5477],"lp":["sio","sl","ssio","sol","sil"],"rp":["ok","ls","ook","lik","look","lk","los","lis","lso","osi","ossi","lls","oki","kil","isio"]},"99":{"input":[1,2,6,7],"tlp":["wil",18445],"trp":["low",16681],"tlw":["will",14271],"trw":["low",1274],"lp":["wil","will","als","alk","also","wal","alw","alwa","walk","wl","wall"],"rp":["low","las","llow","lw","lwa","owi","lass","owl","law"]},"100":{"input":[3,6,7],"tlp":["el",142952],"trp":["le",213808],"tlw":["el",99],"trw":["lie",725],"lp":["el","ell","eli","eel","ele","elie","elo","elli","eeli","ello","elle"],"rp":["le","lle","ile","lie","ole","olle","ille","lee","iel"]},"101":{"input":[1,3,6,7],"tlp":["eal",18892],"trp":["lea",26849],"tlw":["alex",152],"lp":["eal","alle","ale","ela","eall","eali","aile","alex","eale","eliz","xio","elea","ael"],"rp":["lea","lex","lize","lexa","oze","llea","lexi"]},"102":{"input":[2,3,6,7],"tlp":["sel",25483],"trp":["ld",104617],"tlw":["else",2789],"trw":["like",19390],"lp":["sel","dl","els","eld","del","dle"],"rp":["ld","like","old","led","les","oke","lled","ild","less","oked","ooke","lose","ldi","lde"]},"103":{"input":[1,2,3,6,7],"tlw":["well",8952],"trw":["lead",1050],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["tio",72429],"trp":["ig",72061],"tlw":["till",1036],"trw":["lot",2713],"lp":["tio","gi","tl","gl","til","vo","ttl","till","giv"],"rp":["ig","ov","lt","lit","lig","liv","litt","ittl","lv","itio","oti"]},"105":{"input":[1,4,6,7],"tlp":["atio",33167],"trp":["lf",21773],"tlw":["fall",1195],"lp":["atio","tal","fl","gai","agai","alt","val","fol","gla","fig","flo","foll","agi","fil","alit"],"rp":["lf","lat","lif","offi","lati"]},"106":{"input":[2,4,6,7],"tlp":["cl",31724],"trp":["lic",9087],"tlw":["still",7621],"trw":["lost",2029],"lp":["cl","ctio","col","stil","sig","clo","took","clos","stio","cov","coll","soci","ctl"],"rp":["lic","ock","osit","loc","oic","oci","list"]},"107":{"input":[1,2,4,6,7],"tlw":["call",2856],"trw":["last",4981],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",25465],"trp":["ove",39462],"tlw":["tell",4528],"trw":["over",12910],"lp":["rl","tle","tel","ttle","rel","rig","vel","tell","give","rio","elt","rov"],"rp":["ove","over","let","ori","lve","live","orl","love"]},"109":{"input":[1,3,4,6,7],"tlw":["felt",4669],"trw":["life",8740],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["told",5605],"trw":["lives",1641],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["work",8749],"trw":["least",2856],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",160810],"trw":["oh",2847],"lp":[],"rp":["ho","ul","ion","oul","hou","ui","lin","lu","nl","hu","lon","oin","hil","onl","hol","iou","uni","houl","ull","hoo"]},"113":{"input":[1,5,6,7],"tlp":["qui",11723],"trp":["lan",16797],"tlw":["annual",207],"trw":["hall",950],"lp":["qui","alon","alu","qual","ainl","aul"],"rp":["lan","nal","ual","onal","hal","iona","uall","ula","hall","inal","lain","lau","nall","lian"]},"114":{"input":[2,5,6,7],"tlp":["sho",24544],"trp":["kno",19117],"tlw":["soul",950],"trw":["john",1863],"lp":["sho","sion","shou","sul"],"rp":["kno","ions","hos","ious","usi","hous","usin","onsi","lish","hus","okin","ush","lus","lkin","usl","ousl"]},"115":{"input":[1,2,5,6,7],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",17170],"trp":["ly",122921],"trw":["only",13824],"lp":["ely","elin","enl"],"rp":["ly","lly","nly","only","hel","ily","len","hile","line","lue","hole","lone","loy","hone","ully","llen","ule"]},"117":{"input":[1,3,5,6,7],"tlw":["alone",2184],"trw":["lay",1482],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["should",7178],"trw":["house",4935],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["would",27522],"trw":["usually",1445],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ing",245338],"tlw":["thought",7112],"trw":["into",18343],"lp":["gh","tion","ght","bl","tho","ting","thou"],"rp":["ing","igh","oth","ugh","ight","hing","ough","ning","into","ught","houg","long","ling"]},"121":{"input":[1,4,5,6,7],"tlw":["again",7165],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",8032],"trw":["looking",3174],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["without",5841],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["through",8798],"trw":["other",13909],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["another",6638],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["could",18061],"trw":["others",3864],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["already",3329],"trw":["however",3319],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",37015],"trw":["p",765],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",46764],"trp":["pa",72065],"trw":["pa",273],"lp":["ap","app","apa","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",40374],"trp":["ps",13734],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3930],"trp":["pas",8500],"tlw":["sap",81],"trw":["pass",1068],"lp":["spa","aps","sap","asp","sapp","wsp","wspa","spap","assp"],"rp":["pas","pass","pw","pwa","paw","paws"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",39298],"trp":["pe",115056],"trw":["'",14271],"lp":["ep","e'","eep","epe","epp","eppe","eepe"],"rp":["pe","ppe","pee","''","'e","p'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",16071],"trp":["pea",10889],"lp":["xp","exp","appe","xpe","expe","ape","epa","eap","epea","xpa","expa","a'","eape","a'a","x'","ax'"],"rp":["pea","ppea","pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",18659],"trp":["'s",36901],"tlw":["deep",1465],"trw":["'s",213],"lp":["spe","e's","esp","e'd","dep","espe","deep","sep","desp","depe","spee","eps","d'","d's"],"rp":["'s","'d","ped","pped","pes","pse"]},"135":{"input":[1,2,3,8],"tlp":["we'",3765],"trp":["'w",281],"tlw":["we'd",695],"trw":["passed",1693],"lp":["we'","spea","depa","sepa","aspe","ewsp","we'd","weap","aped","weep","wep","apes","apse","swep","a's","xped","espa","dpa"],"rp":["'w","peas"]},"136":{"input":[4,8],"tlp":["tp",256],"trp":["pt",19963],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",4201],"trp":["pat",6411],"tlw":["tap",153],"trw":["pat",193],"lp":["apt","apta","tap","tapp"],"rp":["pat","pta","patt","pf","ptat"]},"138":{"input":[2,4,8],"trp":["pts",388],"lp":[],"rp":["pts","pst","ptc","pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",5240],"trp":["pac",3604],"tlw":["cap",258],"trw":["past",2353],"lp":["cap","capt","spac","scap","capa","apac","spat","fsp","ffsp","caps"],"rp":["pac","past","pact","patc","psta","pats"]},"140":{"input":[3,4,8],"tlp":["t'",15643],"trp":["pr",76723],"trw":["per",611],"lp":["t'","rep","ept","rp","tep","r'","er'","rpr","re'","ere'"],"rp":["pr","'t","per","pre","'r","'re","pte","ppr","pet","pret"]},"141":{"input":[1,3,4,8],"tlp":["at'",5623],"trp":["par",26731],"tlw":["appear",816],"trw":["part",4589],"lp":["at'","xper","epar","rap","appr","aper","apte","repa","xpr","expr","xpre","apar"],"rp":["par","part","pare","pear","pra","perf","pera","para"]},"142":{"input":[2,3,4,8],"tlp":["t's",15472],"trp":["pres",13007],"tlw":["step",1154],"trw":["press",708],"lp":["t's","spec","cep","cept","resp","step","r's","er's","re's","spr","sper","ccep","teps"],"rp":["pres","pec","pers","pect","perc","prec","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["we're",1513],"trw":["perfect",1065],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",43386],"trw":["m",1273],"lp":[],"rp":["mp","mm","nm","mn","pm","np"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","amp","ama","apan","amm","ampa","amn","aman"],"rp":["ma","man","pan","mpa","nam","mpan","mana","mma","mann","mman","nap","map"]},"146":{"input":[2,5,8],"tlp":["sm",13242],"trp":["ms",20491],"trw":["ms",185],"lp":["sm","ssm"],"rp":["ms","nsp","mps","nsm","mns","mms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7005],"trp":["mas",4399],"tlw":["sam",133],"trw":["mass",521],"lp":["sam","sma","ams","span","ansp","amps","snap","asm","assm","ssma"],"rp":["mas","maj","mass","jap","japa","mans","jam","mw","mpas","pans"]},"148":{"input":[3,5,8],"tlp":["em",87362],"trp":["me",235102],"tlw":["enemy",1028],"trw":["my",40423],"lp":["em","eme","eem","emp","emen","eeme","emem"],"rp":["me","my","n'","men","pen","mem","'m","y'","mme","ppen","pene","py","mee"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["may",9648],"tlw":["an'",417],"trw":["many",8068],"lp":["ame","ema","eam","an'","xam","exam","eman","appy","xamp","amen","xpen"],"rp":["may","mea","many","mean","name","pany","pay","pane","man'"]},"150":{"input":[2,3,5,8],"tlp":["dn'",13235],"trp":["med",15366],"tlw":["seemed",4232],"trw":["jem",320],"lp":["dn'","seem","sn'","ems","emed","spen","dem","dm","emse","esn'"],"rp":["med","mes","mse","mys","pend","myse","y's","n's","mmed","pens"]},"151":{"input":[1,2,3,5,8],"tlw":["same",6718],"trw":["made",9696],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",4765],"trp":["mb",19208],"lp":["tm","bm"],"rp":["mb","mpt","ntm","pb","mt","mpb"]},"153":{"input":[1,4,5,8],"tlp":["fam",7099],"trp":["mat",11909],"trw":["mba",123],"lp":["fam","amb","tma","tnam","atm","apab","amat","bam","bama","amba","tam"],"rp":["mat","matt","mf","mba","mpat","pant","pab","mant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",1138],"trp":["mst",943],"lp":["stm"],"rp":["mst","mc","mbs","mpts","mcc","mcs"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",660],"trw":["pants",299],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",33028],"trp":["n't",37419],"tlw":["remember",2277],"trw":["mr",4133],"lp":["rm","rem","emb","erm","tem","embe","reme","rme","temp","tme","tmen"],"rp":["n't","ment","met","mer","mbe","mber","mr","memb","meet"]},"157":{"input":[1,3,4,5,8],"tlw":["army",2073],"trw":["matter",2479],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["spent",1640],"trw":["mrs",2541],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["came",6889],"trw":["parents",2027],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",28303],"lp":[],"rp":["pi","ip","ppi","ipp","ippi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["appi",2174],"trp":["pai",6465],"trw":["pizza",143],"lp":["appi","api"],"rp":["pai","ipa","pia","piz","pizz","iap","ippa"]},"162":{"input":[2,6,8],"tlp":["spi",5949],"trp":["ips",2652],"tlw":["sip",104],"trw":["piss",63],"lp":["spi","sip","ssip","sipp","skip","spis"],"rp":["ips","isp","pis","kp","pk","pki","piss","kip","psi","kipp"]},"163":{"input":[1,2,6,8],"tlp":["spai",637],"trp":["isap",1148],"lp":["spai","wip","aspi","apk","apki","wipi","apis"],"rp":["isap","ispa","kpa"]},"164":{"input":[3,6,8],"tlp":["epi",1744],"trp":["i'",14185],"trw":["'i",461],"lp":["epi","eepi","eppi"],"rp":["i'","pie","ippe","ipe","'i","pipe","ppie","ip'"]},"165":{"input":[1,3,6,8],"tlp":["epai",321],"trp":["iz'",67],"lp":["epai","z'","eapi"],"rp":["iz'"]},"166":{"input":[2,3,6,8],"tlp":["disp",1152],"trp":["keep",4608],"tlw":["spies",180],"trw":["keep",3496],"lp":["disp","espi","dip","spie","epis"],"rp":["keep","i'd","kep","pid","ispe","pied","pies","pedi","iped","ip's","k'","k's","ipes","kesp","psid"]},"167":{"input":[1,2,3,6,8],"tlw":["speak",1583],"trw":["paid",1096],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",610],"trp":["pti",3889],"tlw":["tip",221],"trw":["pit",127],"lp":["tip","tipp"],"rp":["pti","pit","ipt","ipti"]},"169":{"input":[1,4,6,8],"tlp":["apit",605],"trp":["pati",1779],"lp":["apit"],"rp":["pati","pita","ptai","ipat","pav","ptia"]},"170":{"input":[2,4,6,8],"tlp":["cip",2669],"trp":["pic",5474],"tlw":["tips",128],"trw":["pick",801],"lp":["cip","spit","spic","scip","tips","ckp"],"rp":["pic","pick","pict","icip","pici","pitc","pist","pics","ptic"]},"171":{"input":[1,2,4,6,8],"trw":["pack",385],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",2627],"trp":["pri",13942],"tlw":["trip",647],"trw":["i've",2219],"lp":["rip","rpri","epti","trip","ript","e'v","e've"],"rp":["pri","it'","peri","'v","'ve","pir","i'v","i've","priv","piri","prev","pite","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["repair",185],"trw":["private",1010],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",946],"trw":["it's",8558],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["we've",750],"trw":["paris",1353],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",93559],"trw":["him",28423],"lp":[],"rp":["im","mi","him","min","ph","imp","pin","hip","imi","ppin","mmi","imm","phi","mini","hm","nim","mmin","imin","pini","mpi"]},"177":{"input":[1,5,6,8],"tlp":["ami",8211],"trp":["hap",14305],"tlw":["aim",231],"trw":["pain",1250],"lp":["ami","aim","amin","aph","anim","amaz"],"rp":["hap","happ","ima","mai","main","pain","ham","pani","iam","mina","nima","pha","maz","impa"]},"178":{"input":[2,5,6,8],"tlp":["ship",5146],"trp":["mis",8985],"tlw":["ship",877],"trw":["miss",1642],"lp":["ship","sim","smi","simp","simi","shm","spin"],"rp":["mis","ims","hims","miss","hips","ism","mik","insp","ishm","hisp","nspi","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["spanish",469],"trw":["mask",160],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2800],"trp":["ime",28758],"trw":["i'm",6537],"lp":["emi","emin","epin","eph"],"rp":["ime","hem","he'","i'm","mine","hey'","phy","imme","pine","imen","phe","peni","hme","in'","hmen","meh"]},"181":{"input":[1,3,5,6,8],"tlw":["examine",179],"trw":["happy",1895],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["she'd",1495],"trw":["mind",4439],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["shame",796],"trw":["make",9390],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",28120],"trp":["mit",4914],"tlw":["tim",128],"trw":["ibm",109],"lp":["tim","timi","bmi"],"rp":["mit","mbi","mitt","mmit","imit","mbin","ntim","imb","mpti","ptin","mbit","intm","mith","itm","mitm","ptim","pth"]},"185":{"input":[1,4,5,6,8],"trw":["path",946],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",320],"trw":["pitch",164],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["captain",1078],"trw":["match",450],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",21593],"trw":["prevent",380],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["remain",740],"trw":["haven't",641],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["didn't",7051],"trw":["isn't",1565],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["that's",4282],"trw":["perhaps",2737],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",68607],"trw":["pop",223],"lp":[],"rp":["po","op","ppo","opp","oppo","poo","pop","oop","opo","popp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1508],"trp":["opa",186],"lp":["apo","appo"],"rp":["opa","oap"]},"194":{"input":[2,7,8],"tlp":["spo",7683],"trp":["pos",16560],"lp":["spo","sop","spos","sspo","spoo"],"rp":["pos","poss","ppos","osp","ops","oops","opos","osop","pso"]},"195":{"input":[1,2,7,8],"tlp":["soap",132],"trp":["pow",4845],"tlw":["soap",132],"lp":["soap"],"rp":["pow","posa"]},"196":{"input":[3,7,8],"tlp":["eop",15223],"trp":["peo",15223],"trw":["pope",239],"lp":["eop","epo"],"rp":["peo","peop","ope","oppe","o'","poe","oope","pope","oe'","'o","-p"]},"197":{"input":[1,3,7,8],"tlp":["eapo",649],"trp":["opea",428],"lp":["eapo","xpo","expo"],"rp":["opea","-pa"]},"198":{"input":[2,3,7,8],"tlp":["espo",3005],"trp":["pose",4757],"trw":["possessed",333],"lp":["espo","dop"],"rp":["pose","oped","ospe","o's","osep","opes","od'","od's","o'd","oe's","pod","oss'"]},"199":{"input":[1,2,3,7,8],"tlw":["exposed",267],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",6183],"trp":["pot",2394],"tlw":["top",1822],"trw":["pot",221],"lp":["top","topp","toop"],"rp":["pot","opt","pto","pott","ptop"]},"201":{"input":[1,4,7,8],"tlp":["gap",376],"trp":["pag",1322],"tlw":["gap",204],"trw":["potato",74],"lp":["gap","apto","gapo","atop"],"rp":["pag","pota","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",3680],"trp":["post",1282],"tlw":["stop",1798],"trw":["post",644],"lp":["stop","cop","spot","tops","cops","coop","copp","gosp","copt","scop"],"rp":["post","poc","pots","pco"]},"203":{"input":[1,2,4,7,8],"tlw":["gaps",71],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6404],"trp":["pro",33640],"tlw":["report",778],"trw":["poor",1596],"lp":["rop","rope","repo","epor","rpo","ropo","ropp","rpor","roop"],"rp":["pro","por","port","oper","ppor","prop","ppro","prog","poor","prot","orp"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",98],"trw":["page",587],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["stopped",1419],"trw":["process",1455],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["corporate",363],"trw":["power",3130],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",158331],"trw":["up",23594],"lp":[],"rp":["om","mo","up","mu","pu","um","omp","mon","omm","pon","oom","mom","mpo","mou","upp","oup","upo","upon","uppo","num"]},"209":{"input":[1,5,7,8],"tlp":["amo",4702],"trp":["oma",6690],"trw":["mao",108],"lp":["amo","amon","amou","apon","amu","ampu"],"rp":["oma","ompa","oman","uma","uman","omma","pau","manu","mona","mau","upa","napo","mao","opam"]},"210":{"input":[2,5,7,8],"tlp":["som",32033],"trp":["mos",15768],"tlw":["sum",220],"trw":["jump",350],"lp":["som","sup","supp","sum","spon","summ","smo","susp","ssum"],"rp":["mos","mus","pons","mous","mpos","pus","ups","usp","ums","mons","oms"]},"211":{"input":[1,2,5,7,8],"tlw":["woman",3590],"trw":["mason",79],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",6070],"trp":["ome",63421],"trw":["money",3556],"lp":["emo","epu"],"rp":["ome","on'","omen","u'","ou'","you'","open","mome","ume","mone","meo","omeo","meon","memo","omme","umen","ompe","umme"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",15162],"trw":["opened",1401],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["women",3612],"trw":["paused",403],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",5301],"trp":["mot",10460],"tlw":["tom",762],"trw":["put",5210],"lp":["tom","tum","gm","bom","bomb","tup","ttom"],"rp":["mot","put","umb","pub","mont","numb","mong","omb","mout","mput","upt","putt","ptu"]},"217":{"input":[1,4,5,7,8],"tlw":["among",2526],"trw":["obama",363],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",1407],"trw":["most",10396],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["famous",816],"trw":["moscow",341],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["room",5055],"trw":["more",21171],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",35952],"trw":["program",634],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["don't",9569],"trw":["person",3411],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["major",1113],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",68379],"trw":["pool",330],"lp":[],"rp":["pl","opl","lp","poi","pol","pli","poli","plo","ppl","lip","lop","opi","pil","ipl","ppli","ppoi","lipp","oppi","pill","pilo"]},"225":{"input":[1,6,7,8],"tlp":["appl",2216],"trp":["pla",24558],"tlw":["apollo",82],"trw":["lap",242],"lp":["appl","apol","alp"],"rp":["pla","plai","pal","lap","pala","ipal","llap","pola","lapp","ppal","pall","ppla","palo"]},"226":{"input":[2,6,7,8],"tlp":["spok",1763],"trp":["posi",4502],"tlw":["slip",260],"trw":["lips",930],"lp":["spok","spl","slip","spli","spoi","spio"],"rp":["posi","pok","lips","ospi","plis","ispl","ispo","lps","plos","pois","piso","kpl","opk","opki"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",95],"trw":["pillow",134],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",15223],"trp":["ple",30676],"trw":["people",14668],"lp":["eopl","elp","epl","elop","e'l","e'll","epli"],"rp":["ple","ople","'l","'ll","plie","i'l","i'll","leep","iple","lope","pel","pple","lep"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",631],"trw":["pale",447],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",1285],"trw":["people's",449],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["we'll",807],"trw":["please",985],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",337],"trp":["ptio",2778],"trw":["pilot",266],"lp":["topi","tipl","tpl"],"rp":["ptio","opti","ptl","pig","plit","pov","pilg","plot","ltip","lpt","lpit"]},"233":{"input":[1,4,6,7,8],"tlw":["flip",108],"trw":["plato",120],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["split",254],"trw":["politics",443],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",544],"trw":["political",1085],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",165],"trw":["prove",546],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",549],"trw":["plate",447],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replied",1257],"trw":["police",1092],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["special",1059],"trw":["place",5268],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",16287],"trw":["million",900],"lp":[],"rp":["mil","mpl","hom","lm","omi","poin","ompl","impo","hop","mili","pul","impl","lmo","hum","omin","pho","minu","lim","muni","pull"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",491],"trw":["human",2178],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["shop",667],"trw":["mission",568],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["small",3786],"trw":["plans",687],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["employee",275],"trw":["home",4865],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["example",1694],"trw":["play",1696],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simply",1710],"trw":["pulled",1252],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["explained",950],"trw":["played",975],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",366],"trw":["imagination",438],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["coming",1985],"trw":["much",10233],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["almost",3784],"trw":["making",2931],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["government",1285],"trw":["mother",4253],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["family",3955],"trw":["important",2765],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["something",7615],"trw":["possible",2350],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["especially",1737],"trw":["himself",5632],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json index 81395368b8..f8240db297 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",68],"tlw":["a",207382],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",1790],"tlw":["s",277],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",412461],"lp":["as","sa","asa","sas","asas","wa","ass","ssa","was","saa","aw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4724],"tlw":["e",5916],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",27380],"tlw":["ex",477],"lp":["ea","ex","ae","xa","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",743538],"tlw":["de",453446],"lp":["de","es","se","ed","des","ese","ede","sd","esd","desd","sde","esde","ses","ded","dese","eses","edes","eded","sed","ees"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",219474],"tlw":["esa",8099],"lp":["ad","da","dad","ada","esa","eda","ade","das","ase","sad","edad","sea","dea","dade","esas","asad","ades","desa","adas","ases"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",782],"tlw":["t",90],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",307672],"tlw":["f",113],"lp":["ta","at","fa","ata","af","afa","tat","fat","fata","att","taf","ft","atat","tata","ff","ataf","tf","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",235201],"tlw":["c",615],"lp":["st","sc","ct","cc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",200066],"tlw":["casa",9057],"lp":["ca","ac","sta","cas","ast","tas","asta","casa","sca","aca","act","sac","stas","tac","cta","acc","sf","fac","cat","cast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",499829],"tlw":["te",14709],"lp":["er","re","te","tr","rt","rr","et","ert","ter","tre","ere","err","rte","rre","ete","erte","ret","rer","etr","terr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",416643],"tlw":["era",32659],"lp":["ra","ar","era","tra","ara","tar","are","fe","rta","art","fr","rar","rra","erra","ef","erta","atr","eta","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",139908],"tlw":["ser",12211],"lp":["est","ec","ce","res","rec","rd","cer","cr","dr","ste","rs","ser","tes","str","ces","rc","esc","der","erd","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",69315],"tlw":["esta",18675],"lp":["esta","ras","ace","car","rad","tad","tras","acer","adr","arec","sar","cad","ard","rac","rda","adre","dar","stra","rca","erda"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",1348],"trw":["n",91],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",382423],"trp":["na",233186],"tlw":["ana",597],"lp":["an","ana","aq","anan","anq","ann","anna"],"rp":["na","nq","nan","nana","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",1069],"trp":["ns",48331],"trw":["j",166],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",27458],"trp":["ja",36319],"tlw":["san",1894],"trw":["ja",145],"lp":["aj","san","aja","anas","ans","sq","saj","anj","ansa","asan","ajas","ajan"],"rp":["ja","nas","nsa","jan","jas","naj","nsan","nsaj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",684719],"trp":["ne",94467],"tlw":["en",194129],"trw":["y",254303],"lp":["en","ene","ey","enen","eye","eyen","een","enn","enne"],"rp":["ne","ye","nen","yen","ny","nne","nny","yn","yene","yne"]},"21":{"input":[1,3,5],"tlp":["ena",25795],"trp":["ya",27580],"tlw":["ay",587],"trw":["ya",19283],"lp":["ena","ay","ane","eq","aya","ean","aye","aen","enan","ayan","enea","anen","ayen","anea","xq","exq"],"rp":["ya","nea","yan","nex"]},"22":{"input":[2,3,5],"tlp":["ej",40475],"trp":["nd",141755],"tlw":["deje",506],"lp":["ej","end","sen","ens","den","dej","ende","esen","eje","enes","ense"],"rp":["nd","je","nes","nde","nse","ndes","jes","nden","yend"]},"23":{"input":[1,2,3,5],"tlp":["and",60909],"trp":["nad",25609],"tlw":["deja",806],"trw":["nada",10498],"lp":["and","eja","ensa","aje","deja","dan","enas","ande","anda","ejan","sena","enda","anad","dena","dand"],"rp":["nad","nda","nada","jad","jand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",656],"trp":["nt",349002],"tlw":["b",221],"lp":["bt","tb","bn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ab",230416],"trp":["nta",49640],"tlw":["tan",12045],"lp":["ab","ba","aba","ant","tan","tab","taba","ban","tant","aban","anta","bat","tana"],"rp":["nta","nf","ntan","nat","ntab","nab","naba"]},"26":{"input":[2,4,5],"tlp":["bs",5233],"trp":["nc",100151],"lp":["bs","bj","bst","cn","sb","bc","tj"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["stab",23089],"trp":["nca",10670],"tlw":["santa",1043],"lp":["stab","cab","sab","anc","baj","can","stan","caba","abaj","bas","acab","baja","saba","sant","tanc","bast"],"rp":["nca","ntas","nac","nsta"]},"28":{"input":[3,4,5],"tlp":["ent",186144],"trp":["nte",139591],"tlw":["entre",11695],"lp":["ent","br","ente","ten","bre","be","entr","eb","ren","rn","ber","ener","ern","tene"],"rp":["nte","ntr","ner","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",49950],"trp":["ntra",26185],"tlw":["eran",5913],"trw":["yabran",492],"lp":["ran","ante","abe","enta","bra","abr","rab","rq","raba","bar","eran","aber","trab","abra","tran","rant"],"rp":["ntra","nar","nera","ntar"]},"30":{"input":[2,3,4,5],"tlp":["enc",41323],"trp":["ntes",22621],"tlw":["debe",1755],"lp":["enc","sent","cen","deb","dent","bres","tend","rend","rden","tenc","debe","cent"],"rp":["ntes","nce","jer","nces","nec","nece","ndr","nder"]},"31":{"input":[1,2,3,4,5],"tlw":["estaba",15906],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1864],"trw":["i",432],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",46428],"trp":["ia",302035],"lp":["za","az","ai","aza","aia","zi","azi","zz","aiz","azz"],"rp":["ia","iz","iza","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",193578],"trp":["is",104027],"tlw":["si",37389],"lp":["si","sis","sk","ssi"],"rp":["is","isi","ki","iss","isis","ik","iki","kis","ikis","kiss","isk","issi"]},"35":{"input":[1,2,6],"tlp":["asi",27185],"trp":["ias",18810],"tlw":["asi",11044],"trw":["kazz",77],"lp":["asi","sia","asia","zas","ais","sias","wi","asis","aisa","wis","wiss","azas","ak"],"rp":["ias","isa","izas","isas","ka","ika","issa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",15743],"trp":["ie",233722],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",37550],"trp":["iez",3157],"tlw":["xii",131],"trw":["ix",78],"lp":["ez","eza","xi","exi","eia","axi","xii","zie","azie","xix","xiii","ze"],"rp":["iez","ieza","ix"]},"38":{"input":[2,3,6],"tlp":["di",175458],"trp":["id",129921],"tlw":["seis",1304],"trw":["kid",113],"lp":["di","edi","sie","esi","die","sid","dis","did","side","eis","esid","edid","sei"],"rp":["id","ide","ies","ied","idi","iese","ise"]},"39":{"input":[1,2,3,6],"tlp":["dia",37584],"trp":["ida",49293],"tlw":["dia",8188],"trw":["idea",2311],"lp":["dia","adi","edia","dias","adie","dida","siad","zad","sida","xis","exis","esia","aid","diez"],"rp":["ida","idad","iad","idea","idas","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",133369],"trp":["it",63123],"tlw":["ti",1888],"trw":["iv",187],"lp":["ti","vi","viv","tiv","tit","vivi","vit","tti","tivi","vii","viii"],"rp":["it","iv","iti","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["va",51609],"trp":["ita",23108],"tlw":["va",3371],"lp":["va","fi","av","via","tia","avi","ati","avia","ava","fia","vita","tiva","afi","fav","ativ"],"rp":["ita","if","ifi","iva","iat"]},"42":{"input":[2,4,6],"tlp":["ci",238810],"trp":["ic",95632],"lp":["ci","sti","vis","tic","sit","cci","vist","cis","cti","sic","vic","visi","sist","cit","tici"],"rp":["ic","ist","ici","isti","isc"]},"43":{"input":[1,2,4,6],"tlp":["cia",69052],"trp":["ica",24474],"tlw":["casi",5393],"lp":["cia","aci","acia","fic","fici","casi","cias","tica","stia","taci","vas","sita","asti","saci","acti","acci"],"rp":["ica","ista","icia","ific"]},"44":{"input":[3,4,6],"tlp":["ri",190312],"trp":["ir",83670],"tlw":["ver",6228],"trw":["ir",2754],"lp":["ri","ve","ev","eri","ver","tie","vie","rti","rri","rit","rv","rie","tir","erv","tri","teri"],"rp":["ir","ier","iert","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",49114],"trp":["ira",16443],"tlw":["vez",12860],"trw":["ira",503],"lp":["ria","ari","eva","eria","vez","aria","raz","ave","var","zar","arti","rz","erz","rav","rza","fie"],"rp":["ira","iera","itar","iar"]},"46":{"input":[2,3,4,6],"tlp":["eci",43130],"trp":["ice",8339],"tlw":["decir",4827],"trw":["irse",431],"lp":["eci","cie","reci","dic","vid","deci","cid","rid","ris","cri","tid","dir","cier","cir","esti","rdi","dri","ves"],"rp":["ice","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["vida",8817],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",187273],"trw":["ni",13944],"lp":[],"rp":["in","ni","hi","nin","ini","hin","hn","inn","nh","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",14690],"trp":["ha",179890],"tlw":["ahi",2676],"trw":["ha",13606],"lp":["ah","ani","anz","anza","ahi","ania","zan","zq"],"rp":["ha","ian","ina","nia","nz","nza","han","hiz","iq","nian","iana","nina"]},"50":{"input":[2,5,6],"tlp":["sin",33228],"trp":["ij",25903],"tlw":["sin",21600],"lp":["sin","sini","sh","shi"],"rp":["ij","nsi","hij","ins","his","nis","ji","nsis","inis","insi","jin","nk","hisi","iji","inj","nins"]},"51":{"input":[1,2,5,6],"tlp":["siq",2408],"trp":["has",20672],"tlw":["ansia",145],"trw":["has",2554],"lp":["siq","ansi","sina","asin","anis","ash"],"rp":["has","ija","iaj","inas","hija","nzas","jai","nias","iaja","nsia","ijas","isaj","hans","isan"]},"52":{"input":[3,5,6],"tlp":["eni",26205],"trp":["ien",107409],"tlw":["eh",468],"trw":["he",7264],"lp":["eni","ein","enie","eh","enin","ehi","enei"],"rp":["ien","he","iene","ine","nie","nien","hie","inie","hen","inen","nei","nhe","nine"]},"53":{"input":[1,3,5,6],"tlp":["enia",16307],"trp":["hay",9090],"trw":["hay",7403],"lp":["enia","enz","enza","eina","enaz","eian","ezan","anie","eniz","aine"],"rp":["hay","haya","inea","ienz","hae","nez","hez","iena","yah","inez"]},"54":{"input":[2,3,5,6],"tlp":["dij",16709],"trp":["ndi",19946],"tlw":["dije",1690],"trw":["ines",410],"lp":["dij","endi","enid","sien","din","dien","dine","dije","ensi"],"rp":["ndi","iend","nid","ind","iden","ndid","indi","iej","ije","nsid","iens"]},"55":{"input":[1,2,3,5,6],"tlw":["ansiedad",269],"trw":["nadie",5526],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",119303],"trp":["ib",32479],"trw":["ibn",155],"lp":["bi","tin","vin","bit","th","tint"],"rp":["ib","int","nti","nv","ibi","nvi","ntin","inti","inv","nit","invi","niv","init","nvit"]},"57":{"input":[1,4,5,6],"tlp":["abi",63989],"trp":["hab",72658],"tlw":["fin",4343],"trw":["habia",39290],"lp":["abi","bia","abia","fin","bian","van","anti","fina","vant","vab","vaba","abit","zab"],"rp":["hab","habi","iba","inf","nfi","itan","ntia"]},"58":{"input":[2,4,5,6],"tlp":["ch",74839],"trp":["nci",46192],"lp":["ch","cin","sib","chi","stin","cinc","cib","chic","sint","cibi"],"rp":["nci","inc","nic","hic","ich","inci","inst","hist","nch","hici"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",3858],"trw":["hasta",13934],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",35373],"trp":["ient",36355],"tlw":["bien",10956],"lp":["bie","bien","ven","teni","bri","enti","tien","bier","rin","rib","ebi","rien","vien","vent"],"rp":["ient","inte","her","nve","ibr","nri"]},"61":{"input":[1,3,4,5,6],"tlw":["tenia",10650],"trw":["haber",3961],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tienes",1622],"trw":["interes",873],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["cabeza",5567],"trw":["hacer",6941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",993],"trw":["o",22465],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",736],"trp":["oa",1039],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",149815],"trp":["os",465150],"tlw":["sos",79],"trw":["os",2177],"lp":["so","sos","sso"],"rp":["os","oso","osos","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",13706],"trp":["osa",17222],"lp":["aso","asos","aos","saso","wo"],"rp":["osa","osas","ow","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",16208],"trp":["oe",2284],"trw":["-",992],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",492],"trp":["ox",1396],"lp":["xo","exo"],"rp":["ox"]},"70":{"input":[2,3,7],"tlp":["do",328036],"trp":["od",79897],"tlw":["dos",13303],"lp":["do","dos","eso","edo","esos","dedo","seo","eseo","dose","edos","deo","eos","seos"],"rp":["od","odo","odos","ode","ose","oses","oes"]},"71":{"input":[1,2,3,7],"tlp":["ado",89938],"trp":["oda",15354],"tlw":["dado",2055],"lp":["ado","ados","dado","sado","eado","aseo","sexo","adeo","dosa","dox","adox"],"rp":["oda","odas","odea","osad","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",261028],"trp":["ot",48115],"tlw":["g",93],"lp":["to","go","tot","got","goo","goog","tog","gt","gto","gg","goto","tto"],"rp":["ot","og","oto","oog","otog","ogo","ogg"]},"73":{"input":[1,4,7],"tlp":["ga",53335],"trp":["of",10649],"tlw":["foto",316],"trw":["of",213],"lp":["ga","ag","fo","ato","ago","aga","tota","fot","foto","gat","tag","afo","gota","gato","tago","gaf"],"rp":["of","ota","oga","ofo"]},"74":{"input":[2,4,7],"tlp":["co",351806],"trp":["oc",68424],"tlw":["toco",325],"lp":["co","sto","tos","cos","cto","sco","gos","stos","sot","cost","coc","cog","soc","sg"],"rp":["oc","oco","ost","osot","osc","oct"]},"75":{"input":[1,2,4,7],"tlp":["cosa",9340],"trp":["oca",11672],"tlw":["cosas",5443],"lp":["cosa","aco","caso","gas","acto","atos","gac","sof","toca","saco","asto","cato","sag","asco","acos"],"rp":["oca","ocas","osta","otas","osof"]},"76":{"input":[3,4,7],"tlp":["ro",246584],"trp":["or",270405],"tlw":["error",581],"trw":["otro",8826],"lp":["ro","ero","eg","tro","gr","ge","rg","tor","ego","rto","reg","erto","rro","rgo"],"rp":["or","otr","otro","ort","ore","orr"]},"77":{"input":[1,3,4,7],"tlp":["gra",22435],"trp":["ora",27567],"tlw":["rato",1491],"trw":["otra",7718],"lp":["gra","aro","gar","ega","arg","for","argo","rga","egar","atro","arga","rato","rof","agr","age","arro","arto"],"rp":["ora","otra","orta"]},"78":{"input":[2,3,4,7],"tlp":["tod",44574],"trp":["ord",10842],"tlw":["todo",18934],"trw":["otros",4846],"lp":["tod","ros","todo","esto","seg","cor","tros","dor","stro","rso","rdo","erso","ecto","eco","eros","corr","reco"],"rp":["ord","ores","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["toda",5491],"trw":["otras",3010],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",376567],"trw":["no",116565],"lp":[],"rp":["on","no","un","nu","uno","ono","nun","uo","nuo","non","ou","onu","onun","uu","oun","nou","nnu","nuno","onn"]},"81":{"input":[1,5,7],"tlp":["qu",432873],"trp":["una",93404],"tlw":["aun",5685],"trw":["una",79449],"lp":["qu","ano","aqu","au","aun","aunq","anu","anqu"],"rp":["una","ua","uan","ona","nqu","unq","unqu","nua","oq","oqu","uq","uqu"]},"82":{"input":[2,5,7],"tlp":["su",160644],"trp":["us",78931],"tlw":["su",81749],"trw":["nos",11959],"lp":["su","sus","son","sun"],"rp":["us","jo","nos","ju","jos","ons","oj","uj","unos","ojo","uso","ojos","jun","nso","noso","jus"]},"83":{"input":[1,2,5,7],"tlp":["anos",18802],"trp":["unas",5230],"tlw":["anos",8719],"trw":["unas",3324],"lp":["anos","ajo","sona","aus","asu","sua","ausa","squ","asun"],"rp":["unas","usa","jua","juan","onas","oja","uas","onaj","onsa","osq","osqu"]},"84":{"input":[3,5,7],"tlp":["eno",33962],"trp":["ue",565691],"trw":["yo",19966],"lp":["eno","eu","enu","eon","eun","eyo"],"rp":["ue","yo","uen","one","uy","nue","oy","ueno","uyo","yu","oye","une","oyo","yun"]},"85":{"input":[1,3,5,7],"tlp":["que",383802],"trp":["nque",7839],"tlw":["que",312514],"lp":["que","aque","ayo","equ","eque","quen","ayu","anue","ayun","aneo","xu","exu","xua","exua"],"rp":["nque","uena","uya","oya","uque","oque"]},"86":{"input":[2,3,5,7],"tlp":["du",23000],"trp":["ndo",74158],"tlw":["donde",10101],"trw":["jose",1204],"lp":["du","don","ejo","endo","dond","enos","seno","sue"],"rp":["ndo","ues","ud","ond","ued","ones","onde","und","uje","nues","undo","uede"]},"87":{"input":[1,2,3,5,7],"tlw":["quedo",2301],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",90299],"trp":["nto",80019],"tlw":["tu",10629],"trw":["noto",316],"lp":["gu","tu","gun","bo","bu","ton","gunt"],"rp":["nto","ob","ont","ng","unt","ub","ut","unto","nton","ug","ngu","uto","ngo"]},"89":{"input":[1,4,5,7],"tlp":["fu",44220],"trp":["uga",7270],"tlw":["tanto",6066],"trw":["nota",486],"lp":["fu","anto","gua","gan","guna","tua","agu","ang","agua","fun","abo","atu","fon"],"rp":["uga","unta","uant","onta","onf","uta","oba"]},"90":{"input":[2,4,5,7],"tlp":["con",167856],"trp":["uc",36702],"tlw":["con",92933],"trw":["junto",3143],"lp":["con","cu","cont","sob","cons","scu","cono","stu","tonc"],"rp":["uc","noc","ust","nco","onc","ntos","unc","ocu","onoc","ncon","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["bajo",4396],"trw":["nunca",6044],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",40726],"trp":["ur",54620],"tlw":["gente",4061],"trw":["negro",1571],"lp":["ento","ron","egu","ru","gen","egun","eron","enor","tur","bue","buen"],"rp":["ur","uer","obr","obre","nor","uert","ontr","uro","uent"]},"93":{"input":[1,3,4,5,7],"tlw":["fue",13323],"trw":["obra",1151],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",15089],"trw":["usted",6039],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["cuando",21007],"trw":["nuestra",3160],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",300357],"trw":["lo",69406],"lp":[],"rp":["lo","io","ll","li","ol","il","llo","olo","ill","ili","oli","lli","illo","lio","oi","ilo","oll","iol","ollo","ilio"]},"97":{"input":[1,6,7],"tlp":["al",268424],"trp":["la",523649],"tlw":["al",55586],"trw":["la",292004],"lp":["al","zo","all","ali","ala","azo","alo","alli","alla","allo"],"rp":["la","lla","lia","illa","ial","oz","ola","izo","ilia","ila"]},"98":{"input":[2,6,7],"tlp":["sol",26132],"trp":["los",142568],"tlw":["solo",13145],"trw":["los",122255],"lp":["sol","sio","solo","sil","sill","sl","soli"],"rp":["los","ios","llos","osi","iso","isio","ls","ioso","lis","ols","lso","loso","isl"]},"99":{"input":[1,2,6,7],"tlp":["sal",19326],"trp":["las",90934],"tlw":["salio",1704],"trw":["las",76432],"lp":["sal","sali","zos","asio","sola","sala","azos","sla","alas","salo","asil","als","alis"],"rp":["las","llas","iosa","lsa","olas","isla","olsa"]},"100":{"input":[3,6,7],"tlp":["el",426668],"trp":["le",198463],"tlw":["el",234850],"trw":["le",48083],"lp":["el","ell","ello","elo","ele","eli","elle","elli"],"rp":["le","lle","ole","ile","iel","lie","ielo","leo","lee","iole","lei","ille"]},"101":{"input":[1,3,6,7],"tlp":["ella",27778],"trp":["lez",2228],"tlw":["ella",14508],"trw":["leia",238],"lp":["ella","ale","ela","alle","eal","eali","ezo","alie","alez","eliz","elia","ael","xio","exio"],"rp":["lez","leza","lea","iale","oxi","llez"]},"102":{"input":[2,3,6,7],"tlp":["del",76844],"trp":["ido",57544],"tlw":["del",70196],"trw":["les",7650],"lp":["del","dio","dios","dido","sido","edio","esio","dol","sile","eles"],"rp":["ido","les","odi","lid","ld","idos","ilid","oles","idio","iles"]},"103":{"input":[1,2,3,6,7],"tlw":["ellas",1912],"trw":["lado",4590],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",45659],"trp":["ig",52962],"tlw":["volvio",2823],"trw":["oigo",95],"lp":["vo","gi","vio","vol","tio","volv","gl"],"rp":["ig","lt","lg","lv","ito","ov","igo","olv","lgo","lvi","olvi","lto","lig"]},"105":{"input":[1,4,6,7],"tlp":["alg",26073],"trp":["lta",13054],"tlw":["algo",9338],"trw":["italia",381],"lp":["alg","tal","alt","algo","fl","alta","val","agi","voz","fal","alto","tall","avo","alv","gia"],"rp":["lta","iga","lat","ofi","lav"]},"106":{"input":[2,4,6,7],"tlp":["cio",75669],"trp":["ico",18875],"tlw":["visto",3153],"trw":["loco",681],"lp":["cio","cl","sig","col","ccio","cil","vos","cios","colo"],"rp":["ico","lic","icio","oci","isto","lc","loc","icos","lici","lico","igos"]},"107":{"input":[1,2,4,6,7],"tlw":["facil",1160],"trw":["oficial",985],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",36719],"trp":["leg",18029],"tlw":["rio",1831],"trw":["llego",2460],"lp":["rio","rl","erio","evo","gri","tori","tel","erl","rlo","rig"],"rp":["leg","ori","lev","lleg","iero","lor","llev","ove","ler","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["favor",1408],"trw":["llegar",2630],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cierto",3067],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["todavia",3269],"trw":["llegado",1772],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",77353],"trw":["nino",1684],"lp":[],"rp":["ui","ion","ho","lu","ul","ino","hu","uni","oni","nio","lin","lon","ulo","iu","inu","olu","onio","uin","nino","uil"]},"113":{"input":[1,5,6,7],"tlp":["qui",49071],"trp":["lan",19182],"tlw":["aqui",6351],"trw":["hizo",5133],"lp":["qui","aho","aqui","zon","azon","alq","alqu"],"rp":["lan","ual","nal","uz","iona","hizo","ula","iqu","lq","lqu","lqui","inal","ualq"]},"114":{"input":[2,5,6,7],"tlp":["sion",15408],"trp":["ijo",20150],"tlw":["sino",5212],"trw":["hijo",3480],"lp":["sion","sino","sul","solu"],"rp":["ijo","hos","hijo","usi","uis","lus","inos","onsi","luso","ijos","usio","ulos","nsio","luis","jul","juli"]},"115":{"input":[1,2,5,6,7],"tlw":["quiso",1107],"trw":["julia",613],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",1805],"trp":["uel",35859],"trw":["hoy",2254],"lp":["elen","euni"],"rp":["uel","uie","uien","len","uell","ione","lue","uelo","llen","ilen","lien","hoy","ley","hue","lone","line","leno","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["quien",8560],"trw":["linea",925],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["dijo",13944],"trw":["lejos",1983],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aquellos",2619],"trw":["juez",487],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",44167],"trp":["lgu",15861],"tlw":["tuvo",2452],"trw":["ningun",2097],"lp":["bl","gui","tuv","bio","vu"],"rp":["lgu","ult","igu","lgun","uv","ubi","itu","ing","ibl","hub","onv","lib","hubi","ulti","obl"]},"121":{"input":[1,4,5,6,7],"tlw":["alguna",3442],"trw":["ninguna",2180],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2085],"trw":["incluso",2762],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["cual",3860],"trw":["habitacion",1620],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["voy",2278],"trw":["luego",6071],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["ahora",9282],"trw":["lugar",4548],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["dicho",3458],"trw":["noche",5939],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ciudad",3866],"trw":["historia",2737],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",273],"trw":["p",308],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",34091],"trp":["pa",189321],"trw":["papa",1263],"lp":["ap","apa"],"rp":["pa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",58765],"trp":["ps",612],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",11453],"trp":["pas",22840],"trw":["pasa",1406],"lp":["spa","asp","sap","sapa","apas","spas"],"rp":["pas","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",17553],"trp":["pe",152316],"tlw":["ep",67],"trw":["pepe",388],"lp":["ep","epe","epp"],"rp":["pe","pep","pepe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",7112],"trp":["pape",1900],"trw":["pa'",77],"lp":["xp","exp","ape","epa","xpe","expe","a'","xpa","expa"],"rp":["pape","pea","pa'","pepa"]},"134":{"input":[2,3,8],"tlp":["esp",48661],"trp":["pes",7009],"trw":["pese",726],"lp":["esp","spe","espe","desp","sep","dep","sesp","depe","sped","spes"],"rp":["pes","ped","pese","pede"]},"135":{"input":[1,2,3,8],"tlp":["espa",10359],"trp":["pad",10546],"tlw":["espada",1195],"trw":["pase",469],"lp":["espa","esap","aspe","spad","sepa","xped","apad","epas","depa","spea"],"rp":["pad","pesa","pada","pase","peda","pade","pead"]},"136":{"input":[4,8],"trp":["pt",3066],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",602],"trp":["pat",4693],"tlw":["tapa",136],"trw":["pata",128],"lp":["tap","apat","tapa","apt","apta"],"rp":["pat","pta","pata"]},"138":{"input":[2,4,8],"trp":["pc",1379],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",8573],"trp":["pac",6048],"tlw":["capa",378],"trw":["patas",294],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","past","pact"]},"140":{"input":[3,4,8],"tlp":["rp",9074],"trp":["pr",105517],"trw":["peter",135],"lp":["rp","rep","erp","rpr","rpre","ept","repe","epr","epre","repr","rpe"],"rp":["pr","per","pre","pet","pert","pret","prep","perr","pete"]},"141":{"input":[1,3,4,8],"tlp":["apar",7464],"trp":["par",95147],"tlw":["aparte",525],"trw":["para",50839],"lp":["apar","apr","epar","rap","apre","repa","xper","xpr","expr","xpre","epta"],"rp":["par","para","pare","part","pera","pra","perf","patr","pref"]},"142":{"input":[2,3,4,8],"tlp":["resp",9516],"trp":["pres",14702],"tlw":["espere",155],"trw":["perder",971],"lp":["resp","sper","spec","cep","cept","spet","epc","cepc","spr","espr","spre"],"rp":["pres","pec","pers","perd","prec","pect","pedr","perc","pece"]},"143":{"input":[1,2,3,4,8],"tlw":["espera",1024],"trw":["padre",6018],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",72228],"trw":["m",171],"lp":[],"rp":["mp","nm","mn","mpp"]},"145":{"input":[1,5,8],"tlp":["am",111190],"trp":["ma",217996],"tlw":["ama",379],"trw":["manana",3399],"lp":["am","ama","amp","aman","ampa"],"rp":["ma","man","pan","mpa","mana","mpan","pana","mam","nam","mama","mna","maq","pam","mpam","nap"]},"146":{"input":[2,5,8],"tlp":["sm",16472],"trp":["nsp",1139],"lp":["sm"],"rp":["nsp","mps","nsm"]},"147":{"input":[1,2,5,8],"tlp":["span",4757],"trp":["mas",62981],"tlw":["sam",202],"trw":["mas",42217],"lp":["span","sma","sam","amas","asm","smas","asma","asam","ansp"],"rp":["mas","jam","jama","nsam","paj","paja","masa","maj","mpas","mnas","mans"]},"148":{"input":[3,5,8],"tlp":["em",88958],"trp":["me",181753],"trw":["me",47087],"lp":["em","emp","eme","emen","empe","enem","epen","emn"],"rp":["me","men","pen","mpe","nem","nme","mem","mene","nmen","mpen","pene","pey"]},"149":{"input":[1,3,5,8],"tlp":["ame",24574],"trp":["mane",7021],"tlw":["examen",171],"trw":["pena",1009],"lp":["ame","amen","ema","eman","apen","enam","eam","eame","xam"],"rp":["mane","may","peq","pena","pane","mae","mena","max","name","mame","mex"]},"150":{"input":[2,3,5,8],"tlp":["dem",13584],"trp":["med",13820],"tlw":["depende",152],"trw":["meses",1727],"lp":["dem","sem","ejem","dm","seme","emej","spej","emed"],"rp":["med","pens","mej","mes","mens","jem","jemp","mese","nmed","pend","mend","pej"]},"151":{"input":[1,2,3,5,8],"tlw":["ademas",3394],"trw":["mesa",2367],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",622],"trp":["mb",53887],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",22247],"trp":["mba",6413],"tlw":["fama",385],"trw":["mata",229],"lp":["tam","amb","tamb","fam","tamp","amab","bam","atam","abam","amba"],"rp":["mba","mat","mant","mab","maba","mata","pant","pab","ntam","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["cama",1722],"trw":["pasaba",1017],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",44145],"trp":["ment",47484],"tlw":["repente",849],"trw":["mente",1213],"lp":["rm","erm","empr","tem","rme","emb","rem","term","temp"],"rp":["ment","mbr","mbre","mer","mpr","mpre","pren","met","perm","ntem","mper"]},"157":{"input":[1,3,4,5,8],"tlw":["tema",888],"trw":["manera",3467],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["empece",256],"trw":["presente",701],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",1351],"trw":["madre",4699],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",45492],"lp":[],"rp":["pi","ip","ipi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",5901],"trp":["pia",3578],"trw":["paz",1186],"lp":["api","apaz","zap","zapa","apia","apiz"],"rp":["pia","paz","pai","ipa","piz","pipa","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",5706],"trp":["isp",4720],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",239],"trp":["pais",2619],"trw":["pais",1820],"lp":["spia","aspi"],"rp":["pais","pasi","ispa","pias","pisa","psia","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",1192],"trp":["pie",14289],"trw":["pie",2140],"lp":["epi"],"rp":["pie","ipe","ipie","pei"]},"165":{"input":[1,3,6,8],"trp":["pez",4584],"trw":["pieza",377],"lp":[],"rp":["pez","peza","piez"]},"166":{"input":[2,3,6,8],"tlp":["espi",3579],"trp":["pid",4842],"trw":["pies",1461],"lp":["espi","disp","dip","epis","spie","spid"],"rp":["pid","pedi","pied","pies","pidi","pide","pesi","ispe","ipes","k'","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",172],"trw":["paises",358],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2633],"trp":["pit",4928],"lp":["tip","tipi"],"rp":["pit","piti","pti","ipt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3167],"trp":["pita",2814],"tlw":["tapia",110],"lp":["apit","tapi","vap"],"rp":["pita","pati","pav"]},"170":{"input":[2,4,6,8],"tlp":["cip",5255],"trp":["pci",1379],"lp":["cip","cipi","spit","scip","visp"],"rp":["pci","pist","icip","pic","ipc","ipci","ipic","psic","pisc","ptic"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1523],"trw":["pista",305],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["repi",892],"trp":["pri",18110],"tlw":["repetir",243],"trw":["pierre",163],"lp":["repi","epit","epti","rip","rpi","trip","epri","erpi"],"rp":["pri","peri","pir","pier","piri","peti","priv","prev","ptie","piet","perv","pite"]},"173":{"input":[1,3,4,6,8],"tlw":["repetia",185],"trw":["partir",944],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1047],"trw":["pedir",513],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["capacidad",547],"trw":["parecia",4070],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",147074],"trw":["mi",29966],"lp":[],"rp":["mi","im","min","imp","imi","nim","inm","pin","mpi","mini","nmi","impi","pini","imin","inim","hip","him","imn","ph","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",19873],"trp":["ima",14150],"tlw":["anima",95],"trw":["mia",816],"lp":["ami","amin","anim","aim"],"rp":["ima","mina","iam","mia","mani","nima","pani","impa","ham","mpia","niam","mai","nami","mian","inam","imam"]},"178":{"input":[2,5,6,8],"tlp":["sim",4131],"trp":["mis",25550],"trw":["mis",5514],"lp":["sim","simp","simi","spin","smi","smis","sism"],"rp":["mis","ism","mism","misi","isim","insp","nspi","jim","nism","imis","hisp","ismi","jimi"]},"179":{"input":[1,2,5,6,8],"tlw":["animas",76],"trw":["misma",3576],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",4450],"trp":["mie",21370],"lp":["emi","empi","emin"],"rp":["mie","iem","iemp","mien","ime","imie","hem","inme","imen","pien","nemi","impe","miem","mpie","meni","heme","mine"]},"181":{"input":[1,3,5,6,8],"tlw":["empieza",396],"trw":["maxima",192],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dime",307],"trw":["impide",99],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demasiadas",229],"trw":["media",1745],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",9690],"trp":["mbi",15416],"lp":["tim","vim","timi","vimi","timb"],"rp":["mbi","mit","miti","ntim","pint","imit","imb","itm","pib","mbit","itim","ivim","mbin","mib","ptib"]},"185":{"input":[1,4,5,6,8],"trw":["pinta",126],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",64],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitan",1308],"trw":["incapaz",452],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["verme",274],"trw":["primer",2357],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tambien",10237],"trw":["primera",3631],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["siempre",8021],"trw":["presidente",1129],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["encima",2175],"trw":["mientras",7333],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",202728],"trw":["pop",64],"lp":[],"rp":["po","op","opo","pop","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",2962],"trp":["opa",4287],"trw":["popa",199],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8366],"trp":["pos",15078],"trw":["pos",130],"lp":["spo","spos","sop","sosp","sopo"],"rp":["pos","osp","opos","poso","pso","ops"]},"195":{"input":[1,2,7,8],"tlp":["apos",275],"trp":["paso",5668],"tlw":["sopa",128],"trw":["paso",4414],"lp":["apos","sopa"],"rp":["paso","opas","posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",1772],"trp":["ope",2726],"lp":["epo","eppo"],"rp":["ope","peo","poe","opeo","pope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",209],"trp":["opea",131],"lp":["xpo","expo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["espo",6435],"trp":["pod",19770],"tlw":["esposo",391],"trw":["peso",623],"lp":["espo","epos","depo","dop","speo","dope"],"rp":["pod","pode","pose","ospe","peso","poes","psoe","peos","podo"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",926],"trw":["pasado",2726],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",143],"trp":["pto",1342],"trw":["opto",99],"lp":["top"],"rp":["pto","pot","opt","opto"]},"201":{"input":[1,4,7,8],"tlp":["apag",394],"trp":["pag",2930],"tlw":["apago",137],"trw":["pago",329],"lp":["apag","tapo"],"rp":["pag","paga","pago","pato","opag","opta"]},"202":{"input":[2,4,7,8],"tlp":["cop",1471],"trp":["poc",14176],"trw":["poco",8226],"lp":["cop","scop","copo","tops"],"rp":["poc","poco","post","opc","ptos"]},"203":{"input":[1,2,4,7,8],"tlw":["copa",496],"trw":["pocas",752],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11433],"trp":["por",105551],"tlw":["torpe",134],"trw":["por",82819],"lp":["rop","rpo","erpo","trop","ropo","epto"],"rp":["por","pero","pro","preg","prop","port","orp","orpr","preo","prot","opor","peor","oper","peg"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",972],"trw":["pagar",556],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["espero",808],"trw":["poder",3232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["aspecto",1030],"trw":["profesor",509],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",151250],"trw":["puno",277],"lp":[],"rp":["mo","om","pu","mu","omo","mpo","um","omp","up","pon","mon","mun","mom","pun","upo","nom","omu","omun","num","umo"]},"209":{"input":[1,5,7,8],"tlp":["amo",19266],"trp":["mano",16278],"tlw":["amo",786],"trw":["mano",5872],"lp":["amo","ampo","apu","amon","aum"],"rp":["mano","oma","ompa","uma","pano","upa","uman","oman","manu","pau","mona","maqu","namo","umna","uap"]},"210":{"input":[2,5,7,8],"tlp":["spu",13016],"trp":["mos",30677],"tlw":["somos",935],"trw":["puso",2090],"lp":["spu","smo","sup","spon","som","supo","supu","sum","somo","smos"],"rp":["mos","muj","pus","puso","mpos","mus","moso","omos","pons","usp"]},"211":{"input":[1,2,5,7,8],"tlw":["suma",280],"trw":["manos",4296],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",15453],"trp":["pue",46340],"tlw":["empeno",236],"trw":["muy",14472],"lp":["emo","empo","emon","epu"],"rp":["pue","ome","muy","omen","mue","meno","mome","ume","pone","upe","umen","nume","nemo","upue","poy","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["apoyo",685],"trw":["pequeno",1827],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["despues",9579],"trw":["menos",6628],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["amado",313],"trw":["mando",1140],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",6546],"trp":["omb",23704],"tlw":["tomo",1241],"trw":["punto",3190],"lp":["tom","tum","tumb","tomo","tup","bom","tmo"],"rp":["omb","punt","nomb","umb","pub","mont","pob","mbo","mot","pong","put","moto","umbo"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",528],"trw":["punta",577],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["como",50874],"trw":["puntos",421],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tampoco",2231],"trw":["montanas",596],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grupo",2081],"trw":["momento",6711],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",3330],"trw":["porque",13945],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["cuerpo",3541],"trw":["mujer",5923],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["respuesta",1354],"trw":["personas",2316],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",26745],"trw":["pollo",147],"lp":[],"rp":["pl","opi","pli","pio","pol","poli","lp","ipo","olp","plo","opio","ipio","pil","lip","lop","plio","ipl","pill","ilip","lipo"]},"225":{"input":[1,6,7,8],"tlp":["apl",391],"trp":["pal",11994],"tlw":["apolo",118],"trw":["plaza",1014],"lp":["apl","apol","apil","apli","alop","apla"],"rp":["pal","pla","pala","opia","ipal","lpa","plaz","palo","pali","plia","pila","poz","pozo","lap"]},"226":{"input":[2,6,7,8],"tlp":["spl",427],"trp":["posi",7976],"tlw":["soplo",116],"trw":["piso",796],"lp":["spl","sopl","spio"],"rp":["posi","ispo","pios","piso","ospi","ipos","plos","lpis","opsi"]},"227":{"input":[1,2,6,7,8],"trw":["pasillo",584],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",1170],"trp":["pel",8010],"trw":["piel",1315],"lp":["epl","epli","elip","eple"],"rp":["pel","ple","lpe","olpe","peli","pelo","piel","pele","opie","pell","lipe","lope","pole","lpeo","pleo","opel"]},"229":{"input":[1,3,6,7,8],"trw":["papel",1409],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["episodio",202],"trw":["podido",1018],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["espalda",1291],"trw":["podia",6502],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["golp",2796],"trp":["polv",730],"tlw":["tipo",2063],"trw":["polvo",512],"lp":["golp","tipo","gip","gipt","tipl"],"rp":["polv","pito","ipto","ipot","ltip","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["filipo",307],"trw":["patio",737],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",271],"trw":["politicos",569],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",627],"trw":["politica",1189],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",1615],"trw":["propio",2058],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["felipe",457],"trw":["propia",1864],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replico",777],"trw":["perdido",1215],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["especial",896],"trw":["podria",2740],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["hom",15529],"trw":["mil",2026],"lp":[],"rp":["hom","mil","lm","mpl","imo","omi","mili","impo","mino","hum","lim","moni","ompl","mio","mpli","lum","poni","pul","mplo","impl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1817],"trw":["mal",3264],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"trw":["mismo",8546],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["suponia",297],"trw":["humanos",580],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["empleo",215],"trw":["pleno",336],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["empezo",1641],"trw":["manuel",722],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ejemplo",1285],"trw":["medio",3051],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["demasiado",2974],"trw":["podian",1303],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["ultimo",2103],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["amigo",2622],"trw":["ultima",1629],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["conmigo",1217],"trw":["mucho",7468],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["camino",3366],"trw":["muchas",2632],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["tiempo",9492],"trw":["hombre",8282],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1135],"trw":["hermano",2152],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["respondio",2029],"trw":["hombres",5292],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["comenzo",1401],"trw":["palabras",3233],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",68],"tlw":["a",207382],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",1790],"tlw":["s",277],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",412461],"lp":["as","sa","asa","sas","asas","wa","ass","ssa","was","saa","aw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4724],"tlw":["e",5916],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",27380],"tlw":["ex",477],"lp":["ea","ex","ae","xa","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",743538],"tlw":["de",453446],"lp":["de","es","se","ed","des","ese","ede","sd","esd","desd","sde","esde","ses","ded","dese","eses","edes","eded","sed","ees"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",219474],"tlw":["esa",8099],"lp":["ad","da","dad","ada","esa","eda","ade","das","ase","sad","edad","sea","dea","dade","esas","asad","ades","desa","adas","ases"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",782],"tlw":["t",90],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",307672],"tlw":["f",113],"lp":["ta","at","fa","ata","af","afa","tat","fat","fata","att","taf","ft","atat","tata","ff","ataf","tf","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",235201],"tlw":["c",615],"lp":["st","sc","ct","cc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",200066],"tlw":["casa",9057],"lp":["ca","ac","sta","cas","ast","tas","asta","casa","sca","aca","act","sac","stas","tac","cta","acc","sf","fac","cat","cast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",499829],"tlw":["te",14709],"lp":["er","re","te","tr","rt","rr","et","ert","ter","tre","ere","err","rte","rre","ete","erte","ret","rer","etr","terr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",416643],"tlw":["era",32659],"lp":["ra","ar","era","tra","ara","tar","are","fe","rta","art","fr","rar","rra","erra","ef","erta","atr","eta","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",139908],"tlw":["ser",12211],"lp":["est","ec","ce","res","rec","rd","cer","cr","dr","ste","rs","ser","tes","str","ces","rc","esc","der","erd","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",69315],"tlw":["esta",18675],"lp":["esta","ras","ace","car","rad","tad","tras","acer","adr","arec","sar","cad","ard","rac","rda","adre","dar","stra","rca","erda"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",1348],"trw":["n",91],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",382423],"trp":["na",233186],"tlw":["ana",597],"lp":["an","ana","aq","anan","anq","ann","anna"],"rp":["na","nq","nan","nana","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",1069],"trp":["ns",48331],"trw":["j",166],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",27458],"trp":["ja",36319],"tlw":["san",1894],"trw":["ja",145],"lp":["aj","san","aja","anas","ans","sq","saj","anj","ansa","asan","ajas","ajan"],"rp":["ja","nas","nsa","jan","jas","naj","nsan","nsaj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",684719],"trp":["ne",94467],"tlw":["en",194129],"trw":["y",254303],"lp":["en","ene","ey","enen","eye","eyen","een","enn","enne"],"rp":["ne","ye","nen","yen","ny","nne","nny","yn","yene","yne"]},"21":{"input":[1,3,5],"tlp":["ena",25795],"trp":["ya",27580],"tlw":["ay",587],"trw":["ya",19283],"lp":["ena","ay","ane","eq","aya","ean","aye","aen","enan","ayan","enea","anen","ayen","anea","xq","exq"],"rp":["ya","nea","yan","nex"]},"22":{"input":[2,3,5],"tlp":["ej",40475],"trp":["nd",141755],"tlw":["deje",506],"lp":["ej","end","sen","ens","den","dej","ende","esen","eje","enes","ense"],"rp":["nd","je","nes","nde","nse","ndes","jes","nden","yend"]},"23":{"input":[1,2,3,5],"tlp":["and",60909],"trp":["nad",25609],"tlw":["deja",806],"trw":["nada",10498],"lp":["and","eja","ensa","aje","deja","dan","enas","ande","anda","ejan","sena","enda","anad","dena","dand"],"rp":["nad","nda","nada","jad","jand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",656],"trp":["nt",349002],"tlw":["b",221],"lp":["bt","tb","bn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ab",230416],"trp":["nta",49640],"tlw":["tan",12045],"lp":["ab","ba","aba","ant","tan","tab","taba","ban","tant","aban","anta","bat","tana"],"rp":["nta","nf","ntan","nat","ntab","nab","naba"]},"26":{"input":[2,4,5],"tlp":["bs",5233],"trp":["nc",100151],"lp":["bs","bj","bst","cn","sb","bc","tj"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["stab",23089],"trp":["nca",10670],"tlw":["santa",1043],"lp":["stab","cab","sab","anc","baj","can","stan","caba","abaj","bas","acab","baja","saba","sant","tanc","bast"],"rp":["nca","ntas","nac","nsta"]},"28":{"input":[3,4,5],"tlp":["ent",186144],"trp":["nte",139591],"tlw":["entre",11695],"lp":["ent","br","ente","ten","bre","be","entr","eb","ren","rn","ber","ener","ern","tene"],"rp":["nte","ntr","ner","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",49950],"trp":["ntra",26185],"tlw":["eran",5913],"trw":["yabran",492],"lp":["ran","ante","abe","enta","bra","abr","rab","rq","raba","bar","eran","aber","trab","abra","tran","rant"],"rp":["ntra","nar","nera","ntar"]},"30":{"input":[2,3,4,5],"tlp":["enc",41323],"trp":["ntes",22621],"tlw":["debe",1755],"lp":["enc","sent","cen","deb","dent","bres","tend","rend","rden","tenc","debe","cent"],"rp":["ntes","nce","jer","nces","nec","nece","ndr","nder"]},"31":{"input":[1,2,3,4,5],"tlw":["estaba",15906],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1864],"trw":["i",432],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",46428],"trp":["ia",302035],"lp":["za","az","ai","aza","aia","zi","azi","zz","aiz","azz"],"rp":["ia","iz","iza","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",193578],"trp":["is",104027],"tlw":["si",37389],"lp":["si","sis","sk","ssi"],"rp":["is","isi","ki","iss","isis","ik","iki","kis","ikis","kiss","isk","issi"]},"35":{"input":[1,2,6],"tlp":["asi",27185],"trp":["ias",18810],"tlw":["asi",11044],"trw":["kazz",77],"lp":["asi","sia","asia","zas","ais","sias","wi","asis","aisa","wis","wiss","azas","ak"],"rp":["ias","isa","izas","isas","ka","ika","issa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",15743],"trp":["ie",233722],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",37550],"trp":["iez",3157],"tlw":["xii",131],"trw":["ix",78],"lp":["ez","eza","xi","exi","eia","axi","xii","zie","azie","xix","xiii","ze"],"rp":["iez","ieza","ix"]},"38":{"input":[2,3,6],"tlp":["di",175458],"trp":["id",129921],"tlw":["seis",1304],"trw":["kid",113],"lp":["di","edi","sie","esi","die","sid","dis","did","side","eis","esid","edid","sei"],"rp":["id","ide","ies","ied","idi","iese","ise"]},"39":{"input":[1,2,3,6],"tlp":["dia",37584],"trp":["ida",49293],"tlw":["dia",8188],"trw":["idea",2311],"lp":["dia","adi","edia","dias","adie","dida","siad","zad","sida","xis","exis","esia","aid","diez"],"rp":["ida","idad","iad","idea","idas","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",133369],"trp":["it",63123],"tlw":["ti",1888],"trw":["iv",187],"lp":["ti","vi","viv","tiv","tit","vivi","vit","tti","tivi","vii","viii"],"rp":["it","iv","iti","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["va",51609],"trp":["ita",23108],"tlw":["va",3371],"lp":["va","fi","av","via","tia","avi","ati","avia","ava","fia","vita","tiva","afi","fav","ativ"],"rp":["ita","if","ifi","iva","iat"]},"42":{"input":[2,4,6],"tlp":["ci",238810],"trp":["ic",95632],"lp":["ci","sti","vis","tic","sit","cci","vist","cis","cti","sic","vic","visi","sist","cit","tici"],"rp":["ic","ist","ici","isti","isc"]},"43":{"input":[1,2,4,6],"tlp":["cia",69052],"trp":["ica",24474],"tlw":["casi",5393],"lp":["cia","aci","acia","fic","fici","casi","cias","tica","stia","taci","vas","sita","asti","saci","acti","acci"],"rp":["ica","ista","icia","ific"]},"44":{"input":[3,4,6],"tlp":["ri",190312],"trp":["ir",83670],"tlw":["ver",6228],"trw":["ir",2754],"lp":["ri","ve","ev","eri","ver","tie","vie","rti","rri","rit","rv","rie","tir","erv","tri","teri"],"rp":["ir","ier","iert","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",49114],"trp":["ira",16443],"tlw":["vez",12860],"trw":["ira",503],"lp":["ria","ari","eva","eria","vez","aria","raz","ave","var","zar","arti","rz","erz","rav","rza","fie"],"rp":["ira","iera","itar","iar"]},"46":{"input":[2,3,4,6],"tlp":["eci",43130],"trp":["ice",8339],"tlw":["decir",4827],"trw":["irse",431],"lp":["eci","cie","reci","dic","vid","deci","cid","rid","ris","cri","tid","dir","cier","cir","esti","rdi","dri","ves"],"rp":["ice","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["vida",8817],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",187273],"trw":["ni",13944],"lp":[],"rp":["in","ni","hi","nin","ini","hin","hn","inn","nh","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",14690],"trp":["ha",179890],"tlw":["ahi",2676],"trw":["ha",13606],"lp":["ah","ani","anz","anza","ahi","ania","zan","zq"],"rp":["ha","ian","ina","nia","nz","nza","han","hiz","iq","nian","iana","nina"]},"50":{"input":[2,5,6],"tlp":["sin",33228],"trp":["ij",25903],"tlw":["sin",21600],"lp":["sin","sini","sh","shi"],"rp":["ij","nsi","hij","ins","his","nis","ji","nsis","inis","insi","jin","nk","hisi","iji","inj","nins"]},"51":{"input":[1,2,5,6],"tlp":["siq",2408],"trp":["has",20672],"tlw":["ansia",145],"trw":["has",2554],"lp":["siq","ansi","sina","asin","anis","ash"],"rp":["has","ija","iaj","inas","hija","nzas","jai","nias","iaja","nsia","ijas","isaj","hans","isan"]},"52":{"input":[3,5,6],"tlp":["eni",26205],"trp":["ien",107409],"tlw":["eh",468],"trw":["he",7264],"lp":["eni","ein","enie","eh","enin","ehi","enei"],"rp":["ien","he","iene","ine","nie","nien","hie","inie","hen","inen","nei","nhe","nine"]},"53":{"input":[1,3,5,6],"tlp":["enia",16307],"trp":["hay",9090],"trw":["hay",7403],"lp":["enia","enz","enza","eina","enaz","eian","ezan","anie","eniz","aine"],"rp":["hay","haya","inea","ienz","hae","nez","hez","iena","yah","inez"]},"54":{"input":[2,3,5,6],"tlp":["dij",16709],"trp":["ndi",19946],"tlw":["dije",1690],"trw":["ines",410],"lp":["dij","endi","enid","sien","din","dien","dine","dije","ensi"],"rp":["ndi","iend","nid","ind","iden","ndid","indi","iej","ije","nsid","iens"]},"55":{"input":[1,2,3,5,6],"tlw":["ansiedad",269],"trw":["nadie",5526],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",119303],"trp":["ib",32479],"trw":["ibn",155],"lp":["bi","tin","vin","bit","th","tint"],"rp":["ib","int","nti","nv","ibi","nvi","ntin","inti","inv","nit","invi","niv","init","nvit"]},"57":{"input":[1,4,5,6],"tlp":["abi",63989],"trp":["hab",72658],"tlw":["fin",4343],"trw":["habia",39290],"lp":["abi","bia","abia","fin","bian","van","anti","fina","vant","vab","vaba","abit","zab"],"rp":["hab","habi","iba","inf","nfi","itan","ntia"]},"58":{"input":[2,4,5,6],"tlp":["ch",74839],"trp":["nci",46192],"lp":["ch","cin","sib","chi","stin","cinc","cib","chic","sint","cibi"],"rp":["nci","inc","nic","hic","ich","inci","inst","hist","nch","hici"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",3858],"trw":["hasta",13934],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",35373],"trp":["ient",36355],"tlw":["bien",10956],"lp":["bie","bien","ven","teni","bri","enti","tien","bier","rin","rib","ebi","rien","vien","vent"],"rp":["ient","inte","her","nve","ibr","nri"]},"61":{"input":[1,3,4,5,6],"tlw":["tenia",10650],"trw":["haber",3961],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tienes",1622],"trw":["interes",873],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["cabeza",5567],"trw":["hacer",6941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",993],"trw":["o",22465],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",736],"trp":["oa",1039],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",149815],"trp":["os",465150],"tlw":["sos",79],"trw":["os",2177],"lp":["so","sos","sso"],"rp":["os","oso","osos","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",13706],"trp":["osa",17222],"lp":["aso","asos","aos","saso","wo"],"rp":["osa","osas","ow","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",16208],"trp":["oe",2284],"trw":["-",992],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",492],"trp":["ox",1396],"lp":["xo","exo"],"rp":["ox"]},"70":{"input":[2,3,7],"tlp":["do",328036],"trp":["od",79897],"tlw":["dos",13303],"lp":["do","dos","eso","edo","esos","dedo","seo","eseo","dose","edos","deo","eos","seos"],"rp":["od","odo","odos","ode","ose","oses","oes"]},"71":{"input":[1,2,3,7],"tlp":["ado",89938],"trp":["oda",15354],"tlw":["dado",2055],"lp":["ado","ados","dado","sado","eado","aseo","sexo","adeo","dosa","dox","adox"],"rp":["oda","odas","odea","osad","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",261028],"trp":["ot",48115],"tlw":["g",93],"lp":["to","go","tot","got","goo","goog","tog","gt","gto","gg","goto","tto"],"rp":["ot","og","oto","oog","otog","ogo","ogg"]},"73":{"input":[1,4,7],"tlp":["ga",53335],"trp":["of",10649],"tlw":["foto",316],"trw":["of",213],"lp":["ga","ag","fo","ato","ago","aga","tota","fot","foto","gat","tag","afo","gota","gato","tago","gaf"],"rp":["of","ota","oga","ofo"]},"74":{"input":[2,4,7],"tlp":["co",351806],"trp":["oc",68424],"tlw":["toco",325],"lp":["co","sto","tos","cos","cto","sco","gos","stos","sot","cost","coc","cog","soc","sg"],"rp":["oc","oco","ost","osot","osc","oct"]},"75":{"input":[1,2,4,7],"tlp":["cosa",9340],"trp":["oca",11672],"tlw":["cosas",5443],"lp":["cosa","aco","caso","gas","acto","atos","gac","sof","toca","saco","asto","cato","sag","asco","acos"],"rp":["oca","ocas","osta","otas","osof"]},"76":{"input":[3,4,7],"tlp":["ro",246584],"trp":["or",270405],"tlw":["error",581],"trw":["otro",8826],"lp":["ro","ero","eg","tro","gr","ge","rg","tor","ego","rto","reg","erto","rro","rgo"],"rp":["or","otr","otro","ort","ore","orr"]},"77":{"input":[1,3,4,7],"tlp":["gra",22435],"trp":["ora",27567],"tlw":["rato",1491],"trw":["otra",7718],"lp":["gra","aro","gar","ega","arg","for","argo","rga","egar","atro","arga","rato","rof","agr","age","arro","arto"],"rp":["ora","otra","orta"]},"78":{"input":[2,3,4,7],"tlp":["tod",44574],"trp":["ord",10842],"tlw":["todo",18934],"trw":["otros",4846],"lp":["tod","ros","todo","esto","seg","cor","tros","dor","stro","rso","rdo","erso","ecto","eco","eros","corr","reco"],"rp":["ord","ores","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["toda",5491],"trw":["otras",3010],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",376567],"trw":["no",116565],"lp":[],"rp":["on","no","un","nu","uno","ono","nun","uo","nuo","non","ou","onu","onun","uu","oun","nou","nnu","nuno","onn"]},"81":{"input":[1,5,7],"tlp":["qu",432873],"trp":["una",93404],"tlw":["aun",5685],"trw":["una",79449],"lp":["qu","ano","aqu","au","aun","aunq","anu","anqu"],"rp":["una","ua","uan","ona","nqu","unq","unqu","nua","oq","oqu","uq","uqu"]},"82":{"input":[2,5,7],"tlp":["su",160644],"trp":["us",78931],"tlw":["su",81749],"trw":["nos",11959],"lp":["su","sus","son","sun"],"rp":["us","jo","nos","ju","jos","ons","oj","uj","unos","ojo","uso","ojos","jun","nso","noso","jus"]},"83":{"input":[1,2,5,7],"tlp":["anos",18802],"trp":["unas",5230],"tlw":["anos",8719],"trw":["unas",3324],"lp":["anos","ajo","sona","aus","asu","sua","ausa","squ","asun"],"rp":["unas","usa","jua","juan","onas","oja","uas","onaj","onsa","osq","osqu"]},"84":{"input":[3,5,7],"tlp":["eno",33962],"trp":["ue",565691],"trw":["yo",19966],"lp":["eno","eu","enu","eon","eun","eyo"],"rp":["ue","yo","uen","one","uy","nue","oy","ueno","uyo","yu","oye","une","oyo","yun"]},"85":{"input":[1,3,5,7],"tlp":["que",383802],"trp":["nque",7839],"tlw":["que",312514],"lp":["que","aque","ayo","equ","eque","quen","ayu","anue","ayun","aneo","xu","exu","xua","exua"],"rp":["nque","uena","uya","oya","uque","oque"]},"86":{"input":[2,3,5,7],"tlp":["du",23000],"trp":["ndo",74158],"tlw":["donde",10101],"trw":["jose",1204],"lp":["du","don","ejo","endo","dond","enos","seno","sue"],"rp":["ndo","ues","ud","ond","ued","ones","onde","und","uje","nues","undo","uede"]},"87":{"input":[1,2,3,5,7],"tlw":["quedo",2301],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",90299],"trp":["nto",80019],"tlw":["tu",10629],"trw":["noto",316],"lp":["gu","tu","gun","bo","bu","ton","gunt"],"rp":["nto","ob","ont","ng","unt","ub","ut","unto","nton","ug","ngu","uto","ngo"]},"89":{"input":[1,4,5,7],"tlp":["fu",44220],"trp":["uga",7270],"tlw":["tanto",6066],"trw":["nota",486],"lp":["fu","anto","gua","gan","guna","tua","agu","ang","agua","fun","abo","atu","fon"],"rp":["uga","unta","uant","onta","onf","uta","oba"]},"90":{"input":[2,4,5,7],"tlp":["con",167856],"trp":["uc",36702],"tlw":["con",92933],"trw":["junto",3143],"lp":["con","cu","cont","sob","cons","scu","cono","stu","tonc"],"rp":["uc","noc","ust","nco","onc","ntos","unc","ocu","onoc","ncon","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["bajo",4396],"trw":["nunca",6044],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",40726],"trp":["ur",54620],"tlw":["gente",4061],"trw":["negro",1571],"lp":["ento","ron","egu","ru","gen","egun","eron","enor","tur","bue","buen"],"rp":["ur","uer","obr","obre","nor","uert","ontr","uro","uent"]},"93":{"input":[1,3,4,5,7],"tlw":["fue",13323],"trw":["obra",1151],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",15089],"trw":["usted",6039],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["cuando",21007],"trw":["nuestra",3160],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",300357],"trw":["lo",69406],"lp":[],"rp":["lo","io","ll","li","ol","il","llo","olo","ill","ili","oli","lli","illo","lio","oi","ilo","oll","iol","ollo","ilio"]},"97":{"input":[1,6,7],"tlp":["al",268424],"trp":["la",523649],"tlw":["al",55586],"trw":["la",292004],"lp":["al","zo","all","ali","ala","azo","alo","alli","alla","allo"],"rp":["la","lla","lia","illa","ial","oz","ola","izo","ilia","ila"]},"98":{"input":[2,6,7],"tlp":["sol",26132],"trp":["los",142568],"tlw":["solo",13145],"trw":["los",122255],"lp":["sol","sio","solo","sil","sill","sl","soli"],"rp":["los","ios","llos","osi","iso","isio","ls","ioso","lis","ols","lso","loso","isl"]},"99":{"input":[1,2,6,7],"tlp":["sal",19326],"trp":["las",90934],"tlw":["salio",1704],"trw":["las",76432],"lp":["sal","sali","zos","asio","sola","sala","azos","sla","alas","salo","asil","als","alis"],"rp":["las","llas","iosa","lsa","olas","isla","olsa"]},"100":{"input":[3,6,7],"tlp":["el",426668],"trp":["le",198463],"tlw":["el",234850],"trw":["le",48083],"lp":["el","ell","ello","elo","ele","eli","elle","elli"],"rp":["le","lle","ole","ile","iel","lie","ielo","leo","lee","iole","lei","ille"]},"101":{"input":[1,3,6,7],"tlp":["ella",27778],"trp":["lez",2228],"tlw":["ella",14508],"trw":["leia",238],"lp":["ella","ale","ela","alle","eal","eali","ezo","alie","alez","eliz","elia","ael","xio","exio"],"rp":["lez","leza","lea","iale","oxi","llez"]},"102":{"input":[2,3,6,7],"tlp":["del",76844],"trp":["ido",57544],"tlw":["del",70196],"trw":["les",7650],"lp":["del","dio","dios","dido","sido","edio","esio","dol","sile","eles"],"rp":["ido","les","odi","lid","ld","idos","ilid","oles","idio","iles"]},"103":{"input":[1,2,3,6,7],"tlw":["ellas",1912],"trw":["lado",4590],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",45659],"trp":["ig",52962],"tlw":["volvio",2823],"trw":["oigo",95],"lp":["vo","gi","vio","vol","tio","volv","gl"],"rp":["ig","lt","lg","lv","ito","ov","igo","olv","lgo","lvi","olvi","lto","lig"]},"105":{"input":[1,4,6,7],"tlp":["alg",26073],"trp":["lta",13054],"tlw":["algo",9338],"trw":["italia",381],"lp":["alg","tal","alt","algo","fl","alta","val","agi","voz","fal","alto","tall","avo","alv","gia"],"rp":["lta","iga","lat","ofi","lav"]},"106":{"input":[2,4,6,7],"tlp":["cio",75669],"trp":["ico",18875],"tlw":["visto",3153],"trw":["loco",681],"lp":["cio","cl","sig","col","ccio","cil","vos","cios","colo"],"rp":["ico","lic","icio","oci","isto","lc","loc","icos","lici","lico","igos"]},"107":{"input":[1,2,4,6,7],"tlw":["facil",1160],"trw":["oficial",985],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",36719],"trp":["leg",18029],"tlw":["rio",1831],"trw":["llego",2460],"lp":["rio","rl","erio","evo","gri","tori","tel","erl","rlo","rig"],"rp":["leg","ori","lev","lleg","iero","lor","llev","ove","ler","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["favor",1408],"trw":["llegar",2630],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cierto",3067],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["todavia",3269],"trw":["llegado",1772],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",77353],"trw":["nino",1684],"lp":[],"rp":["ui","ion","ho","lu","ul","ino","hu","uni","oni","nio","lin","lon","ulo","iu","inu","olu","onio","uin","nino","uil"]},"113":{"input":[1,5,6,7],"tlp":["qui",49071],"trp":["lan",19182],"tlw":["aqui",6351],"trw":["hizo",5133],"lp":["qui","aho","aqui","zon","azon","alq","alqu"],"rp":["lan","ual","nal","uz","iona","hizo","ula","iqu","lq","lqu","lqui","inal","ualq"]},"114":{"input":[2,5,6,7],"tlp":["sion",15408],"trp":["ijo",20150],"tlw":["sino",5212],"trw":["hijo",3480],"lp":["sion","sino","sul","solu"],"rp":["ijo","hos","hijo","usi","uis","lus","inos","onsi","luso","ijos","usio","ulos","nsio","luis","jul","juli"]},"115":{"input":[1,2,5,6,7],"tlw":["quiso",1107],"trw":["julia",613],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",1805],"trp":["uel",35859],"trw":["hoy",2254],"lp":["elen","euni"],"rp":["uel","uie","uien","len","uell","ione","lue","uelo","llen","ilen","lien","hoy","ley","hue","lone","line","leno","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["quien",8560],"trw":["linea",925],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["dijo",13944],"trw":["lejos",1983],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aquellos",2619],"trw":["juez",487],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",44167],"trp":["lgu",15861],"tlw":["tuvo",2452],"trw":["ningun",2097],"lp":["bl","gui","tuv","bio","vu"],"rp":["lgu","ult","igu","lgun","uv","ubi","itu","ing","ibl","hub","onv","lib","hubi","ulti","obl"]},"121":{"input":[1,4,5,6,7],"tlw":["alguna",3442],"trw":["ninguna",2180],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2085],"trw":["incluso",2762],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["cual",3860],"trw":["habitacion",1620],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["voy",2278],"trw":["luego",6071],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["ahora",9282],"trw":["lugar",4548],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["dicho",3458],"trw":["noche",5939],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ciudad",3866],"trw":["historia",2737],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",273],"trw":["p",308],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",34091],"trp":["pa",189321],"trw":["papa",1263],"lp":["ap","apa"],"rp":["pa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",58765],"trp":["ps",612],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",11453],"trp":["pas",22840],"trw":["pasa",1406],"lp":["spa","asp","sap","sapa","apas","spas"],"rp":["pas","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",17553],"trp":["pe",152316],"tlw":["ep",67],"trw":["pepe",388],"lp":["ep","epe","epp"],"rp":["pe","pep","pepe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",7112],"trp":["pape",1900],"trw":["pa'",77],"lp":["xp","exp","ape","epa","xpe","expe","a'","xpa","expa"],"rp":["pape","pea","pa'","pepa"]},"134":{"input":[2,3,8],"tlp":["esp",48661],"trp":["pes",7009],"trw":["pese",726],"lp":["esp","spe","espe","desp","sep","dep","sesp","depe","sped","spes"],"rp":["pes","ped","pese","pede"]},"135":{"input":[1,2,3,8],"tlp":["espa",10359],"trp":["pad",10546],"tlw":["espada",1195],"trw":["pase",469],"lp":["espa","esap","aspe","spad","sepa","xped","apad","epas","depa","spea"],"rp":["pad","pesa","pada","pase","peda","pade","pead"]},"136":{"input":[4,8],"trp":["pt",3066],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",602],"trp":["pat",4693],"tlw":["tapa",136],"trw":["pata",128],"lp":["tap","apat","tapa","apt","apta"],"rp":["pat","pta","pata"]},"138":{"input":[2,4,8],"trp":["pc",1379],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",8573],"trp":["pac",6048],"tlw":["capa",378],"trw":["patas",294],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","past","pact"]},"140":{"input":[3,4,8],"tlp":["rp",9074],"trp":["pr",105517],"trw":["peter",135],"lp":["rp","rep","erp","rpr","rpre","ept","repe","epr","epre","repr","rpe"],"rp":["pr","per","pre","pet","pert","pret","prep","perr","pete"]},"141":{"input":[1,3,4,8],"tlp":["apar",7464],"trp":["par",95147],"tlw":["aparte",525],"trw":["para",50839],"lp":["apar","apr","epar","rap","apre","repa","xper","xpr","expr","xpre","epta"],"rp":["par","para","pare","part","pera","pra","perf","patr","pref"]},"142":{"input":[2,3,4,8],"tlp":["resp",9516],"trp":["pres",14702],"tlw":["espere",155],"trw":["perder",971],"lp":["resp","sper","spec","cep","cept","spet","epc","cepc","spr","espr","spre"],"rp":["pres","pec","pers","perd","prec","pect","pedr","perc","pece"]},"143":{"input":[1,2,3,4,8],"tlw":["espera",1024],"trw":["padre",6018],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",72228],"trw":["m",171],"lp":[],"rp":["mp","nm","mn","mpp"]},"145":{"input":[1,5,8],"tlp":["am",111190],"trp":["ma",217996],"tlw":["ama",379],"trw":["manana",3399],"lp":["am","ama","amp","aman","ampa"],"rp":["ma","man","pan","mpa","mana","mpan","pana","mam","nam","mama","mna","maq","pam","mpam","nap"]},"146":{"input":[2,5,8],"tlp":["sm",16472],"trp":["nsp",1139],"lp":["sm"],"rp":["nsp","mps","nsm"]},"147":{"input":[1,2,5,8],"tlp":["span",4757],"trp":["mas",62981],"tlw":["sam",202],"trw":["mas",42217],"lp":["span","sma","sam","amas","asm","smas","asma","asam","ansp"],"rp":["mas","jam","jama","nsam","paj","paja","masa","maj","mpas","mnas","mans"]},"148":{"input":[3,5,8],"tlp":["em",88958],"trp":["me",181753],"trw":["me",47087],"lp":["em","emp","eme","emen","empe","enem","epen","emn"],"rp":["me","men","pen","mpe","nem","nme","mem","mene","nmen","mpen","pene","pey"]},"149":{"input":[1,3,5,8],"tlp":["ame",24574],"trp":["mane",7021],"tlw":["examen",171],"trw":["pena",1009],"lp":["ame","amen","ema","eman","apen","enam","eam","eame","xam"],"rp":["mane","may","peq","pena","pane","mae","mena","max","name","mame","mex"]},"150":{"input":[2,3,5,8],"tlp":["dem",13584],"trp":["med",13820],"tlw":["depende",152],"trw":["meses",1727],"lp":["dem","sem","ejem","dm","seme","emej","spej","emed"],"rp":["med","pens","mej","mes","mens","jem","jemp","mese","nmed","pend","mend","pej"]},"151":{"input":[1,2,3,5,8],"tlw":["ademas",3394],"trw":["mesa",2367],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",622],"trp":["mb",53887],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",22247],"trp":["mba",6413],"tlw":["fama",385],"trw":["mata",229],"lp":["tam","amb","tamb","fam","tamp","amab","bam","atam","abam","amba"],"rp":["mba","mat","mant","mab","maba","mata","pant","pab","ntam","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["cama",1722],"trw":["pasaba",1017],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",44145],"trp":["ment",47484],"tlw":["repente",849],"trw":["mente",1213],"lp":["rm","erm","empr","tem","rme","emb","rem","term","temp"],"rp":["ment","mbr","mbre","mer","mpr","mpre","pren","met","perm","ntem","mper"]},"157":{"input":[1,3,4,5,8],"tlw":["tema",888],"trw":["manera",3467],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["empece",256],"trw":["presente",701],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",1351],"trw":["madre",4699],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",45492],"lp":[],"rp":["pi","ip","ipi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",5901],"trp":["pia",3578],"trw":["paz",1186],"lp":["api","apaz","zap","zapa","apia","apiz"],"rp":["pia","paz","pai","ipa","piz","pipa","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",5706],"trp":["isp",4720],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",239],"trp":["pais",2619],"trw":["pais",1820],"lp":["spia","aspi"],"rp":["pais","pasi","ispa","pias","pisa","psia","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",1192],"trp":["pie",14289],"trw":["pie",2140],"lp":["epi"],"rp":["pie","ipe","ipie","pei"]},"165":{"input":[1,3,6,8],"trp":["pez",4584],"trw":["pieza",377],"lp":[],"rp":["pez","peza","piez"]},"166":{"input":[2,3,6,8],"tlp":["espi",3579],"trp":["pid",4842],"trw":["pies",1461],"lp":["espi","disp","dip","epis","spie","spid"],"rp":["pid","pedi","pied","pies","pidi","pide","pesi","ispe","ipes","k'","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",172],"trw":["paises",358],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2633],"trp":["pit",4928],"lp":["tip","tipi"],"rp":["pit","piti","pti","ipt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3167],"trp":["pita",2814],"tlw":["tapia",110],"lp":["apit","tapi","vap"],"rp":["pita","pati","pav"]},"170":{"input":[2,4,6,8],"tlp":["cip",5255],"trp":["pci",1379],"lp":["cip","cipi","spit","scip","visp"],"rp":["pci","pist","icip","pic","ipc","ipci","ipic","psic","pisc","ptic"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1523],"trw":["pista",305],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["repi",892],"trp":["pri",18110],"tlw":["repetir",243],"trw":["pierre",163],"lp":["repi","epit","epti","rip","rpi","trip","epri","erpi"],"rp":["pri","peri","pir","pier","piri","peti","priv","prev","ptie","piet","perv","pite"]},"173":{"input":[1,3,4,6,8],"tlw":["repetia",185],"trw":["partir",944],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1047],"trw":["pedir",513],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["capacidad",547],"trw":["parecia",4070],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",147074],"trw":["mi",29966],"lp":[],"rp":["mi","im","min","imp","imi","nim","inm","pin","mpi","mini","nmi","impi","pini","imin","inim","hip","him","imn","ph","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",19873],"trp":["ima",14150],"tlw":["anima",95],"trw":["mia",816],"lp":["ami","amin","anim","aim"],"rp":["ima","mina","iam","mia","mani","nima","pani","impa","ham","mpia","niam","mai","nami","mian","inam","imam"]},"178":{"input":[2,5,6,8],"tlp":["sim",4131],"trp":["mis",25550],"trw":["mis",5514],"lp":["sim","simp","simi","spin","smi","smis","sism"],"rp":["mis","ism","mism","misi","isim","insp","nspi","jim","nism","imis","hisp","ismi","jimi"]},"179":{"input":[1,2,5,6,8],"tlw":["animas",76],"trw":["misma",3576],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",4450],"trp":["mie",21370],"lp":["emi","empi","emin"],"rp":["mie","iem","iemp","mien","ime","imie","hem","inme","imen","pien","nemi","impe","miem","mpie","meni","heme","mine"]},"181":{"input":[1,3,5,6,8],"tlw":["empieza",396],"trw":["maxima",192],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dime",307],"trw":["impide",99],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demasiadas",229],"trw":["media",1745],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",9690],"trp":["mbi",15416],"lp":["tim","vim","timi","vimi","timb"],"rp":["mbi","mit","miti","ntim","pint","imit","imb","itm","pib","mbit","itim","ivim","mbin","mib","ptib"]},"185":{"input":[1,4,5,6,8],"trw":["pinta",126],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",64],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitan",1308],"trw":["incapaz",452],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["verme",274],"trw":["primer",2357],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tambien",10237],"trw":["primera",3631],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["siempre",8021],"trw":["presidente",1129],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["encima",2175],"trw":["mientras",7333],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",202728],"trw":["pop",64],"lp":[],"rp":["po","op","opo","pop","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",2962],"trp":["opa",4287],"trw":["popa",199],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8366],"trp":["pos",15078],"trw":["pos",130],"lp":["spo","spos","sop","sosp","sopo"],"rp":["pos","osp","opos","poso","pso","ops"]},"195":{"input":[1,2,7,8],"tlp":["apos",275],"trp":["paso",5668],"tlw":["sopa",128],"trw":["paso",4414],"lp":["apos","sopa"],"rp":["paso","opas","posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",1772],"trp":["ope",2726],"lp":["epo","eppo"],"rp":["ope","peo","poe","opeo","pope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",209],"trp":["opea",131],"lp":["xpo","expo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["espo",6435],"trp":["pod",19770],"tlw":["esposo",391],"trw":["peso",623],"lp":["espo","epos","depo","dop","speo","dope"],"rp":["pod","pode","pose","ospe","peso","poes","psoe","peos","podo"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",926],"trw":["pasado",2726],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",143],"trp":["pto",1342],"trw":["opto",99],"lp":["top"],"rp":["pto","pot","opt","opto"]},"201":{"input":[1,4,7,8],"tlp":["apag",394],"trp":["pag",2930],"tlw":["apago",137],"trw":["pago",329],"lp":["apag","tapo"],"rp":["pag","paga","pago","pato","opag","opta"]},"202":{"input":[2,4,7,8],"tlp":["cop",1471],"trp":["poc",14176],"trw":["poco",8226],"lp":["cop","scop","copo","tops"],"rp":["poc","poco","post","opc","ptos"]},"203":{"input":[1,2,4,7,8],"tlw":["copa",496],"trw":["pocas",752],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11433],"trp":["por",105551],"tlw":["torpe",134],"trw":["por",82819],"lp":["rop","rpo","erpo","trop","ropo","epto"],"rp":["por","pero","pro","preg","prop","port","orp","orpr","preo","prot","opor","peor","oper","peg"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",972],"trw":["pagar",556],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["espero",808],"trw":["poder",3232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["aspecto",1030],"trw":["profesor",509],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",151250],"trw":["puno",277],"lp":[],"rp":["mo","om","pu","mu","omo","mpo","um","omp","up","pon","mon","mun","mom","pun","upo","nom","omu","omun","num","umo"]},"209":{"input":[1,5,7,8],"tlp":["amo",19266],"trp":["mano",16278],"tlw":["amo",786],"trw":["mano",5872],"lp":["amo","ampo","apu","amon","aum"],"rp":["mano","oma","ompa","uma","pano","upa","uman","oman","manu","pau","mona","maqu","namo","umna","uap"]},"210":{"input":[2,5,7,8],"tlp":["spu",13016],"trp":["mos",30677],"tlw":["somos",935],"trw":["puso",2090],"lp":["spu","smo","sup","spon","som","supo","supu","sum","somo","smos"],"rp":["mos","muj","pus","puso","mpos","mus","moso","omos","pons","usp"]},"211":{"input":[1,2,5,7,8],"tlw":["suma",280],"trw":["manos",4296],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",15453],"trp":["pue",46340],"tlw":["empeno",236],"trw":["muy",14472],"lp":["emo","empo","emon","epu"],"rp":["pue","ome","muy","omen","mue","meno","mome","ume","pone","upe","umen","nume","nemo","upue","poy","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["apoyo",685],"trw":["pequeno",1827],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["despues",9579],"trw":["menos",6628],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["amado",313],"trw":["mando",1140],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",6546],"trp":["omb",23704],"tlw":["tomo",1241],"trw":["punto",3190],"lp":["tom","tum","tumb","tomo","tup","bom","tmo"],"rp":["omb","punt","nomb","umb","pub","mont","pob","mbo","mot","pong","put","moto","umbo"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",528],"trw":["punta",577],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["como",50874],"trw":["puntos",421],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tampoco",2231],"trw":["montanas",596],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grupo",2081],"trw":["momento",6711],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",3330],"trw":["porque",13945],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["cuerpo",3541],"trw":["mujer",5923],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["respuesta",1354],"trw":["personas",2316],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",26745],"trw":["pollo",147],"lp":[],"rp":["pl","opi","pli","pio","pol","poli","lp","ipo","olp","plo","opio","ipio","pil","lip","lop","plio","ipl","pill","ilip","lipo"]},"225":{"input":[1,6,7,8],"tlp":["apl",391],"trp":["pal",11994],"tlw":["apolo",118],"trw":["plaza",1014],"lp":["apl","apol","apil","apli","alop","apla"],"rp":["pal","pla","pala","opia","ipal","lpa","plaz","palo","pali","plia","pila","poz","pozo","lap"]},"226":{"input":[2,6,7,8],"tlp":["spl",427],"trp":["posi",7976],"tlw":["soplo",116],"trw":["piso",796],"lp":["spl","sopl","spio"],"rp":["posi","ispo","pios","piso","ospi","ipos","plos","lpis","opsi"]},"227":{"input":[1,2,6,7,8],"trw":["pasillo",584],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",1170],"trp":["pel",8010],"trw":["piel",1315],"lp":["epl","epli","elip","eple"],"rp":["pel","ple","lpe","olpe","peli","pelo","piel","pele","opie","pell","lipe","lope","pole","lpeo","pleo","opel"]},"229":{"input":[1,3,6,7,8],"trw":["papel",1409],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["episodio",202],"trw":["podido",1018],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["espalda",1291],"trw":["podia",6502],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["golp",2796],"trp":["polv",730],"tlw":["tipo",2063],"trw":["polvo",512],"lp":["golp","tipo","gip","gipt","tipl"],"rp":["polv","pito","ipto","ipot","ltip","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["filipo",307],"trw":["patio",737],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",271],"trw":["politicos",569],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",627],"trw":["politica",1189],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",1615],"trw":["propio",2058],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["felipe",457],"trw":["propia",1864],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replico",777],"trw":["perdido",1215],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["especial",896],"trw":["podria",2740],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["hom",15529],"trw":["mil",2026],"lp":[],"rp":["hom","mil","lm","mpl","imo","omi","mili","impo","mino","hum","lim","moni","ompl","mio","mpli","lum","poni","pul","mplo","impl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1817],"trw":["mal",3264],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"trw":["mismo",8546],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["suponia",297],"trw":["humanos",580],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["empleo",215],"trw":["pleno",336],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["empezo",1641],"trw":["manuel",722],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ejemplo",1285],"trw":["medio",3051],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["demasiado",2974],"trw":["podian",1303],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["ultimo",2103],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["amigo",2622],"trw":["ultima",1629],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["conmigo",1217],"trw":["mucho",7468],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["camino",3366],"trw":["muchas",2632],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["tiempo",9492],"trw":["hombre",8282],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1135],"trw":["hermano",2152],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["respondio",2029],"trw":["hombres",5292],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["comenzo",1401],"trw":["palabras",3233],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json index 24e357aa16..04e421cf2a 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",258251],"tlw":["a",455],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",66466],"tlw":["s",731],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",177484],"tlw":["saa",2123],"lp":["sa","as","ssa","saa","ass","assa","aas","ssaa","aass","sas","sass","asa","saas","aaas","wa","ssas","aasa","asas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",59327],"tlw":["e",519],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",19583],"tlw":["x",52],"lp":["ea","ae","eaa","ex","ax","aae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["se",143967],"tlw":["se",27105],"lp":["se","es","de","ess","ed","ses","see","des","ede","dess","edes","ees","sess","eess","ese","eese","esee","sse","ssee","eed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",33895],"tlw":["saada",1657],"lp":["da","essa","ad","ase","eda","aad","ada","eas","aada","ade","saad","sea","esa","aase","ades","seaa","das","daa","eass","asee"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",182756],"tlw":["t",129],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",443960],"tlw":["tata",2224],"lp":["ta","at","tta","taa","att","ttaa","aat","ata","atta","aatt","tat","aata","tata","ataa","fa","ff","ft","af","tatt","aff"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",131877],"tlw":["st",145],"lp":["st","ts","sc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",78874],"tlw":["taas",3738],"lp":["sta","ast","asta","staa","tas","ats","aast","taas","saat","tass","tsa","stas","sat","tast","satt","ac","stat","sata","tsas","sast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",120310],"tlw":["te",3216],"lp":["et","te","ett","er","tte","re","rt","rr","tee","err","eet","ette","ert","tet","ete","tett","ter","rte","ere","etee"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",56709],"tlw":["etta",32564],"lp":["ar","ra","etta","tar","rra","era","erra","raa","eta","rta","aar","art","ara","ate","are","atte","rat","etaa","eraa","erta"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",21714],"tlw":["ester",156],"lp":["est","tse","ste","set","sest","rs","det","ets","res","dest","ress","tsee","este","sett","dett","rd","rest","ster","tses","der"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",12314],"tlw":["eras",1057],"lp":["esta","ras","ars","eras","atse","dat","rast","aste","east","aras","tsea","etsa","rass","aset","sar","seta","ard","edat","sef","datt"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",48589],"trw":["n",1456],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",427381],"trp":["na",121169],"tlw":["anna",1340],"trw":["na",532],"lp":["an","aan","ana","ann","anna","anaa","aana","anan","aann","anq"],"rp":["na","nna","naa","naan","nan","nnan","nnaa","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",381],"trp":["ns",47964],"trw":["j",621],"lp":["sn"],"rp":["ns","nss","nj"]},"19":{"input":[1,2,5],"tlp":["san",29730],"trp":["ja",188698],"tlw":["ajan",1077],"trw":["ja",138817],"lp":["san","ans","ansa","aj","saan","aja","anss","sana","aans","ajan","ssan"],"rp":["ja","nsa","jaa","jan","nssa","jas","jaan","nas","nsan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",297363],"trp":["ne",120612],"tlw":["en",8035],"trw":["ne",8601],"lp":["en","een","enn","ene","enne","enen","ey","enee"],"rp":["ne","nen","ny","nne","yy","nee","yn","nnen","yny","neen","nny","yyn"]},"21":{"input":[1,3,5],"tlp":["ane",47273],"trp":["nay",5887],"tlw":["enaa",3363],"trw":["naen",437],"lp":["ane","anen","ay","ena","any","anne","enaa","aen","anee","aane","enna","ean","ayn","eaan","eena","ayny"],"rp":["nay","ya","nae","ynna"]},"22":{"input":[2,3,5],"tlp":["sen",43375],"trp":["ys",15306],"tlw":["sen",18097],"lp":["sen","ens","sy","den","seen","eens","sens","syn","syd","syy"],"rp":["ys","je","yd","ysy","nes","jen","yde","yys","nd","nnes"]},"23":{"input":[1,2,3,5],"tlp":["dan",14539],"trp":["yda",4761],"tlw":["sydan",458],"trw":["jaada",316],"lp":["dan","ensa","syda","anes","sena","ayd","asen","ayde","edan","daan","sean","and","ande","ays","ayda","assy","esan"],"rp":["yda","ydan","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",82],"trp":["nt",46733],"tlw":["b",145],"lp":["bb","tn"],"rp":["nt","ntt","nb"]},"25":{"input":[1,4,5],"tlp":["taan",23917],"trp":["nta",24277],"tlw":["antaa",1443],"lp":["taan","ant","tan","anta","ttan","tann","aant","tana","ba","antt","anat","atan","bat","ab"],"rp":["nta","ntaa","nat","ntan","nnat","natt"]},"26":{"input":[2,4,5],"tlp":["bj",117],"trp":["nc",817],"lp":["bj","sb","sbj"],"rp":["nc","nst"]},"27":{"input":[1,2,4,5],"tlp":["ajat",5379],"trp":["jat",10551],"tlw":["sanat",714],"trw":["jattaa",503],"lp":["ajat","stan","taj","taja","tans","ttaj","sant","tsan","anc","cq","acq","staj"],"rp":["jat","jatt","jast","nast","jac","jacq","jata","ntas"]},"28":{"input":[3,4,5],"tlp":["ten",35400],"trp":["yt",52934],"tlw":["eteen",754],"trw":["nyt",14068],"lp":["ten","ty","tten","ent","teen","ren","tyy","tyt","tytt"],"rp":["yt","nyt","ytt","net","nte","yty","neet","ynyt","nty","nett","nnet"]},"29":{"input":[1,3,4,5],"tlp":["ayt",12824],"trp":["nayt",5724],"tlw":["taytyy",2000],"trw":["naet",1065],"lp":["ayt","ran","tay","aytt","tayt","anyt","anet","tany","rran","ayty","enta","raan","taen","aten","tya","aren","rann"],"rp":["nayt","ytta","yta"]},"30":{"input":[2,3,4,5],"tlp":["rj",9328],"trp":["yst",5033],"tlw":["syntynyt",298],"lp":["rj","sten","sty","tys","rje","tens","tsen","sent","tyst","esty","synt","etys","syt","rjee","syyt","stys"],"rp":["yst","nest","jet","jest"]},"31":{"input":[1,2,3,4,5],"tlw":["sentaan",644],"trw":["jaanyt",372],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",103087],"trw":["i",313],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",154264],"trp":["ia",39589],"tlw":["z",67],"lp":["ai","aai","zi","az","zz","zzi","za","aza"],"rp":["ia","iaa","iia","iai","iz","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",217633],"trp":["is",146392],"tlw":["siis",3048],"trw":["k",311],"lp":["si","sk","sii","ski","sis"],"rp":["is","ki","ik","ks","kk","isi","ksi","ikk","kki","ikki","iss","iis","kii","iks","iksi"]},"35":{"input":[1,2,6],"tlp":["ak",50178],"trp":["ka",233392],"tlw":["sai",2457],"trw":["kaikki",9023],"lp":["ak","aik","ais","asi","aikk","sia","aks","aka","aki","ska","aisi"],"rp":["ka","kaa","ika","kai","kaik","kas","kka","issa","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",107437],"trp":["ie",70245],"tlw":["ei",34289],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",677],"trp":["ix",36],"tlw":["xii",62],"trw":["ix",36],"lp":["ez","xi","ezi","exi","ze","xii","aie","eia"],"rp":["ix"]},"38":{"input":[2,3,6],"tlp":["ek",18980],"trp":["ke",62524],"tlw":["die",61],"trw":["keksi",101],"lp":["ek","eid","eik","eis","sie","sei","esi","eks","ske","sek"],"rp":["ke","ise","id","kse","ike","ies","ide","ises","kei","kes"]},"39":{"input":[1,2,3,6],"tlp":["eida",12497],"trp":["ida",14485],"tlw":["eika",6048],"trw":["kaikkea",823],"lp":["eida","aise","eika","eka","aike","seka","ake","akse","aske","aid","aide","dak"],"rp":["ida","kea","ikea","ieda","kad","kade","keas","kkea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",98241],"trp":["it",143226],"tlw":["v",870],"trw":["iv",91],"lp":["ti","vi","tti","tii","vii","ttii","vit","tiv","ttiv","vitt","viit"],"rp":["it","iv","itt","iit","iti","itti","ivi","iitt","ivit"]},"41":{"input":[1,4,6],"tlp":["va",182750],"trp":["ita",65115],"tlw":["tai",4545],"lp":["va","vat","av","vai","ava","vaa","tai","aiv","aiva","tav","tava","ait","aav","avat"],"rp":["ita","iva","ivat","iita","itta","itaa"]},"42":{"input":[2,4,6],"tlp":["sit",26898],"trp":["ist",39998],"tlw":["viisi",327],"trw":["itki",255],"lp":["sit","sti","tk","sitt","siit","siv","tki","tsi","sv","vis","tis"],"rp":["ist","its","itk","isti","itsi","itki","kiv","iist","kiit"]},"43":{"input":[1,2,4,6],"tlp":["vas",19036],"trp":["ista",23491],"tlw":["sita",11781],"trw":["kavi",1357],"lp":["vas","vast","tka","sita","asti","tak","vaik","aist","atk","taka","siva","asv","tais","tasi","atka"],"rp":["ista","kat","kats","kasv","kav"]},"44":{"input":[3,4,6],"tlp":["ri",43375],"trp":["ir",15903],"tlw":["ettei",3147],"trw":["irti",421],"lp":["ri","ve","vie","tie","ev","tei","eit","rv","eri","eiv","etti","tiet","eti","ttei","vet"],"rp":["ir","itte","ite","iet","ier"]},"45":{"input":[1,3,4,6],"tlp":["ari",10391],"trp":["ieta",3954],"tlw":["eivat",3839],"lp":["ari","eva","var","eita","arv","eiva","ria","evat","arvi","tarv","vaar","vart","rva","raav","tari","veta","rai"],"rp":["ieta","ira","iera"]},"46":{"input":[2,3,4,6],"tlp":["rk",13550],"trp":["itse",13494],"tlw":["teki",1489],"trw":["itse",3766],"lp":["rk","esti","tek","etk","rkk","rsi","tied","ris","tke","rke","teid"],"rp":["itse","ker","kir","iste","iset","kert","kerr","irk","kirk"]},"47":{"input":[1,2,3,4,6],"tlw":["tieda",1175],"trw":["kertaa",1619],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",333976],"trw":["niin",26801],"lp":[],"rp":["in","ni","iin","nii","niin","ih","hi","inn","nh","nin","iih","hin","nni","hn","ihi","ihin","ini","iinn","inni","nhi"]},"49":{"input":[1,5,6],"tlp":["ah",50528],"trp":["ha",155587],"tlw":["aina",4737],"trw":["han",60727],"lp":["ah","ain","aha","ani","ahan","aina","anh","anha"],"rp":["ha","han","ina","nai","iina","nah","ian","nha","haa","iha","nain","ihan"]},"50":{"input":[2,5,6],"tlp":["sin",32954],"trp":["nk",49072],"tlw":["sikin",37],"trw":["kiinni",1175],"lp":["sin","siin","siih","skin"],"rp":["nk","kin","ink","nki","nkin","nsi","isin","iink","ij","hk","inki","ksin","nis","kiin","ins","ikin"]},"51":{"input":[1,2,5,6],"tlp":["akin",7540],"trp":["kaan",25562],"tlw":["sina",5798],"trw":["kanssa",4169],"lp":["akin","sina","ank"],"rp":["kaan","nka","kan","inka","kans","nak","nkaa","nais","naki","kana","ija","inak","kah","ikan","hka","jai","isan"]},"52":{"input":[3,5,6],"tlp":["eh",17793],"trp":["he",62964],"tlw":["enin",79],"trw":["he",9072],"lp":["eh","eni","ein","ehe"],"rp":["he","ine","inen","hy","yh","hei","ien","yi","hen","ieh","ihe","iihe","ihen","iehe","hny","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",8961],"trp":["hane",41802],"tlw":["eihan",834],"trw":["hanen",25783],"lp":["aine","ahe","ahny","eiha","eha","eina","ehia","ehan","enia","anhe","aihe","enha","ahne","eani"],"rp":["hane","yha","yhan","hea","hena","inay"]},"54":{"input":[2,3,5,6],"tlp":["enk",14707],"trp":["hd",22326],"tlw":["siihen",4304],"trw":["niiden",2381],"lp":["enk","enki","ensi","ehd"],"rp":["hd","ky","isen","ken","hde","yk","yks","heid","ksen","iden","hden","kein","yksi","kys","kysy","keen"]},"55":{"input":[1,2,3,5,6],"tlw":["ehka",1532],"trw":["heidan",5518],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tiin",8421],"trp":["ht",36404],"tlw":["viini",52],"trw":["nti",182],"lp":["tiin","vin","tin","vih","th","viin"],"rp":["ht","hti","niit","nti","int","hit","ntti","nit","init","nv","iint","nitt","hv","itin"]},"57":{"input":[1,4,5,6],"tlp":["van",24884],"trp":["hta",10602],"tlw":["vaan",7099],"trw":["hanta",8388],"lp":["van","aht","tah","vaan","vain","vah","vanh","taht","ahti","vaha","avan","tain","taha","vana"],"rp":["hta","hant","ivan","htaa","hat","inta"]},"58":{"input":[2,4,5,6],"tlp":["tkin",2359],"trp":["ntis",951],"tlw":["viisin",90],"trw":["kiinnitti",90],"lp":["tkin","ch","tsin","tins","stin","tij","vink","tsh","tsij","tch"],"rp":["ntis","nist","hist","nci","hits","ncis","nsiv","itsh","nits","htik"]},"59":{"input":[1,2,4,5,6],"tlw":["vastaan",3099],"trw":["niista",1303],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",8705],"trp":["yv",14540],"tlw":["tehnyt",1374],"trw":["hyvin",4061],"lp":["rin","teh","tyi","eht","ven","rh"],"rp":["yv","hyv","het","iten","her","yht","hte","yvi","herr","hyvi","yvin","ytti","heit","hnyt"]},"61":{"input":[1,3,4,5,6],"tlw":["taytyi",1362],"trw":["hanet",4513],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sitten",8039],"trw":["kenties",944],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["teidan",2121],"trw":["kerran",2976],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",9026],"trw":["o",542],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",201],"trp":["oa",14352],"lp":["ao"],"rp":["oa","oaa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",15574],"trp":["os",54094],"tlw":["so",36],"lp":["so","soo","sso","sos","soss"],"rp":["os","oss","oso","oos","ooss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",566],"trp":["ossa",8151],"trw":["osaa",838],"lp":["soa","aso","sao","ssao"],"rp":["ossa","osa","oas","osaa","osas","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",536],"trp":["oe",3004],"trw":["-",534],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",142],"trp":["ox",358],"lp":["a-","a-a","xo"],"rp":["ox","-a","oxo"]},"70":{"input":[2,3,7],"tlp":["do",12063],"trp":["od",8394],"lp":["do","dos","edo","sod","soe","doss","esso","eos","eoss","edos"],"rp":["od","ode","odo","ose","odos","oose","oses","odes","oes","oess"]},"71":{"input":[1,2,3,7],"tlp":["ado",599],"trp":["oda",1130],"tlw":["sodassa",75],"lp":["ado","soda","aado","dow","eado","adow"],"rp":["oda","odas","odaa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",61617],"trp":["ot",51834],"tlw":["g",128],"trw":["ogoot",161],"lp":["to","tto","tot","too","tott","go","gt","goo","goot","gto","ttoo","gg"],"rp":["ot","ott","oto","otto","oot","og","ogo","ogoo"]},"73":{"input":[1,4,7],"tlp":["ato",2846],"trp":["ota",12728],"tlw":["totta",1107],"trw":["ottaa",1121],"lp":["ato","toa","ga","atto","ag","gat","gata","aato","ttoa","ago","gatt","toaa","fo"],"rp":["ota","otta","otaa","of","oat","oata","otoa"]},"74":{"input":[2,4,7],"tlp":["sto",3632],"trp":["ost",9527],"lp":["sto","tso","tos","sot","co","toss","tost","sott","stos","tsoo","stot","stoo","tsos","tsot","gs"],"rp":["ost","ots","oc","osto","osot"]},"75":{"input":[1,2,4,7],"tlp":["atso",3515],"trp":["osta",6277],"tlw":["sota",171],"trw":["ostaa",147],"lp":["atso","asto","gas","sota","atos","tsoa","sato","stoa","gast","sof","aggs","asot"],"rp":["osta","oast","otsa","osat","osof","owc"]},"76":{"input":[3,4,7],"tlp":["ro",11439],"trp":["or",16598],"tlw":["eero",648],"lp":["ro","ero","rto","tor","erto","ge","eto","rot","rg","erg","rro","erro","etto"],"rp":["or","ote","ort","ore","oet","oett","otte"]},"77":{"input":[1,3,4,7],"tlp":["rag",1424],"trp":["ora",1253],"tlw":["erottaa",195],"lp":["rag","aro","rtoa","rof","atro","rota","etoa","rofe","gra","aroo","roa","eroa","for"],"rp":["ora","oraa","orta","ofe","oeta","orea","otar"]},"78":{"input":[2,3,4,7],"tlp":["dot",4568],"trp":["odot",2046],"tlw":["god",157],"lp":["dot","dott","tod","tode","dost","ros","stor","sor","doto","cor","cort","roc","serg","ssor","tsoe","tros","ross"],"rp":["odot","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["grace",80],"trw":["odottaa",481],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",111283],"trw":["on",43019],"lp":[],"rp":["on","un","uu","uo","nu","no","ou","uon","nun","unn","onn","uun","unu","nnu","nuo","oon","nno","non","nou","onu"]},"81":{"input":[1,5,7],"tlp":["au",31984],"trp":["ua",18997],"lp":["au","ano","anu","aun","annu","aanu","aua","anoa","anon","auan"],"rp":["ua","nua","noa","ona","una","nau","uan","uona","onaa","unna"]},"82":{"input":[2,5,7],"tlp":["su",33737],"trp":["jo",99696],"tlw":["sun",387],"trw":["jos",9131],"lp":["su","suu","suo"],"rp":["jo","us","jos","ju","jon","oj","uus","jou","juu","uos","joss","ous","uns","nous","nus","ons","uss"]},"83":{"input":[1,2,5,7],"tlp":["sano",17998],"trp":["oja",7593],"tlw":["sanoa",1500],"trw":["jossa",2870],"lp":["sano","aus","asu","ausu","ajo","anoj","aju","sua"],"rp":["oja","noas","onsa","ussa","uja","noja","unsa","ojan","osan","uas","uoja","ojaa"]},"84":{"input":[3,5,7],"tlp":["eu",8909],"trp":["yo",14437],"tlw":["eno",84],"trw":["yon",465],"lp":["eu","enu","eno","ennu"],"rp":["yo","one","onne","unne","oy","ue","uone","yon","onee","une","oen","neu","unee","onen","noe","noen"]},"85":{"input":[1,3,5,7],"tlp":["que",622],"trp":["yona",396],"trw":["yona",396],"lp":["que","anoe","aune","aue","enoa","euna","xon","aneu","aeu"],"rp":["yona","nox","oxon","-na","-nay","nque","naeu","unay"]},"86":{"input":[2,3,5,7],"tlp":["seu",5113],"trp":["ud",9289],"tlw":["syo",106],"trw":["uuden",713],"lp":["seu","don","du","suud","syo"],"rp":["ud","ude","uud","uude","yos","use","uden","uod","oje","ojen","udes","uode","oyd","ues","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["sanoen",554],"trw":["juoda",134],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",97385],"trp":["ut",111271],"tlw":["tuo",4127],"trw":["outo",170],"lp":["tu","tun","tuo","ttu","ton","tunt","tuu"],"rp":["ut","utt","nut","uut","ng","unt","uot","unut","nnut","nto","uutt","utu","ont"]},"89":{"input":[1,4,5,7],"tlp":["anut",9016],"trp":["utta",36184],"tlw":["tuota",1414],"trw":["uutta",628],"lp":["anut","tanu","aut","tua","atu","autt","anto","attu","ttua","anot","tau","agn","ang"],"rp":["utta","uta","uuta","nga","onta","uota","unta"]},"90":{"input":[2,4,5,7],"tlp":["stu",9987],"trp":["jot",16587],"tlw":["totuus",204],"trw":["joutunut",411],"lp":["stu","tus","tuns","tuos","suut","toj","tust","stun","tsu","stus","sut"],"rp":["jot","ust","nust","jost","jout","nost","jott","uost","uots"]},"91":{"input":[1,2,4,5,7],"tlw":["saanut",2403],"trw":["jota",3761],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10641],"trp":["ur",27188],"tlw":["tytto",1225],"trw":["nuoren",497],"lp":["ru","eur","ettu","tyo","rou","ruu","tur","eut"],"rp":["ur","uur","uor","ure","uure","ute","nuor","uten","unte","yot","uute","ytto"]},"93":{"input":[1,3,4,5,7],"tlw":["tyota",814],"trw":["yota",359],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["suuren",1116],"trw":["joten",283],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["suurta",798],"trw":["uudestaan",554],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",180531],"trw":["oli",55295],"lp":[],"rp":["ll","ol","li","oi","oli","il","ill","lo","oll","lli","loi","llo","lloi","illo","lii","io","olli","ilo","oil","oill"]},"97":{"input":[1,6,7],"tlp":["al",103204],"trp":["la",161361],"tlw":["alla",1156],"trw":["olla",4699],"lp":["al","all","alla","ala","aal","aall","ali","alli","alo","ail","alai"],"rp":["la","lla","illa","lai","olla","laa","ila","llai","llaa"]},"98":{"input":[2,6,7],"tlp":["sil",23278],"trp":["ko",79476],"tlw":["soi",379],"trw":["olisi",9034],"lp":["sil","sill"],"rp":["ko","ok","lis","ois","lk","lisi","olis","koi","oik","llis","osk","oko","kok","kos","koko","iko","oisi","lko"]},"99":{"input":[1,2,6,7],"tlp":["alk",11320],"trp":["oka",22378],"tlw":["silla",7800],"trw":["koska",1773],"lp":["alk","sal","alko","alka","alas","aiko","ako","sala","sall"],"rp":["oka","lais","las","kal","lka","oska","kall","lak","oika","lkaa","laki"]},"100":{"input":[3,6,7],"tlp":["el",107523],"trp":["le",115183],"tlw":["eli",822],"trw":["ole",10027],"lp":["el","ell","elle","eli","ele","eil","eill","elli"],"rp":["le","lle","ole","iel","lee","ille","llee","iell","olle","iele","lei","lel"]},"101":{"input":[1,3,6,7],"tlp":["ella",24479],"trp":["iela",9775],"tlw":["elaa",782],"trw":["lea",62],"lp":["ella","ela","alle","ale","eal","elaa","eall","elia","aile","elai","alee","alel","a-al","aale","alea","elal"],"rp":["iela","lea","-al","lae"]},"102":{"input":[2,3,6,7],"tlp":["sel",13503],"trp":["oise",7642],"tlw":["eiko",1404],"trw":["kello",600],"lp":["sel","sell","siel","del","dell","elk","eiso","seli","skel"],"rp":["oise","lke","oike","lise","les","kel","lkee","kell","okse","isel","oid"]},"103":{"input":[1,2,3,6,7],"tlw":["siella",4520],"trw":["keskella",829],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",29749],"trp":["lt",22549],"tlw":["voi",5384],"trw":["otti",1283],"lp":["vo","toi","voi","til","toiv","gi","voit"],"rp":["lt","oit","ov","liv","oliv","oitt","oiv","lit","lv","ilt","otti","oti","ito"]},"105":{"input":[1,4,6,7],"tlp":["val",18640],"trp":["lta",17662],"tlw":["taalla",3001],"trw":["olivat",8509],"lp":["val","tal","alt","vall","alta","vali","taal","talo","aval","tila","tall","valt"],"rp":["lta","liva","ova","ovat","oita","oiva","ilta","lat"]},"106":{"input":[2,4,6,7],"tlp":["tois",11857],"trp":["otk",7732],"tlw":["voisi",1258],"trw":["kiitos",454],"lp":["tois","tko","svo","vois","tosi","tok","soit","vos","tsoi","tkoi","svoi","stoi"],"rp":["otk","oist","list","kot","kov","isto","koti","osti"]},"107":{"input":[1,2,4,6,7],"tlw":["saattoi",861],"trw":["katsoi",951],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",10931],"trp":["lev",8000],"tlw":["teille",1239],"trw":["olet",1963],"lp":["tel","viel","elt","vel","teli","tell","ttel","ril","rill","evo","elv"],"rp":["lev","let","ori","olet","olev","ielt","lett","ove","leet"]},"109":{"input":[1,3,4,6,7],"tlw":["viela",8600],"trw":["oleva",577],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["toiset",990],"trw":["kertoi",658],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["sielta",1053],"trw":["katseli",846],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",66193],"trw":["olin",2657],"lp":[],"rp":["ui","ul","lu","uin","inu","oin","hu","oh","ull","llu","uh","uol","noi","uul","lin","ollu","loin","uli","huo","luo"]},"113":{"input":[1,5,6,7],"tlp":["anoi",9266],"trp":["lah",8966],"tlw":["ainoa",772],"trw":["liian",1614],"lp":["anoi","aino","auh","alan","aul","auni","alu"],"rp":["lah","ulla","lan","inua","laan","hal","inoa","lain","lau","uha","nal","hall","ula"]},"114":{"input":[2,5,6,7],"tlp":["sinu",6349],"trp":["ku",115005],"tlw":["silloin",5497],"trw":["kuin",22585],"lp":["sinu"],"rp":["ku","kui","kuin","kun","uk","jok","kuu","onk","lj","joi","nku","kuul","koh","uks","jonk","usk","nkui","kul","usi"]},"115":{"input":[1,2,5,6,7],"tlw":["sanoi",7087],"trw":["joka",18978],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",3144],"trp":["len",16714],"tlw":["eilen",316],"trw":["olen",5653],"lp":["elu","elen"],"rp":["len","yl","nel","ule","nell","leen","olen","uole","ulle","yll","hel","oine","line","ulee","llen","uule","yli","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["aanella",765],"trw":["hanelle",4619],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ennenkuin",1410],"trw":["oikein",2049],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sellainen",739],"trw":["kylla",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",21501],"trp":["lut",16706],"tlw":["tuli",4747],"trw":["ollut",10662],"lp":["tul","tui","vu","tuli","vuo","voin","tull","toin"],"rp":["lut","llut","uv","oht","uit","inut","hto","ing","ult","htu","itu","utti"]},"121":{"input":[1,4,5,6,7],"tlw":["tulla",1527],"trw":["lahti",967],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["tunsi",1344],"trw":["istui",1253],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ainoastaan",2528],"trw":["jotka",7436],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tulee",3128],"trw":["nuori",1213],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["rouva",1878],"trw":["olevan",1792],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["suuri",2189],"trw":["kuitenkin",3603],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["tahdon",933],"trw":["kuitenkaan",984],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",8308],"trw":["p",1108],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22497],"trp":["pa",77545],"trw":["paa",544],"lp":["ap","apa","app","apaa","aap","appa","aapa"],"rp":["pa","paa","pap","ppa","papp","ppaa","paaa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",2110],"trp":["ps",4292],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["aps",4165],"trp":["paas",5700],"trw":["paassa",773],"lp":["aps","spa","saap","apas","asp","aspa","sap","saps","apsa"],"rp":["paas","pas","ppas","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",2526],"trp":["pe",16376],"trw":["'",576],"lp":["ep","epp","e'","eep"],"rp":["pe","'e","pee","ppe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",1849],"trp":["pea",2103],"tlw":["aape",205],"lp":["epa","ape","aape","apea","eppa","appe","epaa"],"rp":["pea","'a","pape","pae","peaa","paae"]},"134":{"input":[2,3,8],"tlp":["s'",618],"trp":["pse",2270],"lp":["s'","sep","esp","sepp","d'","spe","ss'","s'e","es'"],"rp":["pse","pes","psee","ped","pede","pses","pees"]},"135":{"input":[1,2,3,8],"tlp":["apse",2143],"trp":["peas",737],"tlw":["sepa",189],"trw":["paase",202],"lp":["apse","espa","sepa","epas","d'a","d'as"],"rp":["peas","pesa","'as"]},"136":{"input":[4,8],"tlp":["tp",203],"trp":["pt",207],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",6856],"trp":["paat",3775],"tlw":["tapa",257],"trw":["paata",312],"lp":["tap","tapa","tapp","apt","taap","tpa","apat"],"rp":["paat","pat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["stap",241],"trp":["past",383],"trw":["paasta",1393],"lp":["stap","spat"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["t'",2289],"trp":["per",3933],"tlw":["ett'",217],"lp":["t'","tt'","ett'","t'e","tt'e","rp","rpe","rpee","r'","rr'","rep","err'"],"rp":["per","pet","pett","pr","pte","ptee","pere","pre"]},"141":{"input":[1,3,4,8],"tlp":["arp",756],"trp":["par",8411],"trw":["paeta",156],"lp":["arp","tarp","arpe","aper","t'a","rap","rapa","apte","epat","arr'","rapp","fe'"],"rp":["par","pera","pare","para","paet","pate","part","peat"]},"142":{"input":[2,3,4,8],"tlp":["spr",153],"trp":["pset",690],"lp":["spr","spre","tsep","st'"],"rp":["pset"]},"143":{"input":[1,2,3,4,8],"tlw":["d'astarac",81],"trw":["perasta",769],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",28094],"trw":["m",905],"lp":[],"rp":["mm","mp","np","nm","mpp"]},"145":{"input":[1,5,8],"tlp":["am",46002],"trp":["ma",123834],"trw":["nama",1502],"lp":["am","ama","amaa","aman","aam","amm","aama","amp"],"rp":["ma","maa","man","maan","mma","pan","mpa","mman","npa","paan","nam","nama"]},"146":{"input":[2,5,8],"tlp":["sm",505],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",8343],"trp":["mas",10187],"tlw":["samassa",1358],"trw":["paansa",590],"lp":["sam","sama","amas","span","saam","samm","ssam","sma","sanm","asm"],"rp":["mas","mass","mans","maas","mmas","panj","maj","pans","mpas","jam"]},"148":{"input":[3,5,8],"tlp":["em",30930],"trp":["me",55008],"tlw":["emme",1059],"trw":["me",4210],"lp":["em","emm","emp","emme","enem"],"rp":["me","men","my","mme","ym","py","nem","mene","menn","ymm","nemm","ymp","ymy","pyy","mee"]},"149":{"input":[1,3,5,8],"tlp":["ema",9490],"trp":["ympa",2574],"tlw":["enemman",2199],"trw":["menna",1245],"lp":["ema","emma","emaa","ame","amme","eman","empa","amen","enpa","eam","eamm","eamp"],"rp":["ympa","ymma","mea","pane","yma","nema","ymaa","mpea"]},"150":{"input":[2,3,5,8],"tlp":["sem",3594],"trp":["mes",2527],"tlw":["esm",37],"trw":["pysyy",153],"lp":["sem","semm","sym","symy","spen","dem","demm"],"rp":["mes","pys","ysym","psen","pysy","mess","mens","pyys","mys","ymys","pyyd","meyd","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["sydamensa",387],"trw":["pyydan",244],"lp":[],"rp":[]},"152":{"input":[4,5,8],"trp":["mb",336],"lp":[],"rp":["mb","mmb"]},"153":{"input":[1,4,5,8],"tlp":["tam",18925],"trp":["mat",13373],"tlw":["tama",6514],"trw":["maata",654],"lp":["tam","tama","amat","ttam","tamm","ammb","atam","taam","tamp","amb"],"rp":["mat","matt","mmat","maat","mant","pant","mata","ntam","ntap"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["samat",179],"trw":["maasta",321],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5379],"trp":["mer",3161],"tlw":["ett'en",165],"trw":["mr",635],"lp":["rm","rem","tem","remp","remm","temm","rme","ttem","temp"],"rp":["mer","met","mr","pent","ment","mere","pyyt","ntem","pyr","myr","metr"]},"157":{"input":[1,3,4,5,8],"tlw":["emanta",515],"trw":["ymmarra",345],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"trw":["mrs",279],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",161],"trw":["paassyt",507],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",36935],"lp":[],"rp":["pi","ip","ppi","pii","iip","ipp","ipi","iipp","iipi","piip","ipii","ppii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2247],"trp":["pai",17547],"trw":["pappi",810],"lp":["api","appi","apai","aip","aipa","aapi","aipp"],"rp":["pai","pia","ipa","papi","ppia","ipaa","ippa","piaa"]},"162":{"input":[2,6,8],"tlp":["sip",134],"trp":["pik",1832],"lp":["sip","siip"],"rp":["pik","psi","pis","pikk","isp","piis","iisp","pisi","piki","kip","ksip","kkip","kipi","piik","psis","piks","isip","kiip"]},"163":{"input":[1,2,6,8],"tlp":["apsi",1759],"trp":["paik",2876],"tlw":["saapi",132],"trw":["paasi",542],"lp":["apsi","spai","apis","sipa"],"rp":["paik","pak","kap","pasi","ispa","kapa","pais","kapp","paak","pakk","psia","paks","kaip","kkap","ipas","pias"]},"164":{"input":[3,6,8],"tlp":["eip",817],"trp":["pie",5244],"lp":["eip","epi","eppi","eipp","e'i","eepi"],"rp":["pie","'ei","pei","ipe","'i","iep","ppie","iepp","iepi","iipe","ipie"]},"165":{"input":[1,3,6,8],"tlp":["epai",1133],"trp":["'ai",235],"tlw":["eipa",378],"lp":["epai","eipa","epia","apei"],"rp":["'ai","ipea"]},"166":{"input":[2,3,6,8],"tlp":["siep",69],"trp":["pid",1813],"trw":["kiipesi",44],"lp":["siep"],"rp":["pid","pesi","pide","k'","peek","kk'","ikk'","pek","pike","pekk","kipe","pidi","is'","ksep","k'e","kk'e","k'ei","ipid","iss'"]},"167":{"input":[1,2,3,6,8],"tlw":["sieppasi",69],"trw":["pida",405],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["viip",485],"trp":["pit",11493],"trw":["piti",1713],"lp":["viip"],"rp":["pit","piti","piv","ipit","ppiv","pitt","ipiv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1883],"trp":["paiv",6732],"tlw":["vapaa",269],"trw":["pitaa",1916],"lp":["vap","vapa","vaip","vapi","apit","taip","tapi"],"rp":["paiv","pita","pait","itap","piva","paav"]},"170":{"input":[2,4,6,8],"trp":["pitk",4224],"trw":["pisti",361],"lp":[],"rp":["pitk","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["sitapaitsi",428],"trw":["pitaisi",756],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["t'ei",979],"trp":["peri",1054],"tlw":["ett'ei",867],"trw":["peitti",175],"lp":["t'ei","riip","reip","repi","viep","t'i","rip"],"rp":["peri","peit","piet","pite","piir","pir","it'","pier","pri","pirt","'eiv","iit'","irip"]},"173":{"input":[1,3,4,6,8],"tlw":["ett'eivat",74],"trw":["pari",989],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["sit'",100],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["tarpeeksi",310],"trw":["parka",244],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",120870],"trw":["mihin",694],"lp":[],"rp":["mi","min","im","hm","ihm","mmi","hmi","ihmi","mmin","imm","imi","nim","iim","mpi","mii","nimi","miin","pin","pim","hmin"]},"177":{"input":[1,5,6,8],"tlp":["aim",2568],"trp":["mina",17633],"trw":["mina",16504],"lp":["aim","ami","apah","amia"],"rp":["mina","mai","ima","pain","pah","mia","main","mah","maai","imma","pian","paha","ham","imaa","maah","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",3768],"trp":["mis",12062],"trw":["miksi",1344],"lp":["sim","simm","smi"],"rp":["mis","mik","hmis","miss","mink","nsim","misi","miks","imis","kim","isim","jim","mpik","ism","mk","kimp","ismi"]},"179":{"input":[1,2,5,6,8],"trw":["mika",3480],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3536],"trp":["mie",19226],"tlw":["ennemmin",163],"trw":["meni",1459],"lp":["emmi","empi","emi"],"rp":["mie","mei","ime","mieh","pien","iime","meni","hem","imei","imme","hemm","nime","hym","mein","hymy","hme","mine"]},"181":{"input":[1,3,5,6,8],"trw":["miehia",566],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["esim",379],"trw":["mies",3388],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["ensimainen",403],"trw":["meidan",2780],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["viim",3133],"trp":["mit",21696],"trw":["nimitti",52],"lp":["viim","tim","ttim","vim","vimm","timm","tinp"],"rp":["mit","mitt","imit","mint","htim","miit","mmit","npit","pint","miv","imiv"]},"185":{"input":[1,4,5,6,8],"trw":["mita",10059],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["pitkin",1130],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["mista",982],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["viimein",718],"trw":["miten",2370],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["eteenpain",770],"trw":["meita",1361],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sittemmin",355],"trw":["ihmiset",1045],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["varmaankin",428],"trw":["miesta",877],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",17061],"lp":[],"rp":["po","op","opp","ppo","oop","oopp","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",392],"trp":["opa",760],"lp":["apo","appo","aapo"],"rp":["opa","poa","ppoa","oopa","opaa"]},"194":{"input":[2,7,8],"tlp":["sop",886],"trp":["pos",648],"lp":["sop"],"rp":["pos","osp"]},"195":{"input":[1,2,7,8],"trp":["ospa",434],"lp":[],"rp":["ospa"]},"196":{"input":[3,7,8],"tlp":["epo",141],"trp":["ope",2399],"lp":["epo","epoo"],"rp":["ope","'o","oppe"]},"197":{"input":[1,3,7,8],"tlp":["epoa",105],"trp":["opea",620],"lp":["epoa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["s'o",328],"trp":["osep",102],"lp":["s'o"],"rp":["osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gtp",153],"trp":["pot",295],"lp":["gtp","tpo","gtpo","top"],"rp":["pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apot",165],"trp":["pato",255],"lp":["apot","tapo","topa"],"rp":["pato","pota","otap"]},"202":{"input":[2,4,7,8],"trp":["post",449],"lp":[],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["paatos",82],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["tpor",153],"trp":["opet",1620],"trw":["peto",55],"lp":["tpor","tope","roop"],"rp":["opet","por","port","pro","poro","peto"]},"205":{"input":[1,3,4,7,8],"trw":["opettaa",197],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["petosta",39],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mu",58870],"trw":["muu",588],"lp":[],"rp":["mu","pu","om","mo","muu","um","uom","puo","up","mon","pun","puu","upu","upun","opu","umm","ppu","nom","uum","mmo"]},"209":{"input":[1,5,7,8],"tlp":["aup",2791],"trp":["oma",16400],"tlw":["apua",470],"trw":["oman",1021],"lp":["aup","apu","aupu","amo","amu","apau","aamu","aapu","anom"],"rp":["oma","uma","uoma","omaa","oman","pau","noma","upa","umaa","umma","panu"]},"210":{"input":[2,5,7,8],"tlp":["suom",4018],"trp":["jum",4241],"tlw":["suom",417],"lp":["suom","som","sum"],"rp":["jum","mus","poj","jop","mons","muus","pus","moj","opus","moos","josp","puss","omus","mos","npoj","psu","psuu"]},"211":{"input":[1,2,5,7,8],"tlw":["sanomaan",203],"trw":["pojan",607],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emmo",1235],"trp":["myo",6382],"tlw":["emo",86],"trw":["monen",273],"lp":["emmo","emu"],"rp":["myo","ome","uome","omen","poy","mone","upe","nope","pue","myon","ume","uem","yom","meno","pyo","omme","uemm","pune"]},"213":{"input":[1,3,5,7,8],"trw":["myonnan",82],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["suomen",1322],"trw":["myos",1706],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["suomessa",236],"trw":["poydan",440],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",3714],"trp":["mut",29213],"tlw":["tom",275],"trw":["muut",992],"lp":["tom","ttom","tum","tuom","tomu","bom","gbom","tup","ttum"],"rp":["mut","mutt","muut","pung","mont","puut","muot","put","mbo","mmbo","puto"]},"217":{"input":[1,4,5,7,8],"trw":["mutta",28564],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"trw":["muutos",112],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tuomas",244],"trw":["pojat",604],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["bergbom",465],"trw":["muuten",1081],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["tuntemaan",300],"trw":["poytaan",161],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprengtport",116],"trw":["prudence",171],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["etupaassa",239],"trw":["opettaja",379],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",8488],"trw":["oppi",180],"lp":[],"rp":["poi","lop","lp","oppi","opi","pil","pol","lpo","lopp","ppil","lip","iop","liop","ilp","lpp","lppo","ippo","ppol","poli","pio"]},"225":{"input":[1,6,7,8],"tlp":["alp",476],"trp":["pal",8702],"trw":["lapi",904],"lp":["alp","alap"],"rp":["pal","lap","pala","paal","lapi","pail","pila","ppal","lapa","lipa","lpa","palo","lpaa","llap","lapp","iopa","opai","ilpa"]},"226":{"input":[2,6,7,8],"tlp":["sopi",829],"trp":["poik",4206],"tlw":["sopii",210],"trw":["pois",3248],"lp":["sopi"],"rp":["poik","pois","lpos","kop","lkop","opis","polk","posk","losp","psil","pilk","oisp","kilp","pios"]},"227":{"input":[1,2,6,7,8],"trw":["poika",1648],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1235],"trp":["pel",3429],"tlw":["ell'ei",70],"trw":["piilee",68],"lp":["elp","elpo","elpp","elip","ell'"],"rp":["pel","lpe","l'","lep","ll'","pelo","peli","leip","ppel","lope","peel","pell","'ol","'oli","ill'"]},"229":{"input":[1,3,6,7,8],"tlw":["epailla",102],"trw":["paalle",747],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'oli",178],"trw":["pelko",234],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["sill'aikaa",122],"trw":["pelkaa",283],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["voip",114],"trp":["pilv",391],"tlw":["voipi",114],"trw":["ippolit",287],"lp":["voip","vilp","tiop"],"rp":["pilv","opiv","polv","polt","lpit","lpot","pito"]},"233":{"input":[1,4,6,7,8],"tlw":["apotti",165],"trw":["palata",236],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["potki",36],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["sopiva",101],"trw":["palasivat",135],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["viel'",99],"trw":["perille",288],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["vielapa",360],"trw":["portaita",183],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["tok'",38],"trw":["posket",92],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["tarpeellista",75],"trw":["lapset",690],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",22428],"trw":["minun",5382],"lp":[],"rp":["lm","minu","ilm","puh","puol","mui","oim","mil","puhu","huom","lmi","omi","mill","moi","olm","ilmi","imo","pui","mol","moin"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["aamulla",431],"trw":["minua",4742],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["silmin",342],"trw":["pikku",1155],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["samalla",1927],"trw":["paljon",3194],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["minulle",3318],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["elaman",1008],"trw":["meilla",1051],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["semmoinen",325],"trw":["myoskin",2227],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["suomalaisen",431],"trw":["kallem",1117],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["toimi",174],"trw":["minut",1928],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["tapahtunut",602],"trw":["muutamia",1006],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["sopinut",80],"trw":["muutkin",289],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["silmat",1184],"trw":["minusta",1102],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["toimeen",479],"trw":["miltei",281],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["epailematta",384],"trw":["molemmat",921],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["rupesi",652],"trw":["helposti",449],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["tapauksessa",366],"trw":["puolesta",598],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",258251],"tlw":["a",455],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",66466],"tlw":["s",731],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",177484],"tlw":["saa",2123],"lp":["sa","as","ssa","saa","ass","assa","aas","ssaa","aass","sas","sass","asa","saas","aaas","wa","ssas","aasa","asas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",59327],"tlw":["e",519],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",19583],"tlw":["x",52],"lp":["ea","ae","eaa","ex","ax","aae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["se",143967],"tlw":["se",27105],"lp":["se","es","de","ess","ed","ses","see","des","ede","dess","edes","ees","sess","eess","ese","eese","esee","sse","ssee","eed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",33895],"tlw":["saada",1657],"lp":["da","essa","ad","ase","eda","aad","ada","eas","aada","ade","saad","sea","esa","aase","ades","seaa","das","daa","eass","asee"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",182756],"tlw":["t",129],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",443960],"tlw":["tata",2224],"lp":["ta","at","tta","taa","att","ttaa","aat","ata","atta","aatt","tat","aata","tata","ataa","fa","ff","ft","af","tatt","aff"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",131877],"tlw":["st",145],"lp":["st","ts","sc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",78874],"tlw":["taas",3738],"lp":["sta","ast","asta","staa","tas","ats","aast","taas","saat","tass","tsa","stas","sat","tast","satt","ac","stat","sata","tsas","sast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",120310],"tlw":["te",3216],"lp":["et","te","ett","er","tte","re","rt","rr","tee","err","eet","ette","ert","tet","ete","tett","ter","rte","ere","etee"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",56709],"tlw":["etta",32564],"lp":["ar","ra","etta","tar","rra","era","erra","raa","eta","rta","aar","art","ara","ate","are","atte","rat","etaa","eraa","erta"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",21714],"tlw":["ester",156],"lp":["est","tse","ste","set","sest","rs","det","ets","res","dest","ress","tsee","este","sett","dett","rd","rest","ster","tses","der"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",12314],"tlw":["eras",1057],"lp":["esta","ras","ars","eras","atse","dat","rast","aste","east","aras","tsea","etsa","rass","aset","sar","seta","ard","edat","sef","datt"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",48589],"trw":["n",1456],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",427381],"trp":["na",121169],"tlw":["anna",1340],"trw":["na",532],"lp":["an","aan","ana","ann","anna","anaa","aana","anan","aann","anq"],"rp":["na","nna","naa","naan","nan","nnan","nnaa","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",381],"trp":["ns",47964],"trw":["j",621],"lp":["sn"],"rp":["ns","nss","nj"]},"19":{"input":[1,2,5],"tlp":["san",29730],"trp":["ja",188698],"tlw":["ajan",1077],"trw":["ja",138817],"lp":["san","ans","ansa","aj","saan","aja","anss","sana","aans","ajan","ssan"],"rp":["ja","nsa","jaa","jan","nssa","jas","jaan","nas","nsan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",297363],"trp":["ne",120612],"tlw":["en",8035],"trw":["ne",8601],"lp":["en","een","enn","ene","enne","enen","ey","enee"],"rp":["ne","nen","ny","nne","yy","nee","yn","nnen","yny","neen","nny","yyn"]},"21":{"input":[1,3,5],"tlp":["ane",47273],"trp":["nay",5887],"tlw":["enaa",3363],"trw":["naen",437],"lp":["ane","anen","ay","ena","any","anne","enaa","aen","anee","aane","enna","ean","ayn","eaan","eena","ayny"],"rp":["nay","ya","nae","ynna"]},"22":{"input":[2,3,5],"tlp":["sen",43375],"trp":["ys",15306],"tlw":["sen",18097],"lp":["sen","ens","sy","den","seen","eens","sens","syn","syd","syy"],"rp":["ys","je","yd","ysy","nes","jen","yde","yys","nd","nnes"]},"23":{"input":[1,2,3,5],"tlp":["dan",14539],"trp":["yda",4761],"tlw":["sydan",458],"trw":["jaada",316],"lp":["dan","ensa","syda","anes","sena","ayd","asen","ayde","edan","daan","sean","and","ande","ays","ayda","assy","esan"],"rp":["yda","ydan","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",82],"trp":["nt",46733],"tlw":["b",145],"lp":["bb","tn"],"rp":["nt","ntt","nb"]},"25":{"input":[1,4,5],"tlp":["taan",23917],"trp":["nta",24277],"tlw":["antaa",1443],"lp":["taan","ant","tan","anta","ttan","tann","aant","tana","ba","antt","anat","atan","bat","ab"],"rp":["nta","ntaa","nat","ntan","nnat","natt"]},"26":{"input":[2,4,5],"tlp":["bj",117],"trp":["nc",817],"lp":["bj","sb","sbj"],"rp":["nc","nst"]},"27":{"input":[1,2,4,5],"tlp":["ajat",5379],"trp":["jat",10551],"tlw":["sanat",714],"trw":["jattaa",503],"lp":["ajat","stan","taj","taja","tans","ttaj","sant","tsan","anc","cq","acq","staj"],"rp":["jat","jatt","jast","nast","jac","jacq","jata","ntas"]},"28":{"input":[3,4,5],"tlp":["ten",35400],"trp":["yt",52934],"tlw":["eteen",754],"trw":["nyt",14068],"lp":["ten","ty","tten","ent","teen","ren","tyy","tyt","tytt"],"rp":["yt","nyt","ytt","net","nte","yty","neet","ynyt","nty","nett","nnet"]},"29":{"input":[1,3,4,5],"tlp":["ayt",12824],"trp":["nayt",5724],"tlw":["taytyy",2000],"trw":["naet",1065],"lp":["ayt","ran","tay","aytt","tayt","anyt","anet","tany","rran","ayty","enta","raan","taen","aten","tya","aren","rann"],"rp":["nayt","ytta","yta"]},"30":{"input":[2,3,4,5],"tlp":["rj",9328],"trp":["yst",5033],"tlw":["syntynyt",298],"lp":["rj","sten","sty","tys","rje","tens","tsen","sent","tyst","esty","synt","etys","syt","rjee","syyt","stys"],"rp":["yst","nest","jet","jest"]},"31":{"input":[1,2,3,4,5],"tlw":["sentaan",644],"trw":["jaanyt",372],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",103087],"trw":["i",313],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",154264],"trp":["ia",39589],"tlw":["z",67],"lp":["ai","aai","zi","az","zz","zzi","za","aza"],"rp":["ia","iaa","iia","iai","iz","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",217633],"trp":["is",146392],"tlw":["siis",3048],"trw":["k",311],"lp":["si","sk","sii","ski","sis"],"rp":["is","ki","ik","ks","kk","isi","ksi","ikk","kki","ikki","iss","iis","kii","iks","iksi"]},"35":{"input":[1,2,6],"tlp":["ak",50178],"trp":["ka",233392],"tlw":["sai",2457],"trw":["kaikki",9023],"lp":["ak","aik","ais","asi","aikk","sia","aks","aka","aki","ska","aisi"],"rp":["ka","kaa","ika","kai","kaik","kas","kka","issa","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",107437],"trp":["ie",70245],"tlw":["ei",34289],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",677],"trp":["ix",36],"tlw":["xii",62],"trw":["ix",36],"lp":["ez","xi","ezi","exi","ze","xii","aie","eia"],"rp":["ix"]},"38":{"input":[2,3,6],"tlp":["ek",18980],"trp":["ke",62524],"tlw":["die",61],"trw":["keksi",101],"lp":["ek","eid","eik","eis","sie","sei","esi","eks","ske","sek"],"rp":["ke","ise","id","kse","ike","ies","ide","ises","kei","kes"]},"39":{"input":[1,2,3,6],"tlp":["eida",12497],"trp":["ida",14485],"tlw":["eika",6048],"trw":["kaikkea",823],"lp":["eida","aise","eika","eka","aike","seka","ake","akse","aske","aid","aide","dak"],"rp":["ida","kea","ikea","ieda","kad","kade","keas","kkea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",98241],"trp":["it",143226],"tlw":["v",870],"trw":["iv",91],"lp":["ti","vi","tti","tii","vii","ttii","vit","tiv","ttiv","vitt","viit"],"rp":["it","iv","itt","iit","iti","itti","ivi","iitt","ivit"]},"41":{"input":[1,4,6],"tlp":["va",182750],"trp":["ita",65115],"tlw":["tai",4545],"lp":["va","vat","av","vai","ava","vaa","tai","aiv","aiva","tav","tava","ait","aav","avat"],"rp":["ita","iva","ivat","iita","itta","itaa"]},"42":{"input":[2,4,6],"tlp":["sit",26898],"trp":["ist",39998],"tlw":["viisi",327],"trw":["itki",255],"lp":["sit","sti","tk","sitt","siit","siv","tki","tsi","sv","vis","tis"],"rp":["ist","its","itk","isti","itsi","itki","kiv","iist","kiit"]},"43":{"input":[1,2,4,6],"tlp":["vas",19036],"trp":["ista",23491],"tlw":["sita",11781],"trw":["kavi",1357],"lp":["vas","vast","tka","sita","asti","tak","vaik","aist","atk","taka","siva","asv","tais","tasi","atka"],"rp":["ista","kat","kats","kasv","kav"]},"44":{"input":[3,4,6],"tlp":["ri",43375],"trp":["ir",15903],"tlw":["ettei",3147],"trw":["irti",421],"lp":["ri","ve","vie","tie","ev","tei","eit","rv","eri","eiv","etti","tiet","eti","ttei","vet"],"rp":["ir","itte","ite","iet","ier"]},"45":{"input":[1,3,4,6],"tlp":["ari",10391],"trp":["ieta",3954],"tlw":["eivat",3839],"lp":["ari","eva","var","eita","arv","eiva","ria","evat","arvi","tarv","vaar","vart","rva","raav","tari","veta","rai"],"rp":["ieta","ira","iera"]},"46":{"input":[2,3,4,6],"tlp":["rk",13550],"trp":["itse",13494],"tlw":["teki",1489],"trw":["itse",3766],"lp":["rk","esti","tek","etk","rkk","rsi","tied","ris","tke","rke","teid"],"rp":["itse","ker","kir","iste","iset","kert","kerr","irk","kirk"]},"47":{"input":[1,2,3,4,6],"tlw":["tieda",1175],"trw":["kertaa",1619],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",333976],"trw":["niin",26801],"lp":[],"rp":["in","ni","iin","nii","niin","ih","hi","inn","nh","nin","iih","hin","nni","hn","ihi","ihin","ini","iinn","inni","nhi"]},"49":{"input":[1,5,6],"tlp":["ah",50528],"trp":["ha",155587],"tlw":["aina",4737],"trw":["han",60727],"lp":["ah","ain","aha","ani","ahan","aina","anh","anha"],"rp":["ha","han","ina","nai","iina","nah","ian","nha","haa","iha","nain","ihan"]},"50":{"input":[2,5,6],"tlp":["sin",32954],"trp":["nk",49072],"tlw":["sikin",37],"trw":["kiinni",1175],"lp":["sin","siin","siih","skin"],"rp":["nk","kin","ink","nki","nkin","nsi","isin","iink","ij","hk","inki","ksin","nis","kiin","ins","ikin"]},"51":{"input":[1,2,5,6],"tlp":["akin",7540],"trp":["kaan",25562],"tlw":["sina",5798],"trw":["kanssa",4169],"lp":["akin","sina","ank"],"rp":["kaan","nka","kan","inka","kans","nak","nkaa","nais","naki","kana","ija","inak","kah","ikan","hka","jai","isan"]},"52":{"input":[3,5,6],"tlp":["eh",17793],"trp":["he",62964],"tlw":["enin",79],"trw":["he",9072],"lp":["eh","eni","ein","ehe"],"rp":["he","ine","inen","hy","yh","hei","ien","yi","hen","ieh","ihe","iihe","ihen","iehe","hny","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",8961],"trp":["hane",41802],"tlw":["eihan",834],"trw":["hanen",25783],"lp":["aine","ahe","ahny","eiha","eha","eina","ehia","ehan","enia","anhe","aihe","enha","ahne","eani"],"rp":["hane","yha","yhan","hea","hena","inay"]},"54":{"input":[2,3,5,6],"tlp":["enk",14707],"trp":["hd",22326],"tlw":["siihen",4304],"trw":["niiden",2381],"lp":["enk","enki","ensi","ehd"],"rp":["hd","ky","isen","ken","hde","yk","yks","heid","ksen","iden","hden","kein","yksi","kys","kysy","keen"]},"55":{"input":[1,2,3,5,6],"tlw":["ehka",1532],"trw":["heidan",5518],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tiin",8421],"trp":["ht",36404],"tlw":["viini",52],"trw":["nti",182],"lp":["tiin","vin","tin","vih","th","viin"],"rp":["ht","hti","niit","nti","int","hit","ntti","nit","init","nv","iint","nitt","hv","itin"]},"57":{"input":[1,4,5,6],"tlp":["van",24884],"trp":["hta",10602],"tlw":["vaan",7099],"trw":["hanta",8388],"lp":["van","aht","tah","vaan","vain","vah","vanh","taht","ahti","vaha","avan","tain","taha","vana"],"rp":["hta","hant","ivan","htaa","hat","inta"]},"58":{"input":[2,4,5,6],"tlp":["tkin",2359],"trp":["ntis",951],"tlw":["viisin",90],"trw":["kiinnitti",90],"lp":["tkin","ch","tsin","tins","stin","tij","vink","tsh","tsij","tch"],"rp":["ntis","nist","hist","nci","hits","ncis","nsiv","itsh","nits","htik"]},"59":{"input":[1,2,4,5,6],"tlw":["vastaan",3099],"trw":["niista",1303],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",8705],"trp":["yv",14540],"tlw":["tehnyt",1374],"trw":["hyvin",4061],"lp":["rin","teh","tyi","eht","ven","rh"],"rp":["yv","hyv","het","iten","her","yht","hte","yvi","herr","hyvi","yvin","ytti","heit","hnyt"]},"61":{"input":[1,3,4,5,6],"tlw":["taytyi",1362],"trw":["hanet",4513],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sitten",8039],"trw":["kenties",944],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["teidan",2121],"trw":["kerran",2976],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",9026],"trw":["o",542],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",201],"trp":["oa",14352],"lp":["ao"],"rp":["oa","oaa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",15574],"trp":["os",54094],"tlw":["so",36],"lp":["so","soo","sso","sos","soss"],"rp":["os","oss","oso","oos","ooss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",566],"trp":["ossa",8151],"trw":["osaa",838],"lp":["soa","aso","sao","ssao"],"rp":["ossa","osa","oas","osaa","osas","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",536],"trp":["oe",3004],"trw":["-",534],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",142],"trp":["ox",358],"lp":["a-","a-a","xo"],"rp":["ox","-a","oxo"]},"70":{"input":[2,3,7],"tlp":["do",12063],"trp":["od",8394],"lp":["do","dos","edo","sod","soe","doss","esso","eos","eoss","edos"],"rp":["od","ode","odo","ose","odos","oose","oses","odes","oes","oess"]},"71":{"input":[1,2,3,7],"tlp":["ado",599],"trp":["oda",1130],"tlw":["sodassa",75],"lp":["ado","soda","aado","dow","eado","adow"],"rp":["oda","odas","odaa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",61617],"trp":["ot",51834],"tlw":["g",128],"trw":["ogoot",161],"lp":["to","tto","tot","too","tott","go","gt","goo","goot","gto","ttoo","gg"],"rp":["ot","ott","oto","otto","oot","og","ogo","ogoo"]},"73":{"input":[1,4,7],"tlp":["ato",2846],"trp":["ota",12728],"tlw":["totta",1107],"trw":["ottaa",1121],"lp":["ato","toa","ga","atto","ag","gat","gata","aato","ttoa","ago","gatt","toaa","fo"],"rp":["ota","otta","otaa","of","oat","oata","otoa"]},"74":{"input":[2,4,7],"tlp":["sto",3632],"trp":["ost",9527],"lp":["sto","tso","tos","sot","co","toss","tost","sott","stos","tsoo","stot","stoo","tsos","tsot","gs"],"rp":["ost","ots","oc","osto","osot"]},"75":{"input":[1,2,4,7],"tlp":["atso",3515],"trp":["osta",6277],"tlw":["sota",171],"trw":["ostaa",147],"lp":["atso","asto","gas","sota","atos","tsoa","sato","stoa","gast","sof","aggs","asot"],"rp":["osta","oast","otsa","osat","osof","owc"]},"76":{"input":[3,4,7],"tlp":["ro",11439],"trp":["or",16598],"tlw":["eero",648],"lp":["ro","ero","rto","tor","erto","ge","eto","rot","rg","erg","rro","erro","etto"],"rp":["or","ote","ort","ore","oet","oett","otte"]},"77":{"input":[1,3,4,7],"tlp":["rag",1424],"trp":["ora",1253],"tlw":["erottaa",195],"lp":["rag","aro","rtoa","rof","atro","rota","etoa","rofe","gra","aroo","roa","eroa","for"],"rp":["ora","oraa","orta","ofe","oeta","orea","otar"]},"78":{"input":[2,3,4,7],"tlp":["dot",4568],"trp":["odot",2046],"tlw":["god",157],"lp":["dot","dott","tod","tode","dost","ros","stor","sor","doto","cor","cort","roc","serg","ssor","tsoe","tros","ross"],"rp":["odot","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["grace",80],"trw":["odottaa",481],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",111283],"trw":["on",43019],"lp":[],"rp":["on","un","uu","uo","nu","no","ou","uon","nun","unn","onn","uun","unu","nnu","nuo","oon","nno","non","nou","onu"]},"81":{"input":[1,5,7],"tlp":["au",31984],"trp":["ua",18997],"lp":["au","ano","anu","aun","annu","aanu","aua","anoa","anon","auan"],"rp":["ua","nua","noa","ona","una","nau","uan","uona","onaa","unna"]},"82":{"input":[2,5,7],"tlp":["su",33737],"trp":["jo",99696],"tlw":["sun",387],"trw":["jos",9131],"lp":["su","suu","suo"],"rp":["jo","us","jos","ju","jon","oj","uus","jou","juu","uos","joss","ous","uns","nous","nus","ons","uss"]},"83":{"input":[1,2,5,7],"tlp":["sano",17998],"trp":["oja",7593],"tlw":["sanoa",1500],"trw":["jossa",2870],"lp":["sano","aus","asu","ausu","ajo","anoj","aju","sua"],"rp":["oja","noas","onsa","ussa","uja","noja","unsa","ojan","osan","uas","uoja","ojaa"]},"84":{"input":[3,5,7],"tlp":["eu",8909],"trp":["yo",14437],"tlw":["eno",84],"trw":["yon",465],"lp":["eu","enu","eno","ennu"],"rp":["yo","one","onne","unne","oy","ue","uone","yon","onee","une","oen","neu","unee","onen","noe","noen"]},"85":{"input":[1,3,5,7],"tlp":["que",622],"trp":["yona",396],"trw":["yona",396],"lp":["que","anoe","aune","aue","enoa","euna","xon","aneu","aeu"],"rp":["yona","nox","oxon","-na","-nay","nque","naeu","unay"]},"86":{"input":[2,3,5,7],"tlp":["seu",5113],"trp":["ud",9289],"tlw":["syo",106],"trw":["uuden",713],"lp":["seu","don","du","suud","syo"],"rp":["ud","ude","uud","uude","yos","use","uden","uod","oje","ojen","udes","uode","oyd","ues","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["sanoen",554],"trw":["juoda",134],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",97385],"trp":["ut",111271],"tlw":["tuo",4127],"trw":["outo",170],"lp":["tu","tun","tuo","ttu","ton","tunt","tuu"],"rp":["ut","utt","nut","uut","ng","unt","uot","unut","nnut","nto","uutt","utu","ont"]},"89":{"input":[1,4,5,7],"tlp":["anut",9016],"trp":["utta",36184],"tlw":["tuota",1414],"trw":["uutta",628],"lp":["anut","tanu","aut","tua","atu","autt","anto","attu","ttua","anot","tau","agn","ang"],"rp":["utta","uta","uuta","nga","onta","uota","unta"]},"90":{"input":[2,4,5,7],"tlp":["stu",9987],"trp":["jot",16587],"tlw":["totuus",204],"trw":["joutunut",411],"lp":["stu","tus","tuns","tuos","suut","toj","tust","stun","tsu","stus","sut"],"rp":["jot","ust","nust","jost","jout","nost","jott","uost","uots"]},"91":{"input":[1,2,4,5,7],"tlw":["saanut",2403],"trw":["jota",3761],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10641],"trp":["ur",27188],"tlw":["tytto",1225],"trw":["nuoren",497],"lp":["ru","eur","ettu","tyo","rou","ruu","tur","eut"],"rp":["ur","uur","uor","ure","uure","ute","nuor","uten","unte","yot","uute","ytto"]},"93":{"input":[1,3,4,5,7],"tlw":["tyota",814],"trw":["yota",359],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["suuren",1116],"trw":["joten",283],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["suurta",798],"trw":["uudestaan",554],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",180531],"trw":["oli",55295],"lp":[],"rp":["ll","ol","li","oi","oli","il","ill","lo","oll","lli","loi","llo","lloi","illo","lii","io","olli","ilo","oil","oill"]},"97":{"input":[1,6,7],"tlp":["al",103204],"trp":["la",161361],"tlw":["alla",1156],"trw":["olla",4699],"lp":["al","all","alla","ala","aal","aall","ali","alli","alo","ail","alai"],"rp":["la","lla","illa","lai","olla","laa","ila","llai","llaa"]},"98":{"input":[2,6,7],"tlp":["sil",23278],"trp":["ko",79476],"tlw":["soi",379],"trw":["olisi",9034],"lp":["sil","sill"],"rp":["ko","ok","lis","ois","lk","lisi","olis","koi","oik","llis","osk","oko","kok","kos","koko","iko","oisi","lko"]},"99":{"input":[1,2,6,7],"tlp":["alk",11320],"trp":["oka",22378],"tlw":["silla",7800],"trw":["koska",1773],"lp":["alk","sal","alko","alka","alas","aiko","ako","sala","sall"],"rp":["oka","lais","las","kal","lka","oska","kall","lak","oika","lkaa","laki"]},"100":{"input":[3,6,7],"tlp":["el",107523],"trp":["le",115183],"tlw":["eli",822],"trw":["ole",10027],"lp":["el","ell","elle","eli","ele","eil","eill","elli"],"rp":["le","lle","ole","iel","lee","ille","llee","iell","olle","iele","lei","lel"]},"101":{"input":[1,3,6,7],"tlp":["ella",24479],"trp":["iela",9775],"tlw":["elaa",782],"trw":["lea",62],"lp":["ella","ela","alle","ale","eal","elaa","eall","elia","aile","elai","alee","alel","a-al","aale","alea","elal"],"rp":["iela","lea","-al","lae"]},"102":{"input":[2,3,6,7],"tlp":["sel",13503],"trp":["oise",7642],"tlw":["eiko",1404],"trw":["kello",600],"lp":["sel","sell","siel","del","dell","elk","eiso","seli","skel"],"rp":["oise","lke","oike","lise","les","kel","lkee","kell","okse","isel","oid"]},"103":{"input":[1,2,3,6,7],"tlw":["siella",4520],"trw":["keskella",829],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",29749],"trp":["lt",22549],"tlw":["voi",5384],"trw":["otti",1283],"lp":["vo","toi","voi","til","toiv","gi","voit"],"rp":["lt","oit","ov","liv","oliv","oitt","oiv","lit","lv","ilt","otti","oti","ito"]},"105":{"input":[1,4,6,7],"tlp":["val",18640],"trp":["lta",17662],"tlw":["taalla",3001],"trw":["olivat",8509],"lp":["val","tal","alt","vall","alta","vali","taal","talo","aval","tila","tall","valt"],"rp":["lta","liva","ova","ovat","oita","oiva","ilta","lat"]},"106":{"input":[2,4,6,7],"tlp":["tois",11857],"trp":["otk",7732],"tlw":["voisi",1258],"trw":["kiitos",454],"lp":["tois","tko","svo","vois","tosi","tok","soit","vos","tsoi","tkoi","svoi","stoi"],"rp":["otk","oist","list","kot","kov","isto","koti","osti"]},"107":{"input":[1,2,4,6,7],"tlw":["saattoi",861],"trw":["katsoi",951],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",10931],"trp":["lev",8000],"tlw":["teille",1239],"trw":["olet",1963],"lp":["tel","viel","elt","vel","teli","tell","ttel","ril","rill","evo","elv"],"rp":["lev","let","ori","olet","olev","ielt","lett","ove","leet"]},"109":{"input":[1,3,4,6,7],"tlw":["viela",8600],"trw":["oleva",577],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["toiset",990],"trw":["kertoi",658],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["sielta",1053],"trw":["katseli",846],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",66193],"trw":["olin",2657],"lp":[],"rp":["ui","ul","lu","uin","inu","oin","hu","oh","ull","llu","uh","uol","noi","uul","lin","ollu","loin","uli","huo","luo"]},"113":{"input":[1,5,6,7],"tlp":["anoi",9266],"trp":["lah",8966],"tlw":["ainoa",772],"trw":["liian",1614],"lp":["anoi","aino","auh","alan","aul","auni","alu"],"rp":["lah","ulla","lan","inua","laan","hal","inoa","lain","lau","uha","nal","hall","ula"]},"114":{"input":[2,5,6,7],"tlp":["sinu",6349],"trp":["ku",115005],"tlw":["silloin",5497],"trw":["kuin",22585],"lp":["sinu"],"rp":["ku","kui","kuin","kun","uk","jok","kuu","onk","lj","joi","nku","kuul","koh","uks","jonk","usk","nkui","kul","usi"]},"115":{"input":[1,2,5,6,7],"tlw":["sanoi",7087],"trw":["joka",18978],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",3144],"trp":["len",16714],"tlw":["eilen",316],"trw":["olen",5653],"lp":["elu","elen"],"rp":["len","yl","nel","ule","nell","leen","olen","uole","ulle","yll","hel","oine","line","ulee","llen","uule","yli","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["aanella",765],"trw":["hanelle",4619],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ennenkuin",1410],"trw":["oikein",2049],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sellainen",739],"trw":["kylla",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",21501],"trp":["lut",16706],"tlw":["tuli",4747],"trw":["ollut",10662],"lp":["tul","tui","vu","tuli","vuo","voin","tull","toin"],"rp":["lut","llut","uv","oht","uit","inut","hto","ing","ult","htu","itu","utti"]},"121":{"input":[1,4,5,6,7],"tlw":["tulla",1527],"trw":["lahti",967],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["tunsi",1344],"trw":["istui",1253],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ainoastaan",2528],"trw":["jotka",7436],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tulee",3128],"trw":["nuori",1213],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["rouva",1878],"trw":["olevan",1792],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["suuri",2189],"trw":["kuitenkin",3603],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["tahdon",933],"trw":["kuitenkaan",984],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",8308],"trw":["p",1108],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22497],"trp":["pa",77545],"trw":["paa",544],"lp":["ap","apa","app","apaa","aap","appa","aapa"],"rp":["pa","paa","pap","ppa","papp","ppaa","paaa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",2110],"trp":["ps",4292],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["aps",4165],"trp":["paas",5700],"trw":["paassa",773],"lp":["aps","spa","saap","apas","asp","aspa","sap","saps","apsa"],"rp":["paas","pas","ppas","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",2526],"trp":["pe",16376],"trw":["'",576],"lp":["ep","epp","e'","eep"],"rp":["pe","'e","pee","ppe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",1849],"trp":["pea",2103],"tlw":["aape",205],"lp":["epa","ape","aape","apea","eppa","appe","epaa"],"rp":["pea","'a","pape","pae","peaa","paae"]},"134":{"input":[2,3,8],"tlp":["s'",618],"trp":["pse",2270],"lp":["s'","sep","esp","sepp","d'","spe","ss'","s'e","es'"],"rp":["pse","pes","psee","ped","pede","pses","pees"]},"135":{"input":[1,2,3,8],"tlp":["apse",2143],"trp":["peas",737],"tlw":["sepa",189],"trw":["paase",202],"lp":["apse","espa","sepa","epas","d'a","d'as"],"rp":["peas","pesa","'as"]},"136":{"input":[4,8],"tlp":["tp",203],"trp":["pt",207],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",6856],"trp":["paat",3775],"tlw":["tapa",257],"trw":["paata",312],"lp":["tap","tapa","tapp","apt","taap","tpa","apat"],"rp":["paat","pat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["stap",241],"trp":["past",383],"trw":["paasta",1393],"lp":["stap","spat"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["t'",2289],"trp":["per",3933],"tlw":["ett'",217],"lp":["t'","tt'","ett'","t'e","tt'e","rp","rpe","rpee","r'","rr'","rep","err'"],"rp":["per","pet","pett","pr","pte","ptee","pere","pre"]},"141":{"input":[1,3,4,8],"tlp":["arp",756],"trp":["par",8411],"trw":["paeta",156],"lp":["arp","tarp","arpe","aper","t'a","rap","rapa","apte","epat","arr'","rapp","fe'"],"rp":["par","pera","pare","para","paet","pate","part","peat"]},"142":{"input":[2,3,4,8],"tlp":["spr",153],"trp":["pset",690],"lp":["spr","spre","tsep","st'"],"rp":["pset"]},"143":{"input":[1,2,3,4,8],"tlw":["d'astarac",81],"trw":["perasta",769],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",28094],"trw":["m",905],"lp":[],"rp":["mm","mp","np","nm","mpp"]},"145":{"input":[1,5,8],"tlp":["am",46002],"trp":["ma",123834],"trw":["nama",1502],"lp":["am","ama","amaa","aman","aam","amm","aama","amp"],"rp":["ma","maa","man","maan","mma","pan","mpa","mman","npa","paan","nam","nama"]},"146":{"input":[2,5,8],"tlp":["sm",505],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",8343],"trp":["mas",10187],"tlw":["samassa",1358],"trw":["paansa",590],"lp":["sam","sama","amas","span","saam","samm","ssam","sma","sanm","asm"],"rp":["mas","mass","mans","maas","mmas","panj","maj","pans","mpas","jam"]},"148":{"input":[3,5,8],"tlp":["em",30930],"trp":["me",55008],"tlw":["emme",1059],"trw":["me",4210],"lp":["em","emm","emp","emme","enem"],"rp":["me","men","my","mme","ym","py","nem","mene","menn","ymm","nemm","ymp","ymy","pyy","mee"]},"149":{"input":[1,3,5,8],"tlp":["ema",9490],"trp":["ympa",2574],"tlw":["enemman",2199],"trw":["menna",1245],"lp":["ema","emma","emaa","ame","amme","eman","empa","amen","enpa","eam","eamm","eamp"],"rp":["ympa","ymma","mea","pane","yma","nema","ymaa","mpea"]},"150":{"input":[2,3,5,8],"tlp":["sem",3594],"trp":["mes",2527],"tlw":["esm",37],"trw":["pysyy",153],"lp":["sem","semm","sym","symy","spen","dem","demm"],"rp":["mes","pys","ysym","psen","pysy","mess","mens","pyys","mys","ymys","pyyd","meyd","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["sydamensa",387],"trw":["pyydan",244],"lp":[],"rp":[]},"152":{"input":[4,5,8],"trp":["mb",336],"lp":[],"rp":["mb","mmb"]},"153":{"input":[1,4,5,8],"tlp":["tam",18925],"trp":["mat",13373],"tlw":["tama",6514],"trw":["maata",654],"lp":["tam","tama","amat","ttam","tamm","ammb","atam","taam","tamp","amb"],"rp":["mat","matt","mmat","maat","mant","pant","mata","ntam","ntap"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["samat",179],"trw":["maasta",321],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5379],"trp":["mer",3161],"tlw":["ett'en",165],"trw":["mr",635],"lp":["rm","rem","tem","remp","remm","temm","rme","ttem","temp"],"rp":["mer","met","mr","pent","ment","mere","pyyt","ntem","pyr","myr","metr"]},"157":{"input":[1,3,4,5,8],"tlw":["emanta",515],"trw":["ymmarra",345],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"trw":["mrs",279],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",161],"trw":["paassyt",507],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",36935],"lp":[],"rp":["pi","ip","ppi","pii","iip","ipp","ipi","iipp","iipi","piip","ipii","ppii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2247],"trp":["pai",17547],"trw":["pappi",810],"lp":["api","appi","apai","aip","aipa","aapi","aipp"],"rp":["pai","pia","ipa","papi","ppia","ipaa","ippa","piaa"]},"162":{"input":[2,6,8],"tlp":["sip",134],"trp":["pik",1832],"lp":["sip","siip"],"rp":["pik","psi","pis","pikk","isp","piis","iisp","pisi","piki","kip","ksip","kkip","kipi","piik","psis","piks","isip","kiip"]},"163":{"input":[1,2,6,8],"tlp":["apsi",1759],"trp":["paik",2876],"tlw":["saapi",132],"trw":["paasi",542],"lp":["apsi","spai","apis","sipa"],"rp":["paik","pak","kap","pasi","ispa","kapa","pais","kapp","paak","pakk","psia","paks","kaip","kkap","ipas","pias"]},"164":{"input":[3,6,8],"tlp":["eip",817],"trp":["pie",5244],"lp":["eip","epi","eppi","eipp","e'i","eepi"],"rp":["pie","'ei","pei","ipe","'i","iep","ppie","iepp","iepi","iipe","ipie"]},"165":{"input":[1,3,6,8],"tlp":["epai",1133],"trp":["'ai",235],"tlw":["eipa",378],"lp":["epai","eipa","epia","apei"],"rp":["'ai","ipea"]},"166":{"input":[2,3,6,8],"tlp":["siep",69],"trp":["pid",1813],"trw":["kiipesi",44],"lp":["siep"],"rp":["pid","pesi","pide","k'","peek","kk'","ikk'","pek","pike","pekk","kipe","pidi","is'","ksep","k'e","kk'e","k'ei","ipid","iss'"]},"167":{"input":[1,2,3,6,8],"tlw":["sieppasi",69],"trw":["pida",405],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["viip",485],"trp":["pit",11493],"trw":["piti",1713],"lp":["viip"],"rp":["pit","piti","piv","ipit","ppiv","pitt","ipiv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1883],"trp":["paiv",6732],"tlw":["vapaa",269],"trw":["pitaa",1916],"lp":["vap","vapa","vaip","vapi","apit","taip","tapi"],"rp":["paiv","pita","pait","itap","piva","paav"]},"170":{"input":[2,4,6,8],"trp":["pitk",4224],"trw":["pisti",361],"lp":[],"rp":["pitk","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["sitapaitsi",428],"trw":["pitaisi",756],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["t'ei",979],"trp":["peri",1054],"tlw":["ett'ei",867],"trw":["peitti",175],"lp":["t'ei","riip","reip","repi","viep","t'i","rip"],"rp":["peri","peit","piet","pite","piir","pir","it'","pier","pri","pirt","'eiv","iit'","irip"]},"173":{"input":[1,3,4,6,8],"tlw":["ett'eivat",74],"trw":["pari",989],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["sit'",100],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["tarpeeksi",310],"trw":["parka",244],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",120870],"trw":["mihin",694],"lp":[],"rp":["mi","min","im","hm","ihm","mmi","hmi","ihmi","mmin","imm","imi","nim","iim","mpi","mii","nimi","miin","pin","pim","hmin"]},"177":{"input":[1,5,6,8],"tlp":["aim",2568],"trp":["mina",17633],"trw":["mina",16504],"lp":["aim","ami","apah","amia"],"rp":["mina","mai","ima","pain","pah","mia","main","mah","maai","imma","pian","paha","ham","imaa","maah","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",3768],"trp":["mis",12062],"trw":["miksi",1344],"lp":["sim","simm","smi"],"rp":["mis","mik","hmis","miss","mink","nsim","misi","miks","imis","kim","isim","jim","mpik","ism","mk","kimp","ismi"]},"179":{"input":[1,2,5,6,8],"trw":["mika",3480],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3536],"trp":["mie",19226],"tlw":["ennemmin",163],"trw":["meni",1459],"lp":["emmi","empi","emi"],"rp":["mie","mei","ime","mieh","pien","iime","meni","hem","imei","imme","hemm","nime","hym","mein","hymy","hme","mine"]},"181":{"input":[1,3,5,6,8],"trw":["miehia",566],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["esim",379],"trw":["mies",3388],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["ensimainen",403],"trw":["meidan",2780],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["viim",3133],"trp":["mit",21696],"trw":["nimitti",52],"lp":["viim","tim","ttim","vim","vimm","timm","tinp"],"rp":["mit","mitt","imit","mint","htim","miit","mmit","npit","pint","miv","imiv"]},"185":{"input":[1,4,5,6,8],"trw":["mita",10059],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["pitkin",1130],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["mista",982],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["viimein",718],"trw":["miten",2370],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["eteenpain",770],"trw":["meita",1361],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sittemmin",355],"trw":["ihmiset",1045],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["varmaankin",428],"trw":["miesta",877],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",17061],"lp":[],"rp":["po","op","opp","ppo","oop","oopp","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",392],"trp":["opa",760],"lp":["apo","appo","aapo"],"rp":["opa","poa","ppoa","oopa","opaa"]},"194":{"input":[2,7,8],"tlp":["sop",886],"trp":["pos",648],"lp":["sop"],"rp":["pos","osp"]},"195":{"input":[1,2,7,8],"trp":["ospa",434],"lp":[],"rp":["ospa"]},"196":{"input":[3,7,8],"tlp":["epo",141],"trp":["ope",2399],"lp":["epo","epoo"],"rp":["ope","'o","oppe"]},"197":{"input":[1,3,7,8],"tlp":["epoa",105],"trp":["opea",620],"lp":["epoa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["s'o",328],"trp":["osep",102],"lp":["s'o"],"rp":["osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gtp",153],"trp":["pot",295],"lp":["gtp","tpo","gtpo","top"],"rp":["pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apot",165],"trp":["pato",255],"lp":["apot","tapo","topa"],"rp":["pato","pota","otap"]},"202":{"input":[2,4,7,8],"trp":["post",449],"lp":[],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["paatos",82],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["tpor",153],"trp":["opet",1620],"trw":["peto",55],"lp":["tpor","tope","roop"],"rp":["opet","por","port","pro","poro","peto"]},"205":{"input":[1,3,4,7,8],"trw":["opettaa",197],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["petosta",39],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mu",58870],"trw":["muu",588],"lp":[],"rp":["mu","pu","om","mo","muu","um","uom","puo","up","mon","pun","puu","upu","upun","opu","umm","ppu","nom","uum","mmo"]},"209":{"input":[1,5,7,8],"tlp":["aup",2791],"trp":["oma",16400],"tlw":["apua",470],"trw":["oman",1021],"lp":["aup","apu","aupu","amo","amu","apau","aamu","aapu","anom"],"rp":["oma","uma","uoma","omaa","oman","pau","noma","upa","umaa","umma","panu"]},"210":{"input":[2,5,7,8],"tlp":["suom",4018],"trp":["jum",4241],"tlw":["suom",417],"lp":["suom","som","sum"],"rp":["jum","mus","poj","jop","mons","muus","pus","moj","opus","moos","josp","puss","omus","mos","npoj","psu","psuu"]},"211":{"input":[1,2,5,7,8],"tlw":["sanomaan",203],"trw":["pojan",607],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emmo",1235],"trp":["myo",6382],"tlw":["emo",86],"trw":["monen",273],"lp":["emmo","emu"],"rp":["myo","ome","uome","omen","poy","mone","upe","nope","pue","myon","ume","uem","yom","meno","pyo","omme","uemm","pune"]},"213":{"input":[1,3,5,7,8],"trw":["myonnan",82],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["suomen",1322],"trw":["myos",1706],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["suomessa",236],"trw":["poydan",440],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",3714],"trp":["mut",29213],"tlw":["tom",275],"trw":["muut",992],"lp":["tom","ttom","tum","tuom","tomu","bom","gbom","tup","ttum"],"rp":["mut","mutt","muut","pung","mont","puut","muot","put","mbo","mmbo","puto"]},"217":{"input":[1,4,5,7,8],"trw":["mutta",28564],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"trw":["muutos",112],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tuomas",244],"trw":["pojat",604],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["bergbom",465],"trw":["muuten",1081],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["tuntemaan",300],"trw":["poytaan",161],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprengtport",116],"trw":["prudence",171],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["etupaassa",239],"trw":["opettaja",379],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",8488],"trw":["oppi",180],"lp":[],"rp":["poi","lop","lp","oppi","opi","pil","pol","lpo","lopp","ppil","lip","iop","liop","ilp","lpp","lppo","ippo","ppol","poli","pio"]},"225":{"input":[1,6,7,8],"tlp":["alp",476],"trp":["pal",8702],"trw":["lapi",904],"lp":["alp","alap"],"rp":["pal","lap","pala","paal","lapi","pail","pila","ppal","lapa","lipa","lpa","palo","lpaa","llap","lapp","iopa","opai","ilpa"]},"226":{"input":[2,6,7,8],"tlp":["sopi",829],"trp":["poik",4206],"tlw":["sopii",210],"trw":["pois",3248],"lp":["sopi"],"rp":["poik","pois","lpos","kop","lkop","opis","polk","posk","losp","psil","pilk","oisp","kilp","pios"]},"227":{"input":[1,2,6,7,8],"trw":["poika",1648],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1235],"trp":["pel",3429],"tlw":["ell'ei",70],"trw":["piilee",68],"lp":["elp","elpo","elpp","elip","ell'"],"rp":["pel","lpe","l'","lep","ll'","pelo","peli","leip","ppel","lope","peel","pell","'ol","'oli","ill'"]},"229":{"input":[1,3,6,7,8],"tlw":["epailla",102],"trw":["paalle",747],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'oli",178],"trw":["pelko",234],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["sill'aikaa",122],"trw":["pelkaa",283],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["voip",114],"trp":["pilv",391],"tlw":["voipi",114],"trw":["ippolit",287],"lp":["voip","vilp","tiop"],"rp":["pilv","opiv","polv","polt","lpit","lpot","pito"]},"233":{"input":[1,4,6,7,8],"tlw":["apotti",165],"trw":["palata",236],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["potki",36],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["sopiva",101],"trw":["palasivat",135],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["viel'",99],"trw":["perille",288],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["vielapa",360],"trw":["portaita",183],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["tok'",38],"trw":["posket",92],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["tarpeellista",75],"trw":["lapset",690],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",22428],"trw":["minun",5382],"lp":[],"rp":["lm","minu","ilm","puh","puol","mui","oim","mil","puhu","huom","lmi","omi","mill","moi","olm","ilmi","imo","pui","mol","moin"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["aamulla",431],"trw":["minua",4742],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["silmin",342],"trw":["pikku",1155],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["samalla",1927],"trw":["paljon",3194],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["minulle",3318],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["elaman",1008],"trw":["meilla",1051],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["semmoinen",325],"trw":["myoskin",2227],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["suomalaisen",431],"trw":["kallem",1117],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["toimi",174],"trw":["minut",1928],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["tapahtunut",602],"trw":["muutamia",1006],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["sopinut",80],"trw":["muutkin",289],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["silmat",1184],"trw":["minusta",1102],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["toimeen",479],"trw":["miltei",281],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["epailematta",384],"trw":["molemmat",921],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["rupesi",652],"trw":["helposti",449],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["tapauksessa",366],"trw":["puolesta",598],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json index 9613ba92b6..22c4f4cd26 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlw":["a",186860],"lp":[],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",130131],"tlw":["s",189],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",154012],"tlw":["sa",35710],"lp":["as","sa","ass","ssa","assa","wa","asa","sas","ssas","sass","aw","was","sw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",43082],"tlw":["e",648],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",45510],"tlw":["x",164],"lp":["ea","ex","xe","xa","exa","exe","ae","ax","xee"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",647732],"tlw":["de",329573],"lp":["es","de","se","des","sse","ses","ess","ed","esse","ds","ese","ees","dess","see","dee","ede","sses","eds","ssee","dese"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",113149],"tlw":["sexe",325],"lp":["da","asse","ad","essa","ade","ada","sea","dea","eda","ase","we","deda","das","sex","ew","ades","esa","ssea","adea","dex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",56643],"tlw":["t",179],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",168893],"tlw":["ta",2612],"lp":["ta","fa","at","ff","att","af","tat","tta","aff","ffa","affa","ata","atta","fat","tf","ttf","ft","fata","tata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",141218],"tlw":["c",294],"lp":["st","ts","ct","sc","cc","cs","tc","cts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",78160],"tlw":["ca",22002],"lp":["ca","ac","sta","fac","act","acc","cas","sac","tac","cat","tas","sat","ats","ast","aca","sca","cac","cca","fs","sf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",583533],"tlw":["et",174550],"lp":["re","et","er","te","tr","tre","rt","ere","rr","ete","ter","tte","etr","ett","rte","ret","etre","ette","err","rre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",199557],"tlw":["frere",1316],"lp":["ar","ra","eta","fe","tra","art","fr","arr","era","ef","rta","fer","are","atte","ara","ate","rra","fra","ref","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",214983],"tlw":["ce",47447],"lp":["ce","ec","est","res","rs","rd","dr","ser","rc","tes","cr","ers","dre","ste","ces","tres","cet","der","cett","rec"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",29774],"tlw":["tard",3213],"lp":["ard","ace","arc","car","ras","sera","arde","rac","rda","arda","dra","arce","cra","tard","face","esta","rsa","xc","exc","acte"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",57349],"trw":["n",242],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",332256],"trp":["na",60823],"tlw":["anna",1043],"trw":["na",258],"lp":["an","ann","aq","anq","anna","ana","anan"],"rp":["na","nna","nan","nq","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",130],"trp":["ns",191473],"trw":["j",225],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["ans",94605],"trp":["ja",25027],"tlw":["sans",15580],"trw":["jan",70],"lp":["ans","san","sq","sans","ssan","aj","asq","ansa","wn","wan"],"rp":["ja","nsa","jan","nsan","nas","jas","nja","nw","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",547626],"trp":["ne",292024],"tlw":["en",90753],"trw":["ne",63131],"lp":["en","ene","enn","enne","ey","enny","eye"],"rp":["ne","nne","ye","nee","ny","nnee","nny","nen","yen","nnen","yn","yne","ney"]},"21":{"input":[1,3,5],"tlp":["ena",18722],"trp":["ya",10697],"tlw":["annee",430],"trw":["nanny",98],"lp":["ena","ay","enan","anne","ane","eq","ean","aye","aya","ayan","any","xan","anny","enq","exan"],"rp":["ya","yan","nea","nnea","nean"]},"22":{"input":[2,3,5],"tlp":["end",46705],"trp":["nd",127339],"tlw":["sens",2477],"trw":["je",94389],"lp":["end","ens","sen","ense","ej","den","dej","esen","sens","ends","ende"],"rp":["nd","je","nde","nse","nes","nds","ys","nees","ndes"]},"23":{"input":[1,2,3,5],"tlp":["dan",83378],"trp":["nda",18852],"tlw":["dans",69810],"trw":["jean",744],"lp":["dan","dans","and","ande","enda","anda","eja","deja","esq","say","ssay","ensa","ands","ays","saye","saya"],"rp":["nda","ndan","jea","jean"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",863],"trp":["nt",395069],"tlw":["b",429],"lp":["bb","bt","tn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",99116],"trp":["nf",14856],"tlw":["tant",2815],"lp":["ant","ab","ba","tan","tant","tab","fan","bat","fant","ban","anta","batt","aba","bab"],"rp":["nf","nta","nant","nfa","nfan","nat"]},"26":{"input":[2,4,5],"tlp":["bs",4870],"trp":["nc",84806],"lp":["bs","bj","bsc","bst","sb"],"rp":["nc","nts","nst","nsc","ncs","nct"]},"27":{"input":[1,2,4,5],"tlp":["anc",29956],"trp":["nca",8089],"tlw":["bas",1760],"lp":["anc","sant","stan","bas","ants","can","anca","tanc","sanc","abs","sab","cab","bass","ancs","cq","acq"],"rp":["nca","nsta","jac","ntac"]},"28":{"input":[3,4,5],"tlp":["ent",205997],"trp":["nte",52433],"tlw":["entre",6016],"lp":["ent","ten","ren","be","br","rn","ente","entr","bre","rent","ern","rne","tent","tten"],"rp":["nte","ntr","ntre","ner","nten","nter"]},"29":{"input":[1,3,4,5],"tlp":["ran",32995],"trp":["ntra",4859],"tlw":["enfant",1479],"lp":["ran","rq","enf","tena","ante","bra","rna","bea","enta","rant","tran","enfa","rtan","fran","arq","bar","arb","fen","rena"],"rp":["ntra"]},"30":{"input":[2,3,4,5],"tlp":["enc",33290],"trp":["nce",37449],"tlw":["cent",1511],"trw":["jeter",658],"lp":["enc","endr","tend","ence","rend","sent","cen","ents","cent","bes","dern","dent","scen","renc","deb"],"rp":["nce","ndr","ndre","jet","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["bras",4531],"trw":["jeta",1297],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",352],"trw":["ii",352],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",540051],"trp":["ia",19364],"tlw":["ai",3119],"lp":["ai","za","zi","zai","az","zz","azi","zzi","aza","zza","ziz","aziz","ziza"],"rp":["ia","iz","iza","iai","izai","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",117702],"trp":["is",301576],"tlw":["si",24030],"trw":["k",204],"lp":["si","ssi","sis","ssis","sk","ski","sisk"],"rp":["is","iss","isi","ki","ik","issi","ks","isk","kk","isis","kis","iski","kiss"]},"35":{"input":[1,2,6],"tlp":["ais",132120],"trp":["isa",17988],"tlw":["sais",5940],"lp":["ais","sai","aiss","sais","ssai","assi","aisa","aisi","asi","wi","ak","sia","sias"],"rp":["isa","issa","isai","ka","ias","kw","iais"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",36481],"trp":["ie",241794],"lp":["ei"],"rp":["ie","iei","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",35534],"trp":["ix",16144],"tlw":["aie",130],"lp":["ez","aie","xi","ze","exi","xie","eai","aix","axi","zie","eiz","eize","eze","eez","xai"],"rp":["ix","iez","ixe","ixa","ize"]},"38":{"input":[2,3,6],"tlp":["di",97853],"trp":["id",28086],"tlw":["dis",1668],"trw":["idee",1596],"lp":["di","dis","sie","die","essi","esi","sei","edi","ssie"],"rp":["id","ide","ise","isse","ke","ied","ies","idee","idi","ieds","ises"]},"39":{"input":[1,2,3,6],"tlp":["dai",9749],"trp":["ida",1007],"tlw":["assez",2893],"lp":["dai","sez","aise","ssez","aid","dix","saie","dia","aide","disa","adi","xis","exis","six","dez","edia","adie","daie"],"rp":["ida","idea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",116014],"trp":["it",399129],"tlw":["vit",2136],"lp":["ti","vi","tit","vit","viv","tiv","tti","ttit","vivi","tivi","titi"],"rp":["it","iv","iti","ivi","itt","ivit","itiv","itti"]},"41":{"input":[1,4,6],"tlp":["ait",223936],"trp":["if",12313],"tlw":["avait",34178],"trw":["if",198],"lp":["ait","av","va","tai","vai","ava","avai","tait","vait","fai","fi","ati","fait","fit","ffi","avi"],"rp":["if","ita","iva","iff"]},"42":{"input":[2,4,6],"tlp":["ci",50221],"trp":["ic",35688],"tlw":["vis",479],"trw":["ici",5070],"lp":["ci","vis","sit","sti","cti","ck","visi","vic","cit","ssit","tis","tic","sci","cis"],"rp":["ic","ist","ici","its","isit","ict"]},"43":{"input":[1,2,4,6],"tlp":["sait",14527],"trp":["ica",3062],"tlw":["vais",3612],"lp":["sait","vais","sav","fais","visa","tais","fic","cai","sava","ffic","aci","sati","vas","fici","cia","acti","stai","ack"],"rp":["ica","ista"]},"44":{"input":[3,4,6],"tlp":["ve",170346],"trp":["ir",150486],"tlw":["vie",6638],"lp":["ve","ri","ev","ver","rie","vr","vie","rit","eve","rri","eti","rti","eri","tie"],"rp":["ir","ire","ier","ite","iere","ive"]},"45":{"input":[1,3,4,6],"tlp":["etai",66155],"tlw":["etait",29101],"lp":["etai","rai","ave","air","aire","rait","eva","fair","rav","taie","vra","arri","arti","vrai","ari","vaie","erai","vez","trai","trav"],"rp":[]},"46":{"input":[2,3,4,6],"tlp":["dit",34652],"trp":["ice",6888],"tlw":["dit",17108],"lp":["dit","vec","ris","dev","vers","dir","cie","dire","cri","eci","serv","esti","sir","rci","vid","rise"],"rp":["ice","iste","ites","iers"]},"47":{"input":[1,2,3,4,6],"tlw":["avec",32748],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",206097],"trw":["ni",4413],"lp":[],"rp":["in","ni","hi","ini","nni","hin","inn","hn","nh","inni","nin","hni","inin","ih","hnn"]},"49":{"input":[1,5,6],"tlp":["ain",53875],"trp":["ha",60789],"tlw":["ah",2082],"trw":["hanna",151],"lp":["ain","ani","ah","aha","zain"],"rp":["ha","nai","iq","han","nnai","ina","hai","ian","inq","haq","niq","hain","nz","inai","nia"]},"50":{"input":[2,5,6],"tlp":["sin",6536],"trp":["ins",29943],"tlw":["siskin",137],"lp":["sin","sh","ssin","sins","shi","sini"],"rp":["ins","nsi","his","insi","nis","ji","isin","kin","inis","nk","nsis","ish","ij","nnis"]},"51":{"input":[1,2,5,6],"tlp":["ains",11321],"trp":["nais",6028],"tlw":["ainsi",3447],"trw":["jai",619],"lp":["ains","siq","sha","shan","ash","sain","anis","win","asin"],"rp":["nais","isan","isq","has","nsai","kah","kaha","hais","hass","jai","hasa"]},"52":{"input":[3,5,6],"tlp":["ein",12287],"trp":["he",90853],"tlw":["eh",1812],"trw":["hein",876],"lp":["ein","eni","eine","eh"],"rp":["he","ien","ine","nie","ienn","hie","nnie","hee","hen","hien","inee","nei","hei","hein","hine","hy"]},"53":{"input":[1,3,5,6],"tlp":["aien",30150],"trp":["hez",5597],"tlw":["ayez",139],"trw":["nez",1504],"lp":["aien","aine","enai","anie","enez","ayai","enia","zy"],"rp":["hez","nez","yai","yez","naie","nze","inze","heq","hae","hany","ixan","iane"]},"54":{"input":[2,3,5,6],"tlp":["endi",4399],"trp":["ndi",15037],"tlw":["sein",422],"trw":["indiens",185],"lp":["endi","din","sine","ensi","sien","deh","dien"],"rp":["ndi","hes","ind","iens","ines","ndis","iden","indi","nsie","ky","nsei","hesi","nsid"]},"55":{"input":[1,2,3,5,6],"tlw":["whisky",263],"trw":["jadis",260],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",37344],"trp":["int",28711],"tlw":["vin",885],"lp":["bi","tin","th","vin","vint","bit","bin","thi"],"rp":["int","nti","ib","nv","nvi","ntin","nit","ntit","niv","inv","init","invi"]},"57":{"input":[1,4,5,6],"tlp":["van",25237],"trp":["nait",11496],"tlw":["avant",8624],"trw":["navait",354],"lp":["van","vant","avan","fin","tain","aint","tiq","abi","bai","fini","atin","abit"],"rp":["nait","nfi","ntai","nfin","hab","habi","hant","ivan"]},"58":{"input":[2,4,5,6],"tlp":["ch",136528],"trp":["nch",8814],"tlw":["chic",138],"trw":["instinct",141],"lp":["ch","chi","cin","sib","ssib","stin","chin","tch"],"rp":["nch","inc","inst","nci","hist","ich","nic","nsci","isib","inci","nist","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["cinq",2262],"trw":["instant",2350],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",26666],"trp":["ient",38518],"tlw":["bien",22012],"trw":["hier",848],"lp":["ven","bie","bien","enti","rien","enir","vent","vien","rin","env","rni","even","veni","erni"],"rp":["ient","her","inte","nir","nier","hev"]},"61":{"input":[1,3,4,5,6],"tlw":["etaient",7356],"trw":["navire",568],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dernier",2102],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["devant",6605],"trw":["jardin",804],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",3036],"trw":["o",368],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1455],"trp":["oa",938],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",164552],"trp":["os",50157],"trw":["os",408],"lp":["so","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",820],"trp":["osa",3212],"lp":["wo","woo","asso","aso","aos","sao","wao","swo"],"rp":["osa","ow","owa","ossa","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",5380],"trp":["-e",12923],"trw":["-",5238],"lp":["e-","eo","ee-","e-o"],"rp":["-e","oe","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",8193],"trp":["-a",862],"lp":["a-","x-","xo","exo","ea-","axo","a-a"],"rp":["-a","-a-","ox","oxe"]},"70":{"input":[2,3,7],"tlp":["do",52067],"trp":["ose",20090],"tlw":["dos",2170],"trw":["ose",204],"lp":["do","s-","eso","dos","es-","deso","soe","d-","esso","doss"],"rp":["ose","od","-d","-de","ode","oses","osse","-des","-s","ood"]},"71":{"input":[1,2,3,7],"tlp":["a-d",1260],"trp":["owe",807],"trw":["owe",223],"lp":["a-d","da-","ado","as-","a-de","wood","sa-","x-s","x-se","dexo","s-a","s-a-","saxo"],"rp":["owe","-a-d","-w","-we","oad","odw","oodw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",128509],"trp":["ot",47901],"tlw":["tot",1188],"lp":["to","go","gt","tot","tto","gg","tog","gto","goo","got"],"rp":["ot","ott","og","oto","otto","otog"]},"73":{"input":[1,4,7],"tlp":["ag",49385],"trp":["of",7071],"trw":["ota",208],"lp":["ag","fo","ga","tag","gag","ffo","gat","aga","ato","tota","ago","afo","agg","atto","gato"],"rp":["of","off","ota","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",202727],"trp":["oc",21912],"tlw":["scott",175],"lp":["co","cot","sto","cco","gts","soc","gs","cos","cost","cto","sco","coo","tos","coc"],"rp":["oc","occ","ots","ost","oct","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",9331],"trp":["oca",927],"tlw":["costas",502],"lp":["sag","aco","acco","faco","ssag","gas","sfo","agas","cag","cof","coff","fos","foss","gac","gats","gatc"],"rp":["oca","occa","osta","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",122176],"trp":["or",127784],"tlw":["gorge",1040],"trw":["or",770],"lp":["ro","ge","t-","tro","gr","eg","reg","rg","t-e","ger","rge","eto"],"rp":["or","ort","orte","ore","otr","otre","ote","-t"]},"77":{"input":[1,3,4,7],"tlp":["age",30406],"trp":["orta",6654],"tlw":["fort",2164],"trw":["offert",256],"lp":["age","gar","ega","gra","egar","for","rega","arg","arge","a-t","a-t-","fort","fro","gea","rof","rag","tage","aro","rage"],"rp":["orta"]},"78":{"input":[2,3,4,7],"tlp":["cor",18700],"trp":["ors",18331],"tlw":["cote",5418],"trw":["orc",491],"lp":["cor","eco","cro","sor","core","sort","st-","est-","roc","t-c","t-ce","ges","st-c","dro","rso","erso"],"rp":["ors","ord","-c","-ce"]},"79":{"input":[1,2,3,4,7],"tlw":["regard",4785],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",485081],"trw":["un",105377],"lp":[],"rp":["ou","on","un","no","nou","onn","nu","non","uo","nnu","onnu","nno","nnon","ono","oon","onon","uu","uun","uon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",374405],"trp":["ua",32749],"tlw":["au",38456],"trw":["noua",61],"lp":["qu","au","qua","quan","quo","aqu","anqu","anno"],"rp":["ua","uan","onna","nqu","oq","oqu","oua","nua","uq","uqu","nqua","ona"]},"82":{"input":[2,5,7],"tlp":["su",105459],"trp":["us",202802],"tlw":["son",49965],"trw":["nous",27592],"lp":["su","son","sou","sonn","sous","ssu"],"rp":["us","ous","jo","ons","jou","nous","uss","ju","jus","uj","ujo","ujou","ouj","oujo"]},"83":{"input":[1,2,5,7],"tlp":["squ",20943],"trp":["usq",8393],"tlw":["sonna",267],"trw":["joanna",329],"lp":["squ","aus","auss","sau","ajo","ajou","auj","aujo","assu","asqu","squa"],"rp":["usq","usqu","jusq","ussa","onsa","usa","jau","jaun","joua"]},"84":{"input":[3,5,7],"tlp":["eu",220654],"trp":["ue",233945],"tlw":["eu",4099],"trw":["une",73318],"lp":["eu","enu","eun","eune","eno"],"rp":["ue","une","onne","oy","yeu","oue","oeu","oye","nue","neu","one","ueu","u-","n-","uy"]},"85":{"input":[1,3,5,7],"tlp":["que",190819],"trp":["ux",83482],"tlw":["que",98515],"trw":["yeux",10617],"lp":["que","eux","eau","aux","aque","eaux","equ","au-","eque","quen","eux-"],"rp":["ux","yeux","oya","nque","oque","oux","uque","ux-","noux"]},"86":{"input":[2,3,5,7],"tlp":["du",78771],"trp":["ond",27438],"tlw":["du",57769],"trw":["jeune",4462],"lp":["du","don","deu","seu","dou","donn","eus","euse","endu","essu"],"rp":["ond","ues","ud","use","onde","ndu","jeu","jeun","-j","-je"]},"87":{"input":[1,2,3,5,7],"tlw":["deux",15643],"trw":["judas",547],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tou",80480],"trp":["ut",149891],"tlw":["tout",29188],"trw":["ont",5688],"lp":["tou","tu","tout","bo","gn","gu","bou","bon","ton","bu"],"rp":["ut","out","ont","ng","ob","ong","ub","uto","ug","not"]},"89":{"input":[1,4,5,7],"tlp":["aut",41481],"trp":["uf",8214],"tlw":["fut",4720],"lp":["aut","ang","fu","fon","fau","agn","faut","fou","fut","auto","atu","quat","font"],"rp":["uf","uta","uff","uat","onta","ouf","ouff"]},"90":{"input":[2,4,5,7],"tlp":["con",57360],"trp":["uc",26771],"tlw":["sont",9987],"lp":["con","cou","cu","cont","sont","conn","tous","cons","touj","cun","bouc"],"rp":["uc","nco","onc","ouc","ust","just","ucu","ucun","uco"]},"91":{"input":[1,2,4,5,7],"tlw":["facon",2654],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["eur",78762],"trp":["ur",328352],"tlw":["toute",6285],"trw":["notre",4935],"lp":["eur","rou","ru","tour","eut","gen","trou","gne","eure","gue"],"rp":["ur","our","ure","ute","oute","utr","utre","nge","ontr","urn"]},"93":{"input":[1,3,4,5,7],"tlw":["autre",5877],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sur",51346],"trw":["jour",4530],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grand",4887],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",274962],"trw":["il",109781],"lp":[],"rp":["il","oi","ll","li","lo","io","ill","ol","loi","ili","oli","lli","oil","oll","llo","illi","olo","iol","ilo","lio"]},"97":{"input":[1,6,7],"tlp":["al",90167],"trp":["la",335135],"tlw":["alla",769],"trw":["la",216676],"lp":["al","all","alo","ail","aill","ali","alla","ala","allo","alai"],"rp":["la","lai","lla","llai","illa","ila","oila","ial","olla","ola"]},"98":{"input":[2,6,7],"tlp":["soi",15762],"trp":["ois",37730],"tlw":["sol",2016],"trw":["ils",17730],"lp":["soi","sio","sol","ssio","sil"],"rp":["ois","ls","ils","iso","lis","ossi","oisi","liss","osi","isio","los","isso","oiss","ok","ilis"]},"99":{"input":[1,2,6,7],"tlp":["aiso",9482],"trp":["lais",13196],"tlw":["siloa",232],"trw":["laissa",1173],"lp":["aiso","sal","sall","alis","salo","asio","ails","sali","sala","wil","wal","slow","will"],"rp":["lais","las","lass","lisa","low","osai","oisa"]},"100":{"input":[3,6,7],"tlp":["el",190433],"trp":["le",657856],"tlw":["elle",59054],"trw":["le",177879],"lp":["el","ell","elle","eil","ele","eill","elo","eli"],"rp":["le","lle","ille","lie","ile","ole","-i","-il","-el","-ell","i-","lei"]},"101":{"input":[1,3,6,7],"tlp":["ale",15620],"trp":["oix",8324],"tlw":["allez",1376],"trw":["lizzie",89],"lp":["ale","ela","alle","z-","ez-","alie","eal","eali","elai","ai-"],"rp":["oix","lez","-la","la-","laie","llez","lex","lea","iale","lez-"]},"102":{"input":[2,3,6,7],"tlp":["doi",7114],"trp":["les",154394],"tlw":["elles",3562],"trw":["les",123647],"lp":["doi","sel","sile","esoi","sole","del","dis-","els","dois","ssel","dol"],"rp":["les","lles","is-","oid","lise","oise","iles","ld","less"]},"103":{"input":[1,2,3,6,7],"tlw":["salle",2270],"trw":["laisse",2177],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",127497],"trp":["ig",30369],"tlw":["toi",4595],"trw":["lit",2373],"lp":["vo","voi","tio","gi","toi","gl","vot","vil","vol","vill","voit"],"rp":["ig","oit","lit","oig","liv","lt","lig","itio","lot"]},"105":{"input":[1,4,6,7],"tlp":["avo",15975],"trp":["lait",13889],"tlw":["voila",2492],"trw":["livia",632],"lp":["avo","foi","atio","avoi","fil","fl","tal","fill","agi","val","vail","tail","fal","fall","fla","gal"],"rp":["lait","lat","lag","iga"]},"106":{"input":[2,4,6,7],"tlp":["cl",21798],"trp":["lic",7092],"tlw":["soit",3898],"trw":["kotko",169],"lp":["cl","col","ctio","sig","cil","stio","soit","stoi","vois","coi","coll","cli","glis","vos"],"rp":["lic","isto","olic","igts","osit","loc"]},"107":{"input":[1,2,4,6,7],"tlw":["fois",9209],"trw":["lac",564],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["roi",25378],"trp":["oir",45550],"tlw":["votre",6708],"trw":["livre",1128],"lp":["roi","voir","rl","t-i","t-il","tel","rle","troi","roit","votr"],"rp":["oir","ler","lor","lev","it-","oire","let","it-i","lier","ller"]},"109":{"input":[1,3,4,6,7],"tlw":["voix",6714],"trw":["leva",2445],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["trois",5530],"trw":["levres",1891],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["alors",9986],"trw":["laisser",1893],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",198698],"trw":["lui",41038],"lp":[],"rp":["ui","lu","ul","ion","lui","ho","oin","lon","oul","uoi","uil","oui","hu","inu","noi","hon","uill","nui","lou","uni"]},"113":{"input":[1,5,6,7],"tlp":["qui",72449],"trp":["lan",19838],"tlw":["qui",60034],"trw":["hall",554],"lp":["qui","quoi","quil","aul"],"rp":["lan","iqu","lq","lqu","hau","ula","oula","ulai","liq","liqu","nal","uai","haqu","laq","laqu","niqu"]},"114":{"input":[2,5,6,7],"tlp":["sui",21452],"trp":["lus",40230],"tlw":["suis",11506],"trw":["john",694],"lp":["sui","suis","sion","soin"],"rp":["lus","uis","ussi","ison","hos","ions","oins","usi","onsi","uiss","uk","luk","lusi","lons","joi","nsui"]},"115":{"input":[1,2,5,6,7],"tlw":["aussi",11177],"trw":["ouais",603],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eul",11197],"trp":["leu",32420],"tlw":["euh",642],"trw":["lieu",1585],"lp":["eul","eule","elu","elui","eui","euil"],"rp":["leu","uel","ieu","ule","len","heu","oule","uell","lieu","lleu","ilen","nel","lein","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["quelque",6947],"trw":["laquelle",1557],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seul",3625],"trw":["luke",3101],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quelques",6336],"trw":["la-dedans",355],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["vou",60021],"trp":["uv",57671],"tlw":["vu",3991],"trw":["nuit",3923],"lp":["vou","bl","tion","vu","voul","von","gin"],"rp":["uv","ouv","uit","ign","long","itu","ibl","nouv","ing","oint","lut","uiv","ubl"]},"121":{"input":[1,4,5,6,7],"tlw":["voulait",2213],"trw":["haut",2023],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["vous",46221],"trw":["longs",581],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["avons",2442],"trw":["lanca",1051],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trouve",3189],"trw":["leur",13514],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["veux",4192],"trw":["nouveau",4416],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["chose",7901],"trw":["leurs",6620],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["chaque",3120],"trw":["lorsque",2306],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",26335],"trw":["p",553],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",48180],"trp":["pa",224861],"tlw":["ap",72],"trw":["papa",974],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",20685],"trp":["ps",18522],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4429],"trp":["pas",100009],"tlw":["saps",129],"trw":["pas",84383],"lp":["spa","asp","sap","aps","sapp","saps"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",48775],"trp":["pe",136807],"tlw":["epee",266],"trw":["'",318],"lp":["ep","epe","epee","e'"],"rp":["pe","'e","ppe","'ep","pee","ppee","pep","pepe","p'","'epe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",8854],"trp":["'a",123917],"trw":["pape",116],"lp":["epa","appe","xp","exp","ape","xpe","expe","apea"],"rp":["'a","'ap","'app","'ex","'ea","pea","'exp","'epa","'ape","'exa","'exe","pape"]},"134":{"input":[2,3,8],"tlp":["d'",72817],"trp":["'es",50133],"tlw":["epees",70],"trw":["pdd",99],"lp":["d'","s'","s'e","d'e","esp","dep","spe","s'es","espe","sep","sesp","depe","d'es","eps"],"rp":["'es","'esp","pes","'ess","ped","pese"]},"135":{"input":[1,2,3,8],"tlp":["d'a",18719],"trp":["'as",4949],"tlw":["depasse",270],"trw":["passe",4560],"lp":["d'a","s'a","s'ap","depa","epas","s'as","d'ap","d'ea","espa","s'ex","sepa","aspe","s'ad","d'ad","d'ex","xped"],"rp":["'as","'ass","'ad","pesa"]},"136":{"input":[4,8],"trp":["pt",10944],"trw":["pt",1183],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",1491],"trp":["pat",3801],"tlw":["tapa",68],"lp":["tap","apt","tapa"],"rp":["pat","patt","pta","pf"]},"138":{"input":[2,4,8],"trp":["pc",625],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",4228],"trp":["pac",1260],"tlw":["cap",326],"lp":["cap","capa","spac","apac","apc","capt"],"rp":["pac","pats","past"]},"140":{"input":[3,4,8],"tlp":["rep",21795],"trp":["pr",118408],"tlw":["repete",469],"trw":["pere",4207],"lp":["rep","epr","rp","repr","ept","t'","epre","rpr","repe"],"rp":["pr","pre","per","'et","pet","pere","pte","ppr","'etr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",9449],"trp":["par",86969],"tlw":["frappe",557],"trw":["par",27661],"lp":["apr","apre","rap","rapp","appr","epar","repa","t'a","aper"],"rp":["par","'eta","part","'ar","pare","para","ppar","'arr","parf","'at","'att"]},"142":{"input":[2,3,4,8],"tlp":["c'",37695],"trp":["'est",44521],"tlw":["c'est",27418],"trw":["pres",4017],"lp":["c'","c'e","c'es","c'et","s'et","spec","cep","rps","d'et","resp","cept","spr"],"rp":["'est","pres","pers","pec","prec","perd","'ec","pect"]},"143":{"input":[1,2,3,4,8],"tlw":["apres",7671],"trw":["parce",4758],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",78967],"trw":["m",2037],"lp":[],"rp":["mm","mp","nm","mn","pn","np"]},"145":{"input":[1,5,8],"tlp":["am",51798],"trp":["ma",187703],"trw":["ma",11423],"lp":["am","ama","amp","aman","amm","ampa","anm","anap"],"rp":["ma","man","mpa","mma","pan","mam","mama","manq","mman","paq","nap","pann"]},"146":{"input":[2,5,8],"tlp":["sm",1338],"trp":["mps",12697],"trw":["ms",179],"lp":["sm"],"rp":["mps","nsp","ms","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",1341],"trp":["jam",12043],"tlw":["sam",363],"trw":["pans",80],"lp":["sam","amas","samm","ansp","asm","amps","ansm","span","sma"],"rp":["jam","jama","mas","mass","masq","maj","mpas","mw","njam","mans","nsma"]},"148":{"input":[3,5,8],"tlp":["em",168013],"trp":["me",306012],"tlw":["emmene",192],"trw":["me",28601],"lp":["em","eme","emen","emp","emm","emme"],"rp":["me","men","mme","n'","mem","pen","'en","meme","n'e","mmen","m'","'y","mpe","n'y"]},"149":{"input":[1,3,5,8],"tlp":["ema",18574],"trp":["n'a",19043],"tlw":["ame",424],"trw":["m'a",4088],"lp":["ema","eman","ame","amme","amen","xem","exem","xemp","ampe","xam","exam"],"rp":["n'a","m'a","pay","'an","'am","mena","paye","'ann","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",20176],"trp":["j'",30702],"tlw":["s'en",2720],"trw":["mes",6170],"lp":["dem","sem","emps","s'en","deme","d'en","seme","ssem","emes"],"rp":["j'","mes","pens","mmes","n'es","pend","j'e","med","j'en","mess","ndem"]},"151":{"input":[1,2,3,5,8],"tlw":["demande",3741],"trw":["pays",1471],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",463],"trp":["mb",31529],"lp":["tm","bm","ttm"],"rp":["mb","mpt","mt"]},"153":{"input":[1,4,5,8],"tlp":["amb",5301],"trp":["mat",6196],"tlw":["amant",146],"trw":["mat",200],"lp":["amb","fam","apab","tam","tamm","atm","amat","bap","bapt"],"rp":["mat","pab","mba","mant","mbat","pant","mpat","mpta","matt","mab","mban"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",1559],"trp":["mc",93],"tlw":["cm",1559],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",691],"trw":["passant",523],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",29998],"trp":["ment",81650],"tlw":["type",1817],"trw":["mere",4432],"lp":["rm","tem","rem","rme","temp","teme","emb","erm","reme"],"rp":["ment","mer","pren","met","mbr","mbre","mpr","prem","n'et","mpre","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["femme",6271],"trw":["payer",631],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["temps",9524],"trw":["n'est",6536],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["femmes",2197],"trw":["pendant",4274],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",30694],"lp":[],"rp":["pi","ip","ipp","ipi","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",6237],"trp":["pai",4095],"trw":["pizza",69],"lp":["api","apai"],"rp":["pai","papi","ipa","pia","ppai","piz","pizz","ippa","piaz"]},"162":{"input":[2,6,8],"tlp":["spi",1730],"trp":["isp",3645],"trw":["pis",282],"lp":["spi"],"rp":["isp","pis"]},"163":{"input":[1,2,6,8],"tlp":["apis",563],"trp":["ispa",2356],"trw":["passai",91],"lp":["apis","spai"],"rp":["ispa","pais"]},"164":{"input":[3,6,8],"tlp":["epi",615],"trp":["'i",49129],"trw":["pipe",239],"lp":["epi"],"rp":["'i","pie","pei","ipe","ippe","pipe","ie'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1594],"trp":["'ai",30601],"trw":["paix",638],"lp":["apie","epai"],"rp":["'ai","'exi","paix","'aie","paie"]},"166":{"input":[2,3,6,8],"tlp":["s'i",6660],"trp":["pied",4225],"tlw":["d'idees",66],"trw":["pieds",2197],"lp":["s'i","disp","d'i","espi","depi","d'id","epis","dip"],"rp":["pied","pid","pide","'id","'ide","ispe","ipes","pedi","'k","'ke","'kee","pidi"]},"167":{"input":[1,2,3,6,8],"tlw":["epais",338],"trw":["peake",83],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",158],"trp":["pit",5509],"trw":["pitt",410],"lp":["tip"],"rp":["pit","pti","ipit","pitt","piti","ipt","ipti","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",2174],"trp":["pita",2057],"tlw":["tapait",66],"lp":["apit","tapi","vap","apti"],"rp":["pita","pati","pait","pav","ptai","pavi","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",2146],"trp":["pist",956],"trw":["pic",121],"lp":["cip","cipi","scip"],"rp":["pist","icip","pic","pisc","pick","ptis"]},"171":{"input":[1,2,4,6,8],"tlw":["tapis",563],"trw":["passait",777],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epri",3352],"trp":["pri",24618],"tlw":["reprit",1215],"trw":["petit",6366],"lp":["epri","rpri","epti","rip","epit"],"rp":["pri","peti","prit","pier","pir","peri","pire","prie","prev","ppri","pitr","priv","'ev","pite","'evi"]},"173":{"input":[1,3,4,6,8],"tlw":["t'ai",504],"trw":["partie",2466],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["esprit",982],"trw":["pris",3067],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["c'etait",9128],"trw":["paris",1112],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",66310],"trw":["pin",80],"lp":[],"rp":["mi","im","min","imp","ph","imm","phi","nim","pin","imi","mpi","mmi","mini","hm","minn","imin","inim","pini","nip","mih"]},"177":{"input":[1,5,6,8],"tlp":["ami",10224],"trp":["mai",88086],"tlw":["ami",1414],"trw":["main",8212],"lp":["ami","amai","aim","amin","anim","aima"],"rp":["mai","main","ima","ham","hap","mani","iam","hamp","mina","nima","pain","hapi","happ","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",4174],"trp":["mis",9740],"trw":["mis",1921],"lp":["sim","simp","sph","smi","ssim","snip"],"rp":["mis","jim","miss","insp","mmis","mik","mins","nspi","ism","nism","jimm","pins","ijim","misi"]},"179":{"input":[1,2,5,6,8],"tlw":["amis",1180],"trw":["mais",42478],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",15514],"trp":["mie",15315],"tlw":["ennemi",205],"trw":["peine",2455],"lp":["emi","emie","emin","eph"],"rp":["mie","ime","'h","imen","'in","hem","'im","mine","hemi","pein","'imp","iem","ieme","mei","imme","'he"]},"181":{"input":[1,3,5,6,8],"tlw":["aime",856],"trw":["n'ai",2898],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["demi",438],"trw":["mise",705],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["semaine",1154],"trw":["j'ai",15346],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",5445],"trp":["mit",5727],"tlw":["tim",73],"trw":["mit",2329],"lp":["tim","thm","timi","bim","timb"],"rp":["mit","ntim","mbi","imb","imit","mpit","ptib","mbin","miti","mith","itim","mv","mvi"]},"185":{"input":[1,4,5,6,8],"tlw":["faim",558],"trw":["matin",2422],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",155],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["champ",458],"trw":["massif",152],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["termine",610],"trw":["premiere",3206],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["vraiment",3840],"trw":["n'etait",4972],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["chemin",1720],"trw":["merci",1888],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["chambre",2756],"trw":["j'avais",3059],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",155941],"trw":["pop",58],"lp":[],"rp":["po","op","ppo","opo","opp","pop","oppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",2216],"trp":["opa",340],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",3643],"trp":["pos",17016],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","ppos","osop","osp","pso"]},"195":{"input":[1,2,7,8],"trp":["posa",2884],"trw":["posa",1155],"lp":[],"rp":["posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",13316],"trp":["'o",22659],"lp":["epo"],"rp":["'o","'oe","ope","oppe","'epo","-p","poe","-pe","o'","'op","'ope","-po"]},"197":{"input":[1,3,7,8],"tlp":["xpo",114],"trp":["-pa",135],"lp":["xpo","expo"],"rp":["-pa","'a-"]},"198":{"input":[2,3,7,8],"tlp":["d'o",3873],"trp":["pose",6350],"tlw":["depose",222],"trw":["pose",1409],"lp":["d'o","espo","epos","d'oe","s'o","depo","d-p","d-pe","epso","dop","d'os"],"rp":["pose","'od","'ode","'os","-sep","osep","poes","ps-","'ose"]},"199":{"input":[1,2,3,7,8],"tlw":["deposa",185],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1434],"trp":["pot",1385],"tlw":["top",89],"trw":["pot",240],"lp":["top"],"rp":["pot","pto","opt"]},"201":{"input":[1,4,7,8],"tlp":["apot",365],"trp":["pag",5377],"tlw":["tapota",134],"lp":["apot","tapo"],"rp":["pag","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",842],"trp":["poc",1602],"tlw":["stop",73],"trw":["pots",103],"lp":["cop","copt","stop"],"rp":["poc","post","pco","pots"]},"203":{"input":[1,2,4,7,8],"tlw":["capot",86],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11883],"trp":["pro",26938],"tlw":["trop",6088],"trw":["porte",7561],"lp":["rop","repo","trop","ropr","ropo","epro"],"rp":["pro","por","port","prop","orp","opr","'or","ppor","opre","ppro","prot","-top","'ore","prog"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",803],"trw":["page",1683],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corps",3633],"trw":["propos",951],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["d'accord",1426],"trw":["passage",1091],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",114832],"trw":["mon",15902],"lp":[],"rp":["om","mo","pou","omm","mon","pu","up","omp","oup","um","mu","pon","nom","mou","mpo","mom","upp","mun","uppo","mmu"]},"209":{"input":[1,5,7,8],"tlp":["amo",2232],"trp":["pau",6517],"trw":["mona",153],"lp":["amo","amou","aup","aum","appu","amu","aupa","anmo"],"rp":["pau","oma","mau","ompa","upa","uma","omma","poq","poqu","oman","oupa","paqu"]},"210":{"input":[2,5,7,8],"tlp":["som",5403],"trp":["pous",4373],"trw":["noms",472],"lp":["som","somm","sup","soup","supp","spon","susp"],"rp":["pous","mons","mus","pons","mpos","ups","oups","mos","oms","noms","usp","mous","jup"]},"211":{"input":[1,2,5,7,8],"trw":["poussa",827],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epon",8146],"trp":["u'",72122],"tlw":["emu",95],"trw":["peu",10328],"lp":["epon","epu"],"rp":["u'","omme","'u","'un","peu","u'e","'une","'on","ome","u'u","u'un","ume","upe","-m","omen","u'o","u'on","mome"]},"213":{"input":[1,3,5,7,8],"tlw":["qu'on",6252],"trw":["peux",3366],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",18560],"trw":["monde",5892],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["d'eau",1024],"trw":["jusqu'a",4050],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8498],"trp":["omb",12802],"tlw":["tom",1064],"trw":["mot",1938],"lp":["tom","tomb","ttom","tup","tum","tmo"],"rp":["omb","mont","mot","ompt","nomb","put","pub","mbo","mob","pont","mmob","mout","omt","mpto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomba",500],"trw":["monta",334],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["coup",5443],"trw":["mots",1844],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["combat",528],"trw":["poussant",233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tomber",1545],"trw":["pour",54806],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forme",1597],"trw":["pourtant",2127],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comme",26616],"trw":["personne",4398],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["qu'est-ce",3758],"trw":["presque",3280],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",81861],"trw":["poil",237],"lp":[],"rp":["pl","poi","pli","pol","poli","plo","lip","ilip","lop","lopp","opi","pil","lipp","lp","ppl","ipl","poil","ppli","ploi","pilo"]},"225":{"input":[1,6,7,8],"tlp":["alp",231],"trp":["pla",16627],"trw":["plaza",92],"lp":["alp","alop","apil","apol","appl"],"rp":["pla","plai","pal","ipal","pala","opai","lpa","pali","pail","lap","lapi","plaz","plia","opla"]},"226":{"input":[2,6,7,8],"tlp":["spoi",1196],"trp":["posi",1139],"trw":["poils",186],"lp":["spoi","spl"],"rp":["posi","ispo","pois","plis","plos","piso","pok"]},"227":{"input":[1,2,6,7,8],"trw":["palais",478],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elep",2381],"trp":["l'",88780],"trw":["l'oeil",749],"lp":["elep","epl","elop"],"rp":["l'","'il","l'e","'el","'ell","ple","l'o","l'i","pel","ppel","plei","pele","lep","pell","'oei","l'ep","l'oe"]},"229":{"input":[1,3,6,7,8],"tlw":["appele",632],"trw":["l'a",2169],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'il",4703],"trw":["l'idee",964],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["s'appelle",386],"trw":["l'aide",479],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipl",158],"trp":["ptio",1479],"lp":["tipl"],"rp":["ptio","poig","poit","opit","ptoi","pig","pivo","plit","ltip","lpt","lpit","pito","pilt","plot"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",145],"trw":["plait",891],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",85],"trw":["posait",183],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["reprit-il",188],"trw":["l'oreille",587],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["appeler",517],"trw":["l'air",3916],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["desespoir",393],"trw":["police",1783],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["d'avoir",1685],"trw":["place",3372],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["plu",43647],"trw":["moi",12680],"lp":[],"rp":["plu","moi","pui","hom","homm","mpl","mil","moin","mill","poin","lum","impo","pho","impl","minu","umi","hum","upi","ompl","mili"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",319],"trw":["mal",4543],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",341],"trw":["plus",37565],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["salim",412],"trw":["maison",4491],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["homme",5277],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["qu'il",23610],"trw":["mieux",3375],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["depuis",5560],"trw":["hommes",4084],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["qu'ils",4873],"trw":["musique",825],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bulpitt",89],"trw":["point",3139],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",348],"trw":["pouvait",3877],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["commis",274],"trw":["jimbo",666],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["thomas",448],"trw":["mauvais",894],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["telephone",2027],"trw":["lumiere",2031],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["famille",1962],"trw":["pourquoi",6282],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["repondit",2783],"trw":["longtemps",2380],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["semblait",1934],"trw":["larmes",1018],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlw":["a",186860],"lp":[],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",130131],"tlw":["s",189],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",154012],"tlw":["sa",35710],"lp":["as","sa","ass","ssa","assa","wa","asa","sas","ssas","sass","aw","was","sw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",43082],"tlw":["e",648],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",45510],"tlw":["x",164],"lp":["ea","ex","xe","xa","exa","exe","ae","ax","xee"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",647732],"tlw":["de",329573],"lp":["es","de","se","des","sse","ses","ess","ed","esse","ds","ese","ees","dess","see","dee","ede","sses","eds","ssee","dese"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",113149],"tlw":["sexe",325],"lp":["da","asse","ad","essa","ade","ada","sea","dea","eda","ase","we","deda","das","sex","ew","ades","esa","ssea","adea","dex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",56643],"tlw":["t",179],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",168893],"tlw":["ta",2612],"lp":["ta","fa","at","ff","att","af","tat","tta","aff","ffa","affa","ata","atta","fat","tf","ttf","ft","fata","tata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",141218],"tlw":["c",294],"lp":["st","ts","ct","sc","cc","cs","tc","cts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",78160],"tlw":["ca",22002],"lp":["ca","ac","sta","fac","act","acc","cas","sac","tac","cat","tas","sat","ats","ast","aca","sca","cac","cca","fs","sf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",583533],"tlw":["et",174550],"lp":["re","et","er","te","tr","tre","rt","ere","rr","ete","ter","tte","etr","ett","rte","ret","etre","ette","err","rre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",199557],"tlw":["frere",1316],"lp":["ar","ra","eta","fe","tra","art","fr","arr","era","ef","rta","fer","are","atte","ara","ate","rra","fra","ref","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",214983],"tlw":["ce",47447],"lp":["ce","ec","est","res","rs","rd","dr","ser","rc","tes","cr","ers","dre","ste","ces","tres","cet","der","cett","rec"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",29774],"tlw":["tard",3213],"lp":["ard","ace","arc","car","ras","sera","arde","rac","rda","arda","dra","arce","cra","tard","face","esta","rsa","xc","exc","acte"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",57349],"trw":["n",242],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",332256],"trp":["na",60823],"tlw":["anna",1043],"trw":["na",258],"lp":["an","ann","aq","anq","anna","ana","anan"],"rp":["na","nna","nan","nq","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",130],"trp":["ns",191473],"trw":["j",225],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["ans",94605],"trp":["ja",25027],"tlw":["sans",15580],"trw":["jan",70],"lp":["ans","san","sq","sans","ssan","aj","asq","ansa","wn","wan"],"rp":["ja","nsa","jan","nsan","nas","jas","nja","nw","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",547626],"trp":["ne",292024],"tlw":["en",90753],"trw":["ne",63131],"lp":["en","ene","enn","enne","ey","enny","eye"],"rp":["ne","nne","ye","nee","ny","nnee","nny","nen","yen","nnen","yn","yne","ney"]},"21":{"input":[1,3,5],"tlp":["ena",18722],"trp":["ya",10697],"tlw":["annee",430],"trw":["nanny",98],"lp":["ena","ay","enan","anne","ane","eq","ean","aye","aya","ayan","any","xan","anny","enq","exan"],"rp":["ya","yan","nea","nnea","nean"]},"22":{"input":[2,3,5],"tlp":["end",46705],"trp":["nd",127339],"tlw":["sens",2477],"trw":["je",94389],"lp":["end","ens","sen","ense","ej","den","dej","esen","sens","ends","ende"],"rp":["nd","je","nde","nse","nes","nds","ys","nees","ndes"]},"23":{"input":[1,2,3,5],"tlp":["dan",83378],"trp":["nda",18852],"tlw":["dans",69810],"trw":["jean",744],"lp":["dan","dans","and","ande","enda","anda","eja","deja","esq","say","ssay","ensa","ands","ays","saye","saya"],"rp":["nda","ndan","jea","jean"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",863],"trp":["nt",395069],"tlw":["b",429],"lp":["bb","bt","tn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",99116],"trp":["nf",14856],"tlw":["tant",2815],"lp":["ant","ab","ba","tan","tant","tab","fan","bat","fant","ban","anta","batt","aba","bab"],"rp":["nf","nta","nant","nfa","nfan","nat"]},"26":{"input":[2,4,5],"tlp":["bs",4870],"trp":["nc",84806],"lp":["bs","bj","bsc","bst","sb"],"rp":["nc","nts","nst","nsc","ncs","nct"]},"27":{"input":[1,2,4,5],"tlp":["anc",29956],"trp":["nca",8089],"tlw":["bas",1760],"lp":["anc","sant","stan","bas","ants","can","anca","tanc","sanc","abs","sab","cab","bass","ancs","cq","acq"],"rp":["nca","nsta","jac","ntac"]},"28":{"input":[3,4,5],"tlp":["ent",205997],"trp":["nte",52433],"tlw":["entre",6016],"lp":["ent","ten","ren","be","br","rn","ente","entr","bre","rent","ern","rne","tent","tten"],"rp":["nte","ntr","ntre","ner","nten","nter"]},"29":{"input":[1,3,4,5],"tlp":["ran",32995],"trp":["ntra",4859],"tlw":["enfant",1479],"lp":["ran","rq","enf","tena","ante","bra","rna","bea","enta","rant","tran","enfa","rtan","fran","arq","bar","arb","fen","rena"],"rp":["ntra"]},"30":{"input":[2,3,4,5],"tlp":["enc",33290],"trp":["nce",37449],"tlw":["cent",1511],"trw":["jeter",658],"lp":["enc","endr","tend","ence","rend","sent","cen","ents","cent","bes","dern","dent","scen","renc","deb"],"rp":["nce","ndr","ndre","jet","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["bras",4531],"trw":["jeta",1297],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",352],"trw":["ii",352],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",540051],"trp":["ia",19364],"tlw":["ai",3119],"lp":["ai","za","zi","zai","az","zz","azi","zzi","aza","zza","ziz","aziz","ziza"],"rp":["ia","iz","iza","iai","izai","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",117702],"trp":["is",301576],"tlw":["si",24030],"trw":["k",204],"lp":["si","ssi","sis","ssis","sk","ski","sisk"],"rp":["is","iss","isi","ki","ik","issi","ks","isk","kk","isis","kis","iski","kiss"]},"35":{"input":[1,2,6],"tlp":["ais",132120],"trp":["isa",17988],"tlw":["sais",5940],"lp":["ais","sai","aiss","sais","ssai","assi","aisa","aisi","asi","wi","ak","sia","sias"],"rp":["isa","issa","isai","ka","ias","kw","iais"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",36481],"trp":["ie",241794],"lp":["ei"],"rp":["ie","iei","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",35534],"trp":["ix",16144],"tlw":["aie",130],"lp":["ez","aie","xi","ze","exi","xie","eai","aix","axi","zie","eiz","eize","eze","eez","xai"],"rp":["ix","iez","ixe","ixa","ize"]},"38":{"input":[2,3,6],"tlp":["di",97853],"trp":["id",28086],"tlw":["dis",1668],"trw":["idee",1596],"lp":["di","dis","sie","die","essi","esi","sei","edi","ssie"],"rp":["id","ide","ise","isse","ke","ied","ies","idee","idi","ieds","ises"]},"39":{"input":[1,2,3,6],"tlp":["dai",9749],"trp":["ida",1007],"tlw":["assez",2893],"lp":["dai","sez","aise","ssez","aid","dix","saie","dia","aide","disa","adi","xis","exis","six","dez","edia","adie","daie"],"rp":["ida","idea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",116014],"trp":["it",399129],"tlw":["vit",2136],"lp":["ti","vi","tit","vit","viv","tiv","tti","ttit","vivi","tivi","titi"],"rp":["it","iv","iti","ivi","itt","ivit","itiv","itti"]},"41":{"input":[1,4,6],"tlp":["ait",223936],"trp":["if",12313],"tlw":["avait",34178],"trw":["if",198],"lp":["ait","av","va","tai","vai","ava","avai","tait","vait","fai","fi","ati","fait","fit","ffi","avi"],"rp":["if","ita","iva","iff"]},"42":{"input":[2,4,6],"tlp":["ci",50221],"trp":["ic",35688],"tlw":["vis",479],"trw":["ici",5070],"lp":["ci","vis","sit","sti","cti","ck","visi","vic","cit","ssit","tis","tic","sci","cis"],"rp":["ic","ist","ici","its","isit","ict"]},"43":{"input":[1,2,4,6],"tlp":["sait",14527],"trp":["ica",3062],"tlw":["vais",3612],"lp":["sait","vais","sav","fais","visa","tais","fic","cai","sava","ffic","aci","sati","vas","fici","cia","acti","stai","ack"],"rp":["ica","ista"]},"44":{"input":[3,4,6],"tlp":["ve",170346],"trp":["ir",150486],"tlw":["vie",6638],"lp":["ve","ri","ev","ver","rie","vr","vie","rit","eve","rri","eti","rti","eri","tie"],"rp":["ir","ire","ier","ite","iere","ive"]},"45":{"input":[1,3,4,6],"tlp":["etai",66155],"tlw":["etait",29101],"lp":["etai","rai","ave","air","aire","rait","eva","fair","rav","taie","vra","arri","arti","vrai","ari","vaie","erai","vez","trai","trav"],"rp":[]},"46":{"input":[2,3,4,6],"tlp":["dit",34652],"trp":["ice",6888],"tlw":["dit",17108],"lp":["dit","vec","ris","dev","vers","dir","cie","dire","cri","eci","serv","esti","sir","rci","vid","rise"],"rp":["ice","iste","ites","iers"]},"47":{"input":[1,2,3,4,6],"tlw":["avec",32748],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",206097],"trw":["ni",4413],"lp":[],"rp":["in","ni","hi","ini","nni","hin","inn","hn","nh","inni","nin","hni","inin","ih","hnn"]},"49":{"input":[1,5,6],"tlp":["ain",53875],"trp":["ha",60789],"tlw":["ah",2082],"trw":["hanna",151],"lp":["ain","ani","ah","aha","zain"],"rp":["ha","nai","iq","han","nnai","ina","hai","ian","inq","haq","niq","hain","nz","inai","nia"]},"50":{"input":[2,5,6],"tlp":["sin",6536],"trp":["ins",29943],"tlw":["siskin",137],"lp":["sin","sh","ssin","sins","shi","sini"],"rp":["ins","nsi","his","insi","nis","ji","isin","kin","inis","nk","nsis","ish","ij","nnis"]},"51":{"input":[1,2,5,6],"tlp":["ains",11321],"trp":["nais",6028],"tlw":["ainsi",3447],"trw":["jai",619],"lp":["ains","siq","sha","shan","ash","sain","anis","win","asin"],"rp":["nais","isan","isq","has","nsai","kah","kaha","hais","hass","jai","hasa"]},"52":{"input":[3,5,6],"tlp":["ein",12287],"trp":["he",90853],"tlw":["eh",1812],"trw":["hein",876],"lp":["ein","eni","eine","eh"],"rp":["he","ien","ine","nie","ienn","hie","nnie","hee","hen","hien","inee","nei","hei","hein","hine","hy"]},"53":{"input":[1,3,5,6],"tlp":["aien",30150],"trp":["hez",5597],"tlw":["ayez",139],"trw":["nez",1504],"lp":["aien","aine","enai","anie","enez","ayai","enia","zy"],"rp":["hez","nez","yai","yez","naie","nze","inze","heq","hae","hany","ixan","iane"]},"54":{"input":[2,3,5,6],"tlp":["endi",4399],"trp":["ndi",15037],"tlw":["sein",422],"trw":["indiens",185],"lp":["endi","din","sine","ensi","sien","deh","dien"],"rp":["ndi","hes","ind","iens","ines","ndis","iden","indi","nsie","ky","nsei","hesi","nsid"]},"55":{"input":[1,2,3,5,6],"tlw":["whisky",263],"trw":["jadis",260],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",37344],"trp":["int",28711],"tlw":["vin",885],"lp":["bi","tin","th","vin","vint","bit","bin","thi"],"rp":["int","nti","ib","nv","nvi","ntin","nit","ntit","niv","inv","init","invi"]},"57":{"input":[1,4,5,6],"tlp":["van",25237],"trp":["nait",11496],"tlw":["avant",8624],"trw":["navait",354],"lp":["van","vant","avan","fin","tain","aint","tiq","abi","bai","fini","atin","abit"],"rp":["nait","nfi","ntai","nfin","hab","habi","hant","ivan"]},"58":{"input":[2,4,5,6],"tlp":["ch",136528],"trp":["nch",8814],"tlw":["chic",138],"trw":["instinct",141],"lp":["ch","chi","cin","sib","ssib","stin","chin","tch"],"rp":["nch","inc","inst","nci","hist","ich","nic","nsci","isib","inci","nist","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["cinq",2262],"trw":["instant",2350],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",26666],"trp":["ient",38518],"tlw":["bien",22012],"trw":["hier",848],"lp":["ven","bie","bien","enti","rien","enir","vent","vien","rin","env","rni","even","veni","erni"],"rp":["ient","her","inte","nir","nier","hev"]},"61":{"input":[1,3,4,5,6],"tlw":["etaient",7356],"trw":["navire",568],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dernier",2102],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["devant",6605],"trw":["jardin",804],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",3036],"trw":["o",368],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1455],"trp":["oa",938],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",164552],"trp":["os",50157],"trw":["os",408],"lp":["so","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",820],"trp":["osa",3212],"lp":["wo","woo","asso","aso","aos","sao","wao","swo"],"rp":["osa","ow","owa","ossa","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",5380],"trp":["-e",12923],"trw":["-",5238],"lp":["e-","eo","ee-","e-o"],"rp":["-e","oe","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",8193],"trp":["-a",862],"lp":["a-","x-","xo","exo","ea-","axo","a-a"],"rp":["-a","-a-","ox","oxe"]},"70":{"input":[2,3,7],"tlp":["do",52067],"trp":["ose",20090],"tlw":["dos",2170],"trw":["ose",204],"lp":["do","s-","eso","dos","es-","deso","soe","d-","esso","doss"],"rp":["ose","od","-d","-de","ode","oses","osse","-des","-s","ood"]},"71":{"input":[1,2,3,7],"tlp":["a-d",1260],"trp":["owe",807],"trw":["owe",223],"lp":["a-d","da-","ado","as-","a-de","wood","sa-","x-s","x-se","dexo","s-a","s-a-","saxo"],"rp":["owe","-a-d","-w","-we","oad","odw","oodw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",128509],"trp":["ot",47901],"tlw":["tot",1188],"lp":["to","go","gt","tot","tto","gg","tog","gto","goo","got"],"rp":["ot","ott","og","oto","otto","otog"]},"73":{"input":[1,4,7],"tlp":["ag",49385],"trp":["of",7071],"trw":["ota",208],"lp":["ag","fo","ga","tag","gag","ffo","gat","aga","ato","tota","ago","afo","agg","atto","gato"],"rp":["of","off","ota","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",202727],"trp":["oc",21912],"tlw":["scott",175],"lp":["co","cot","sto","cco","gts","soc","gs","cos","cost","cto","sco","coo","tos","coc"],"rp":["oc","occ","ots","ost","oct","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",9331],"trp":["oca",927],"tlw":["costas",502],"lp":["sag","aco","acco","faco","ssag","gas","sfo","agas","cag","cof","coff","fos","foss","gac","gats","gatc"],"rp":["oca","occa","osta","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",122176],"trp":["or",127784],"tlw":["gorge",1040],"trw":["or",770],"lp":["ro","ge","t-","tro","gr","eg","reg","rg","t-e","ger","rge","eto"],"rp":["or","ort","orte","ore","otr","otre","ote","-t"]},"77":{"input":[1,3,4,7],"tlp":["age",30406],"trp":["orta",6654],"tlw":["fort",2164],"trw":["offert",256],"lp":["age","gar","ega","gra","egar","for","rega","arg","arge","a-t","a-t-","fort","fro","gea","rof","rag","tage","aro","rage"],"rp":["orta"]},"78":{"input":[2,3,4,7],"tlp":["cor",18700],"trp":["ors",18331],"tlw":["cote",5418],"trw":["orc",491],"lp":["cor","eco","cro","sor","core","sort","st-","est-","roc","t-c","t-ce","ges","st-c","dro","rso","erso"],"rp":["ors","ord","-c","-ce"]},"79":{"input":[1,2,3,4,7],"tlw":["regard",4785],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",485081],"trw":["un",105377],"lp":[],"rp":["ou","on","un","no","nou","onn","nu","non","uo","nnu","onnu","nno","nnon","ono","oon","onon","uu","uun","uon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",374405],"trp":["ua",32749],"tlw":["au",38456],"trw":["noua",61],"lp":["qu","au","qua","quan","quo","aqu","anqu","anno"],"rp":["ua","uan","onna","nqu","oq","oqu","oua","nua","uq","uqu","nqua","ona"]},"82":{"input":[2,5,7],"tlp":["su",105459],"trp":["us",202802],"tlw":["son",49965],"trw":["nous",27592],"lp":["su","son","sou","sonn","sous","ssu"],"rp":["us","ous","jo","ons","jou","nous","uss","ju","jus","uj","ujo","ujou","ouj","oujo"]},"83":{"input":[1,2,5,7],"tlp":["squ",20943],"trp":["usq",8393],"tlw":["sonna",267],"trw":["joanna",329],"lp":["squ","aus","auss","sau","ajo","ajou","auj","aujo","assu","asqu","squa"],"rp":["usq","usqu","jusq","ussa","onsa","usa","jau","jaun","joua"]},"84":{"input":[3,5,7],"tlp":["eu",220654],"trp":["ue",233945],"tlw":["eu",4099],"trw":["une",73318],"lp":["eu","enu","eun","eune","eno"],"rp":["ue","une","onne","oy","yeu","oue","oeu","oye","nue","neu","one","ueu","u-","n-","uy"]},"85":{"input":[1,3,5,7],"tlp":["que",190819],"trp":["ux",83482],"tlw":["que",98515],"trw":["yeux",10617],"lp":["que","eux","eau","aux","aque","eaux","equ","au-","eque","quen","eux-"],"rp":["ux","yeux","oya","nque","oque","oux","uque","ux-","noux"]},"86":{"input":[2,3,5,7],"tlp":["du",78771],"trp":["ond",27438],"tlw":["du",57769],"trw":["jeune",4462],"lp":["du","don","deu","seu","dou","donn","eus","euse","endu","essu"],"rp":["ond","ues","ud","use","onde","ndu","jeu","jeun","-j","-je"]},"87":{"input":[1,2,3,5,7],"tlw":["deux",15643],"trw":["judas",547],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tou",80480],"trp":["ut",149891],"tlw":["tout",29188],"trw":["ont",5688],"lp":["tou","tu","tout","bo","gn","gu","bou","bon","ton","bu"],"rp":["ut","out","ont","ng","ob","ong","ub","uto","ug","not"]},"89":{"input":[1,4,5,7],"tlp":["aut",41481],"trp":["uf",8214],"tlw":["fut",4720],"lp":["aut","ang","fu","fon","fau","agn","faut","fou","fut","auto","atu","quat","font"],"rp":["uf","uta","uff","uat","onta","ouf","ouff"]},"90":{"input":[2,4,5,7],"tlp":["con",57360],"trp":["uc",26771],"tlw":["sont",9987],"lp":["con","cou","cu","cont","sont","conn","tous","cons","touj","cun","bouc"],"rp":["uc","nco","onc","ouc","ust","just","ucu","ucun","uco"]},"91":{"input":[1,2,4,5,7],"tlw":["facon",2654],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["eur",78762],"trp":["ur",328352],"tlw":["toute",6285],"trw":["notre",4935],"lp":["eur","rou","ru","tour","eut","gen","trou","gne","eure","gue"],"rp":["ur","our","ure","ute","oute","utr","utre","nge","ontr","urn"]},"93":{"input":[1,3,4,5,7],"tlw":["autre",5877],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sur",51346],"trw":["jour",4530],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grand",4887],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",274962],"trw":["il",109781],"lp":[],"rp":["il","oi","ll","li","lo","io","ill","ol","loi","ili","oli","lli","oil","oll","llo","illi","olo","iol","ilo","lio"]},"97":{"input":[1,6,7],"tlp":["al",90167],"trp":["la",335135],"tlw":["alla",769],"trw":["la",216676],"lp":["al","all","alo","ail","aill","ali","alla","ala","allo","alai"],"rp":["la","lai","lla","llai","illa","ila","oila","ial","olla","ola"]},"98":{"input":[2,6,7],"tlp":["soi",15762],"trp":["ois",37730],"tlw":["sol",2016],"trw":["ils",17730],"lp":["soi","sio","sol","ssio","sil"],"rp":["ois","ls","ils","iso","lis","ossi","oisi","liss","osi","isio","los","isso","oiss","ok","ilis"]},"99":{"input":[1,2,6,7],"tlp":["aiso",9482],"trp":["lais",13196],"tlw":["siloa",232],"trw":["laissa",1173],"lp":["aiso","sal","sall","alis","salo","asio","ails","sali","sala","wil","wal","slow","will"],"rp":["lais","las","lass","lisa","low","osai","oisa"]},"100":{"input":[3,6,7],"tlp":["el",190433],"trp":["le",657856],"tlw":["elle",59054],"trw":["le",177879],"lp":["el","ell","elle","eil","ele","eill","elo","eli"],"rp":["le","lle","ille","lie","ile","ole","-i","-il","-el","-ell","i-","lei"]},"101":{"input":[1,3,6,7],"tlp":["ale",15620],"trp":["oix",8324],"tlw":["allez",1376],"trw":["lizzie",89],"lp":["ale","ela","alle","z-","ez-","alie","eal","eali","elai","ai-"],"rp":["oix","lez","-la","la-","laie","llez","lex","lea","iale","lez-"]},"102":{"input":[2,3,6,7],"tlp":["doi",7114],"trp":["les",154394],"tlw":["elles",3562],"trw":["les",123647],"lp":["doi","sel","sile","esoi","sole","del","dis-","els","dois","ssel","dol"],"rp":["les","lles","is-","oid","lise","oise","iles","ld","less"]},"103":{"input":[1,2,3,6,7],"tlw":["salle",2270],"trw":["laisse",2177],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",127497],"trp":["ig",30369],"tlw":["toi",4595],"trw":["lit",2373],"lp":["vo","voi","tio","gi","toi","gl","vot","vil","vol","vill","voit"],"rp":["ig","oit","lit","oig","liv","lt","lig","itio","lot"]},"105":{"input":[1,4,6,7],"tlp":["avo",15975],"trp":["lait",13889],"tlw":["voila",2492],"trw":["livia",632],"lp":["avo","foi","atio","avoi","fil","fl","tal","fill","agi","val","vail","tail","fal","fall","fla","gal"],"rp":["lait","lat","lag","iga"]},"106":{"input":[2,4,6,7],"tlp":["cl",21798],"trp":["lic",7092],"tlw":["soit",3898],"trw":["kotko",169],"lp":["cl","col","ctio","sig","cil","stio","soit","stoi","vois","coi","coll","cli","glis","vos"],"rp":["lic","isto","olic","igts","osit","loc"]},"107":{"input":[1,2,4,6,7],"tlw":["fois",9209],"trw":["lac",564],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["roi",25378],"trp":["oir",45550],"tlw":["votre",6708],"trw":["livre",1128],"lp":["roi","voir","rl","t-i","t-il","tel","rle","troi","roit","votr"],"rp":["oir","ler","lor","lev","it-","oire","let","it-i","lier","ller"]},"109":{"input":[1,3,4,6,7],"tlw":["voix",6714],"trw":["leva",2445],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["trois",5530],"trw":["levres",1891],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["alors",9986],"trw":["laisser",1893],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",198698],"trw":["lui",41038],"lp":[],"rp":["ui","lu","ul","ion","lui","ho","oin","lon","oul","uoi","uil","oui","hu","inu","noi","hon","uill","nui","lou","uni"]},"113":{"input":[1,5,6,7],"tlp":["qui",72449],"trp":["lan",19838],"tlw":["qui",60034],"trw":["hall",554],"lp":["qui","quoi","quil","aul"],"rp":["lan","iqu","lq","lqu","hau","ula","oula","ulai","liq","liqu","nal","uai","haqu","laq","laqu","niqu"]},"114":{"input":[2,5,6,7],"tlp":["sui",21452],"trp":["lus",40230],"tlw":["suis",11506],"trw":["john",694],"lp":["sui","suis","sion","soin"],"rp":["lus","uis","ussi","ison","hos","ions","oins","usi","onsi","uiss","uk","luk","lusi","lons","joi","nsui"]},"115":{"input":[1,2,5,6,7],"tlw":["aussi",11177],"trw":["ouais",603],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eul",11197],"trp":["leu",32420],"tlw":["euh",642],"trw":["lieu",1585],"lp":["eul","eule","elu","elui","eui","euil"],"rp":["leu","uel","ieu","ule","len","heu","oule","uell","lieu","lleu","ilen","nel","lein","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["quelque",6947],"trw":["laquelle",1557],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seul",3625],"trw":["luke",3101],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quelques",6336],"trw":["la-dedans",355],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["vou",60021],"trp":["uv",57671],"tlw":["vu",3991],"trw":["nuit",3923],"lp":["vou","bl","tion","vu","voul","von","gin"],"rp":["uv","ouv","uit","ign","long","itu","ibl","nouv","ing","oint","lut","uiv","ubl"]},"121":{"input":[1,4,5,6,7],"tlw":["voulait",2213],"trw":["haut",2023],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["vous",46221],"trw":["longs",581],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["avons",2442],"trw":["lanca",1051],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trouve",3189],"trw":["leur",13514],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["veux",4192],"trw":["nouveau",4416],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["chose",7901],"trw":["leurs",6620],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["chaque",3120],"trw":["lorsque",2306],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",26335],"trw":["p",553],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",48180],"trp":["pa",224861],"tlw":["ap",72],"trw":["papa",974],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",20685],"trp":["ps",18522],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4429],"trp":["pas",100009],"tlw":["saps",129],"trw":["pas",84383],"lp":["spa","asp","sap","aps","sapp","saps"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",48775],"trp":["pe",136807],"tlw":["epee",266],"trw":["'",318],"lp":["ep","epe","epee","e'"],"rp":["pe","'e","ppe","'ep","pee","ppee","pep","pepe","p'","'epe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",8854],"trp":["'a",123917],"trw":["pape",116],"lp":["epa","appe","xp","exp","ape","xpe","expe","apea"],"rp":["'a","'ap","'app","'ex","'ea","pea","'exp","'epa","'ape","'exa","'exe","pape"]},"134":{"input":[2,3,8],"tlp":["d'",72817],"trp":["'es",50133],"tlw":["epees",70],"trw":["pdd",99],"lp":["d'","s'","s'e","d'e","esp","dep","spe","s'es","espe","sep","sesp","depe","d'es","eps"],"rp":["'es","'esp","pes","'ess","ped","pese"]},"135":{"input":[1,2,3,8],"tlp":["d'a",18719],"trp":["'as",4949],"tlw":["depasse",270],"trw":["passe",4560],"lp":["d'a","s'a","s'ap","depa","epas","s'as","d'ap","d'ea","espa","s'ex","sepa","aspe","s'ad","d'ad","d'ex","xped"],"rp":["'as","'ass","'ad","pesa"]},"136":{"input":[4,8],"trp":["pt",10944],"trw":["pt",1183],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",1491],"trp":["pat",3801],"tlw":["tapa",68],"lp":["tap","apt","tapa"],"rp":["pat","patt","pta","pf"]},"138":{"input":[2,4,8],"trp":["pc",625],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",4228],"trp":["pac",1260],"tlw":["cap",326],"lp":["cap","capa","spac","apac","apc","capt"],"rp":["pac","pats","past"]},"140":{"input":[3,4,8],"tlp":["rep",21795],"trp":["pr",118408],"tlw":["repete",469],"trw":["pere",4207],"lp":["rep","epr","rp","repr","ept","t'","epre","rpr","repe"],"rp":["pr","pre","per","'et","pet","pere","pte","ppr","'etr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",9449],"trp":["par",86969],"tlw":["frappe",557],"trw":["par",27661],"lp":["apr","apre","rap","rapp","appr","epar","repa","t'a","aper"],"rp":["par","'eta","part","'ar","pare","para","ppar","'arr","parf","'at","'att"]},"142":{"input":[2,3,4,8],"tlp":["c'",37695],"trp":["'est",44521],"tlw":["c'est",27418],"trw":["pres",4017],"lp":["c'","c'e","c'es","c'et","s'et","spec","cep","rps","d'et","resp","cept","spr"],"rp":["'est","pres","pers","pec","prec","perd","'ec","pect"]},"143":{"input":[1,2,3,4,8],"tlw":["apres",7671],"trw":["parce",4758],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",78967],"trw":["m",2037],"lp":[],"rp":["mm","mp","nm","mn","pn","np"]},"145":{"input":[1,5,8],"tlp":["am",51798],"trp":["ma",187703],"trw":["ma",11423],"lp":["am","ama","amp","aman","amm","ampa","anm","anap"],"rp":["ma","man","mpa","mma","pan","mam","mama","manq","mman","paq","nap","pann"]},"146":{"input":[2,5,8],"tlp":["sm",1338],"trp":["mps",12697],"trw":["ms",179],"lp":["sm"],"rp":["mps","nsp","ms","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",1341],"trp":["jam",12043],"tlw":["sam",363],"trw":["pans",80],"lp":["sam","amas","samm","ansp","asm","amps","ansm","span","sma"],"rp":["jam","jama","mas","mass","masq","maj","mpas","mw","njam","mans","nsma"]},"148":{"input":[3,5,8],"tlp":["em",168013],"trp":["me",306012],"tlw":["emmene",192],"trw":["me",28601],"lp":["em","eme","emen","emp","emm","emme"],"rp":["me","men","mme","n'","mem","pen","'en","meme","n'e","mmen","m'","'y","mpe","n'y"]},"149":{"input":[1,3,5,8],"tlp":["ema",18574],"trp":["n'a",19043],"tlw":["ame",424],"trw":["m'a",4088],"lp":["ema","eman","ame","amme","amen","xem","exem","xemp","ampe","xam","exam"],"rp":["n'a","m'a","pay","'an","'am","mena","paye","'ann","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",20176],"trp":["j'",30702],"tlw":["s'en",2720],"trw":["mes",6170],"lp":["dem","sem","emps","s'en","deme","d'en","seme","ssem","emes"],"rp":["j'","mes","pens","mmes","n'es","pend","j'e","med","j'en","mess","ndem"]},"151":{"input":[1,2,3,5,8],"tlw":["demande",3741],"trw":["pays",1471],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",463],"trp":["mb",31529],"lp":["tm","bm","ttm"],"rp":["mb","mpt","mt"]},"153":{"input":[1,4,5,8],"tlp":["amb",5301],"trp":["mat",6196],"tlw":["amant",146],"trw":["mat",200],"lp":["amb","fam","apab","tam","tamm","atm","amat","bap","bapt"],"rp":["mat","pab","mba","mant","mbat","pant","mpat","mpta","matt","mab","mban"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",1559],"trp":["mc",93],"tlw":["cm",1559],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",691],"trw":["passant",523],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",29998],"trp":["ment",81650],"tlw":["type",1817],"trw":["mere",4432],"lp":["rm","tem","rem","rme","temp","teme","emb","erm","reme"],"rp":["ment","mer","pren","met","mbr","mbre","mpr","prem","n'et","mpre","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["femme",6271],"trw":["payer",631],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["temps",9524],"trw":["n'est",6536],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["femmes",2197],"trw":["pendant",4274],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",30694],"lp":[],"rp":["pi","ip","ipp","ipi","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",6237],"trp":["pai",4095],"trw":["pizza",69],"lp":["api","apai"],"rp":["pai","papi","ipa","pia","ppai","piz","pizz","ippa","piaz"]},"162":{"input":[2,6,8],"tlp":["spi",1730],"trp":["isp",3645],"trw":["pis",282],"lp":["spi"],"rp":["isp","pis"]},"163":{"input":[1,2,6,8],"tlp":["apis",563],"trp":["ispa",2356],"trw":["passai",91],"lp":["apis","spai"],"rp":["ispa","pais"]},"164":{"input":[3,6,8],"tlp":["epi",615],"trp":["'i",49129],"trw":["pipe",239],"lp":["epi"],"rp":["'i","pie","pei","ipe","ippe","pipe","ie'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1594],"trp":["'ai",30601],"trw":["paix",638],"lp":["apie","epai"],"rp":["'ai","'exi","paix","'aie","paie"]},"166":{"input":[2,3,6,8],"tlp":["s'i",6660],"trp":["pied",4225],"tlw":["d'idees",66],"trw":["pieds",2197],"lp":["s'i","disp","d'i","espi","depi","d'id","epis","dip"],"rp":["pied","pid","pide","'id","'ide","ispe","ipes","pedi","'k","'ke","'kee","pidi"]},"167":{"input":[1,2,3,6,8],"tlw":["epais",338],"trw":["peake",83],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",158],"trp":["pit",5509],"trw":["pitt",410],"lp":["tip"],"rp":["pit","pti","ipit","pitt","piti","ipt","ipti","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",2174],"trp":["pita",2057],"tlw":["tapait",66],"lp":["apit","tapi","vap","apti"],"rp":["pita","pati","pait","pav","ptai","pavi","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",2146],"trp":["pist",956],"trw":["pic",121],"lp":["cip","cipi","scip"],"rp":["pist","icip","pic","pisc","pick","ptis"]},"171":{"input":[1,2,4,6,8],"tlw":["tapis",563],"trw":["passait",777],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epri",3352],"trp":["pri",24618],"tlw":["reprit",1215],"trw":["petit",6366],"lp":["epri","rpri","epti","rip","epit"],"rp":["pri","peti","prit","pier","pir","peri","pire","prie","prev","ppri","pitr","priv","'ev","pite","'evi"]},"173":{"input":[1,3,4,6,8],"tlw":["t'ai",504],"trw":["partie",2466],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["esprit",982],"trw":["pris",3067],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["c'etait",9128],"trw":["paris",1112],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",66310],"trw":["pin",80],"lp":[],"rp":["mi","im","min","imp","ph","imm","phi","nim","pin","imi","mpi","mmi","mini","hm","minn","imin","inim","pini","nip","mih"]},"177":{"input":[1,5,6,8],"tlp":["ami",10224],"trp":["mai",88086],"tlw":["ami",1414],"trw":["main",8212],"lp":["ami","amai","aim","amin","anim","aima"],"rp":["mai","main","ima","ham","hap","mani","iam","hamp","mina","nima","pain","hapi","happ","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",4174],"trp":["mis",9740],"trw":["mis",1921],"lp":["sim","simp","sph","smi","ssim","snip"],"rp":["mis","jim","miss","insp","mmis","mik","mins","nspi","ism","nism","jimm","pins","ijim","misi"]},"179":{"input":[1,2,5,6,8],"tlw":["amis",1180],"trw":["mais",42478],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",15514],"trp":["mie",15315],"tlw":["ennemi",205],"trw":["peine",2455],"lp":["emi","emie","emin","eph"],"rp":["mie","ime","'h","imen","'in","hem","'im","mine","hemi","pein","'imp","iem","ieme","mei","imme","'he"]},"181":{"input":[1,3,5,6,8],"tlw":["aime",856],"trw":["n'ai",2898],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["demi",438],"trw":["mise",705],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["semaine",1154],"trw":["j'ai",15346],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",5445],"trp":["mit",5727],"tlw":["tim",73],"trw":["mit",2329],"lp":["tim","thm","timi","bim","timb"],"rp":["mit","ntim","mbi","imb","imit","mpit","ptib","mbin","miti","mith","itim","mv","mvi"]},"185":{"input":[1,4,5,6,8],"tlw":["faim",558],"trw":["matin",2422],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",155],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["champ",458],"trw":["massif",152],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["termine",610],"trw":["premiere",3206],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["vraiment",3840],"trw":["n'etait",4972],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["chemin",1720],"trw":["merci",1888],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["chambre",2756],"trw":["j'avais",3059],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",155941],"trw":["pop",58],"lp":[],"rp":["po","op","ppo","opo","opp","pop","oppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",2216],"trp":["opa",340],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",3643],"trp":["pos",17016],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","ppos","osop","osp","pso"]},"195":{"input":[1,2,7,8],"trp":["posa",2884],"trw":["posa",1155],"lp":[],"rp":["posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",13316],"trp":["'o",22659],"lp":["epo"],"rp":["'o","'oe","ope","oppe","'epo","-p","poe","-pe","o'","'op","'ope","-po"]},"197":{"input":[1,3,7,8],"tlp":["xpo",114],"trp":["-pa",135],"lp":["xpo","expo"],"rp":["-pa","'a-"]},"198":{"input":[2,3,7,8],"tlp":["d'o",3873],"trp":["pose",6350],"tlw":["depose",222],"trw":["pose",1409],"lp":["d'o","espo","epos","d'oe","s'o","depo","d-p","d-pe","epso","dop","d'os"],"rp":["pose","'od","'ode","'os","-sep","osep","poes","ps-","'ose"]},"199":{"input":[1,2,3,7,8],"tlw":["deposa",185],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1434],"trp":["pot",1385],"tlw":["top",89],"trw":["pot",240],"lp":["top"],"rp":["pot","pto","opt"]},"201":{"input":[1,4,7,8],"tlp":["apot",365],"trp":["pag",5377],"tlw":["tapota",134],"lp":["apot","tapo"],"rp":["pag","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",842],"trp":["poc",1602],"tlw":["stop",73],"trw":["pots",103],"lp":["cop","copt","stop"],"rp":["poc","post","pco","pots"]},"203":{"input":[1,2,4,7,8],"tlw":["capot",86],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11883],"trp":["pro",26938],"tlw":["trop",6088],"trw":["porte",7561],"lp":["rop","repo","trop","ropr","ropo","epro"],"rp":["pro","por","port","prop","orp","opr","'or","ppor","opre","ppro","prot","-top","'ore","prog"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",803],"trw":["page",1683],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corps",3633],"trw":["propos",951],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["d'accord",1426],"trw":["passage",1091],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",114832],"trw":["mon",15902],"lp":[],"rp":["om","mo","pou","omm","mon","pu","up","omp","oup","um","mu","pon","nom","mou","mpo","mom","upp","mun","uppo","mmu"]},"209":{"input":[1,5,7,8],"tlp":["amo",2232],"trp":["pau",6517],"trw":["mona",153],"lp":["amo","amou","aup","aum","appu","amu","aupa","anmo"],"rp":["pau","oma","mau","ompa","upa","uma","omma","poq","poqu","oman","oupa","paqu"]},"210":{"input":[2,5,7,8],"tlp":["som",5403],"trp":["pous",4373],"trw":["noms",472],"lp":["som","somm","sup","soup","supp","spon","susp"],"rp":["pous","mons","mus","pons","mpos","ups","oups","mos","oms","noms","usp","mous","jup"]},"211":{"input":[1,2,5,7,8],"trw":["poussa",827],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epon",8146],"trp":["u'",72122],"tlw":["emu",95],"trw":["peu",10328],"lp":["epon","epu"],"rp":["u'","omme","'u","'un","peu","u'e","'une","'on","ome","u'u","u'un","ume","upe","-m","omen","u'o","u'on","mome"]},"213":{"input":[1,3,5,7,8],"tlw":["qu'on",6252],"trw":["peux",3366],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",18560],"trw":["monde",5892],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["d'eau",1024],"trw":["jusqu'a",4050],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8498],"trp":["omb",12802],"tlw":["tom",1064],"trw":["mot",1938],"lp":["tom","tomb","ttom","tup","tum","tmo"],"rp":["omb","mont","mot","ompt","nomb","put","pub","mbo","mob","pont","mmob","mout","omt","mpto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomba",500],"trw":["monta",334],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["coup",5443],"trw":["mots",1844],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["combat",528],"trw":["poussant",233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tomber",1545],"trw":["pour",54806],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forme",1597],"trw":["pourtant",2127],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comme",26616],"trw":["personne",4398],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["qu'est-ce",3758],"trw":["presque",3280],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",81861],"trw":["poil",237],"lp":[],"rp":["pl","poi","pli","pol","poli","plo","lip","ilip","lop","lopp","opi","pil","lipp","lp","ppl","ipl","poil","ppli","ploi","pilo"]},"225":{"input":[1,6,7,8],"tlp":["alp",231],"trp":["pla",16627],"trw":["plaza",92],"lp":["alp","alop","apil","apol","appl"],"rp":["pla","plai","pal","ipal","pala","opai","lpa","pali","pail","lap","lapi","plaz","plia","opla"]},"226":{"input":[2,6,7,8],"tlp":["spoi",1196],"trp":["posi",1139],"trw":["poils",186],"lp":["spoi","spl"],"rp":["posi","ispo","pois","plis","plos","piso","pok"]},"227":{"input":[1,2,6,7,8],"trw":["palais",478],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elep",2381],"trp":["l'",88780],"trw":["l'oeil",749],"lp":["elep","epl","elop"],"rp":["l'","'il","l'e","'el","'ell","ple","l'o","l'i","pel","ppel","plei","pele","lep","pell","'oei","l'ep","l'oe"]},"229":{"input":[1,3,6,7,8],"tlw":["appele",632],"trw":["l'a",2169],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'il",4703],"trw":["l'idee",964],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["s'appelle",386],"trw":["l'aide",479],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipl",158],"trp":["ptio",1479],"lp":["tipl"],"rp":["ptio","poig","poit","opit","ptoi","pig","pivo","plit","ltip","lpt","lpit","pito","pilt","plot"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",145],"trw":["plait",891],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",85],"trw":["posait",183],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["reprit-il",188],"trw":["l'oreille",587],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["appeler",517],"trw":["l'air",3916],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["desespoir",393],"trw":["police",1783],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["d'avoir",1685],"trw":["place",3372],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["plu",43647],"trw":["moi",12680],"lp":[],"rp":["plu","moi","pui","hom","homm","mpl","mil","moin","mill","poin","lum","impo","pho","impl","minu","umi","hum","upi","ompl","mili"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",319],"trw":["mal",4543],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",341],"trw":["plus",37565],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["salim",412],"trw":["maison",4491],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["homme",5277],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["qu'il",23610],"trw":["mieux",3375],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["depuis",5560],"trw":["hommes",4084],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["qu'ils",4873],"trw":["musique",825],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bulpitt",89],"trw":["point",3139],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",348],"trw":["pouvait",3877],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["commis",274],"trw":["jimbo",666],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["thomas",448],"trw":["mauvais",894],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["telephone",2027],"trw":["lumiere",2031],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["famille",1962],"trw":["pourquoi",6282],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["repondit",2783],"trw":["longtemps",2380],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["semblait",1934],"trw":["larmes",1018],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json index ec03cb5989..c7516e776f 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",383],"tlw":["a",307731],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",24364],"tlw":["s",39563],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",66595],"tlw":["was",3404],"lp":["as","sa","ass","wa","asa","was","sas","ssa","assa","sass","aw","sasa","awa","ws","saw","sw","ww","asas","aws","www"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",3291],"tlw":["e",6340],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",12313],"tlw":["x",109],"lp":["ea","ex","ae","xa","exa","xe","exe","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",161633],"tlw":["es",60379],"lp":["es","de","se","ed","ese","des","ede","ess","dd","sse","edes","ds","esse","edd","dese","ses","sed","sd","eed","ded"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",36504],"tlw":["we",1547],"lp":["ad","da","ada","we","das","add","sad","sada","ase","ead","dasa","ew","ade","adas","ads","dea","eas","asd","esa","desa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",111811],"tlw":["t",315],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",110634],"tlw":["at",3435],"lp":["ta","at","att","tta","ata","fa","tat","atta","tata","af","ft","ff","tatt","aft","fat","atat","tf","aff","afa","ffa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["cs",52385],"tlw":["c",503],"lp":["cs","st","ts","ct","cc","tc","sc","scs","tts","sts","csc","cscs","cts","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["csa",25323],"tlw":["fact",237],"lp":["csa","ac","ca","ast","tas","acs","sta","ats","atas","sat","csas","cas","tw","act","tsa","cat","stat","cast","tasa","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",141919],"tlw":["te",4722],"lp":["er","et","te","re","rt","ett","ere","ert","ete","tet","tte","ette","rr","ter","tett","rte","etet","ret","erte","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",117406],"tlw":["arra",2662],"lp":["ar","ra","fe","ara","art","tar","rta","tart","rat","arr","fr","rra","fer","arta","ef","ate","arra","arat","tra","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rs",15788],"tlw":["este",960],"lp":["rs","dt","rd","res","ste","est","tes","erd","ce","rde","ec","rc","erde","ers","eres","set","cse","det","etes","este"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dta",9305],"tlw":["were",1692],"lp":["dta","adt","rad","arad","ars","rsa","arc","adta","sar","tars","arsa","wer","ras","radt","dar","ard","were","dat","dra","rsad"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",30933],"trw":["n",210],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",171406],"trp":["na",74976],"tlw":["an",1125],"trw":["na",433],"lp":["an","ann","ana","anna","anan"],"rp":["na","nna","nan","nnan","nana","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2399],"trp":["ns",7890],"trw":["j",225],"lp":["sn"],"rp":["ns","jj","nj","js","jn"]},"19":{"input":[1,2,5],"tlp":["aj",26099],"trp":["ja",44839],"tlw":["aj",46],"trw":["jaj",1254],"lp":["aj","aja","san","ans","saj","saja","sna","asn","asna","wn","ajan","ssan","ajn","ajna"],"rp":["ja","jan","jaj","nas","jna","jana"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",192896],"trp":["ne",139773],"tlw":["en",13217],"trw":["ne",6355],"lp":["en","enn","eny","ene","enne","enye","ey","enny","een"],"rp":["ne","ny","ye","yen","nne","nye","nny","yn","yne","nen","nyn"]},"21":{"input":[1,3,5],"tlp":["any",20653],"trp":["ya",37836],"tlw":["any",460],"lp":["any","ane","ean","anya","eany","anny","ay","anyn","ena","enna","eq"],"rp":["ya","yan","nya","yna","yana","yany","nyna","yea","ynya"]},"22":{"input":[2,3,5],"tlp":["den",14339],"trp":["nd",76373],"tlw":["ej",386],"trw":["need",144],"lp":["den","dj","ej","sen","end","eje","esen","dn","ende"],"rp":["nd","nde","je","nden","ys","ndj","jd","yes","yj","nse","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",17737],"trp":["ndja",5958],"tlw":["and",12896],"trw":["new",369],"lp":["and","dja","ajd","adj","dan","adn","adja","dna","sand","anyj","day","way","ande"],"rp":["ndja","nda","yas","yja","ndan","nyja","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",33278],"trp":["nt",65227],"tlw":["b",333],"lp":["bb","tn","tb","bn","bbn","bt"],"rp":["nt","nb","ntb","nnt","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",46116],"trp":["nat",3727],"tlw":["abban",1391],"lp":["ba","ab","ban","tan","aba","abb","ant","aban","bba","bban","abba","bat","tana","anat","atn"],"rp":["nat","nta","nba","nban","nf"]},"26":{"input":[2,4,5],"tlp":["tj",4670],"trp":["nc",13855],"tlw":["stb",576],"lp":["tj","sb","bs","stb","bbs","cb","bj","sbb","csb","csn"],"rp":["nc","ncs","jt","nst","nts","jb","nbs","ntj","jts","jtj"]},"27":{"input":[1,2,4,5],"tlp":["ajt",5087],"trp":["jat",5127],"tlw":["sajat",1345],"lp":["ajt","tja","ajta","anc","ajat","atj","atja","baj","can","ancs","faj","fj","sab","sba","bac","sabb"],"rp":["jat","jta","jab","jaba"]},"28":{"input":[3,4,5],"tlp":["be",65601],"trp":["nte",8707],"tlw":["be",6609],"lp":["be","ben","ent","ten","eb","ber","rn","ebe","ren","ebb","ty","bbe","eben","ry","bet","rten"],"rp":["nte","yet","yt","yer"]},"29":{"input":[1,3,4,5],"tlp":["ran",8885],"trp":["yar",8550],"tlw":["bar",1464],"trw":["natty",172],"lp":["ran","bar","aran","arn","rany","tya","aty","rna","fen","rab","atya","bara","rba","arna","ary","rant"],"rp":["yar","yat","yf","yta"]},"30":{"input":[2,3,4,5],"tlp":["sten",4933],"trp":["ndt",3578],"tlw":["esetben",368],"lp":["sten","rj","bes","rend","enc","seb","renc","csen","dent","sebb","bec","ejet","erj","tend","encs"],"rp":["ndt","ncse","nce","jet","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["rajta",1591],"trw":["jart",812],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2593],"trw":["i",2017],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",158164],"trp":["ia",19708],"tlw":["az",99800],"lp":["az","za","zi","ai","zz","aza","zza","zaz","azz","azza","azi","zaza","zia","azaz","zai"],"rp":["ia","iz","iai","iza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",22088],"trp":["is",89346],"tlw":["si",71],"trw":["is",40982],"lp":["si","sk","sik","sis","ssi","ski"],"rp":["is","ki","ik","kk","kis","kik","iss","ks","isk","kiss","isi","iki","ksi","ikk"]},"35":{"input":[1,2,6],"tlp":["sz",176990],"trp":["ka",44404],"tlw":["aki",3851],"trw":["iszik",209],"lp":["sz","ak","sza","sak","ssz","szi","aka","asz","aki","zs","akk","assz","zik","wi","asi","ssza","szik","zsa"],"rp":["ka","isz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",6348],"trp":["ie",7511],"lp":["ei","eei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",100252],"trp":["ize",2949],"tlw":["ez",13097],"trw":["ize",69],"lp":["ze","ez","eze","aze","zze","ezz","ezze","ezi","eza","xi","zei","ezei","zez","zeze","ezai","xix","xii"],"rp":["ize","ix","izze"]},"38":{"input":[2,3,6],"tlp":["ek",80676],"trp":["ke",88251],"tlw":["did",582],"trw":["ide",1572],"lp":["ek","di","eke","eki","edi","dik","dek","ddi","ekk","sek","ske","sid"],"rp":["ke","id","ide","ked","kes","ike","ise","kek"]},"39":{"input":[1,2,3,6],"tlp":["sze",62411],"trp":["kez",11007],"tlw":["ezek",1919],"trw":["kezd",305],"lp":["sze","esz","esze","zd","zek","ezd","ezek","ssze","azd","zda","azda","szek","dez","adi","zeke","zes"],"rp":["kez","keze","kezd","isze"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",26187],"trp":["it",48328],"tlw":["ti",467],"trw":["itt",6106],"lp":["ti","vi","tv","vit","tit","tiv","vitt","vv","tti","vt","vii","viii"],"rp":["it","iv","itt","iti","ivi","itv","ivt","itiv"]},"41":{"input":[1,4,6],"tlp":["va",85476],"trp":["if",3685],"tlw":["azt",15369],"trw":["if",856],"lp":["va","zt","azt","fi","zta","av","ava","fia","azta","ati","ziv","vat","zat","viz","tva","tiz","fiat"],"rp":["if","iat","iva"]},"42":{"input":[2,4,6],"tlp":["csi",6831],"trp":["ic",8214],"tlw":["cit",131],"trw":["kit",1125],"lp":["csi","ci","vis","tk","viss","tis","sti","stv","sit","tik"],"rp":["ic","ist","kiv","ics","kit","kt","kic","kics","its","icsi"]},"43":{"input":[1,2,4,6],"tlp":["csak",20970],"trp":["kat",7650],"tlw":["csak",17322],"lp":["csak","szt","tak","cz","wit","tsz","vas","aszt","szta","sziv","tisz","atsz","czi","ttak","visz","cia"],"rp":["kat","iszt","kiva","kta"]},"44":{"input":[3,4,6],"tlp":["ve",74884],"trp":["ir",33168],"tlw":["vette",950],"trw":["irt",530],"lp":["ve","ri","ev","eve","vet","ver","rv","eri","eti","vett","tve","eir","rve","evet"],"rp":["ir","ive","ire","irt","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["zer",25432],"trp":["ira",15949],"tlw":["ezt",5966],"lp":["zer","zet","ezt","zere","var","zte","ezet","zett","ari","zert","ezte","vez","ria","zar","ezer","azer","rva","veze","zeri"],"rp":["ira"]},"46":{"input":[2,3,4,6],"tlp":["tek",13729],"trp":["ket",19030],"tlw":["vers",850],"trw":["ket",6195],"lp":["tek","ves","dv","rk","eket","rek","erek","dve","edv","edve","ttek","vid"],"rp":["ket","ker","kir","kere","iste","kerd","kedv","kr"]},"47":{"input":[1,2,3,4,6],"tlw":["akar",1873],"trw":["kezet",1015],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",100465],"trw":["in",9209],"lp":[],"rp":["in","ni","hi","nin","nni","hin","inn","ih","hh","ini","nh","inni","inh","hn","hinn","nii","hni","nini","hih","nnin"]},"49":{"input":[1,5,6],"tlp":["ah",5695],"trp":["ha",99222],"tlw":["ah",347],"trw":["ha",15507],"lp":["ah","zn","ani","zin","zan","zni","zna","ain","azan","aha"],"rp":["ha","han","haz","haza","ian","ina","nz","hia","nia","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",3147],"trp":["nk",18980],"trw":["his",3359],"lp":["sin","sh","sni"],"rp":["nk","his","kin","nki","kn","ink","nik","nis","ij","kh","ins","ish","ikn","nkin","kikn","nsi","jh"]},"51":{"input":[1,2,5,6],"tlp":["wh",5945],"trp":["nak",17010],"tlw":["annak",3112],"trw":["hisz",637],"lp":["wh","szin","anak","szn","zaj","ank","whi","sina","aszn","szaj"],"rp":["nak","nka","nnak","has","haj","jak","hisz","kan","inka","hasz"]},"52":{"input":[3,5,6],"tlp":["eh",18062],"trp":["he",78848],"tlw":["enni",263],"trw":["he",3277],"lp":["eh","ehe","enni","eni","enyi","ein"],"rp":["he","yi","nyi","nnyi","ine","neh","hey","hen","hei","yh","nehe","inne","ien","nyh"]},"53":{"input":[1,3,5,6],"tlp":["zen",10585],"trp":["hane",4811],"tlw":["ezen",1479],"trw":["nehany",1282],"lp":["zen","eha","ezen","enz","ehan","ehez","zne","ezn","ezni"],"rp":["hane","nez","neha","hany","hez","yha","izen","neze","yz","yze","yez"]},"54":{"input":[2,3,5,6],"tlp":["enk",5048],"trp":["nek",29850],"tlw":["ennek",2112],"trw":["neki",6003],"lp":["enk","enek","enki","dni","senk"],"rp":["nek","ind","inde","neki","yek","neke","ken","yik","nnek","ndi","indi","inek","kine","nke","kne"]},"55":{"input":[1,2,3,5,6],"tlw":["when",993],"trw":["had",1905],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",71797],"trp":["int",32779],"tlw":["th",242],"trw":["hit",168],"lp":["th","bi","thi","bbi","tni","tth","vin","thin"],"rp":["int","ith","nth","inth","ib","ht","nti","hiv","hit","nv","hitt","nit"]},"57":{"input":[1,4,5,6],"tlp":["van",18634],"trp":["hat",22178],"tlw":["van",11948],"trw":["hat",6837],"lp":["van","tha","that","biz","ztan","zb","zab","ath","vab","vabb","zaba","zint","tvan","vann"],"rp":["hat","hata","ntha","hav","ivan","hab"]},"58":{"input":[2,4,5,6],"tlp":["ch",5920],"trp":["inc",7312],"tlw":["this",2307],"trw":["nincs",3085],"lp":["ch","this","csin","sinc","chi","bis"],"rp":["inc","incs","ninc","kb","kint","ich","hic","hich","nci","hist","nsti","inst","itj","nkit"]},"59":{"input":[1,2,4,5,6],"tlw":["with",3691],"trw":["inkabb",1478],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",47933],"trp":["het",10465],"tlw":["the",34738],"trw":["het",978],"lp":["the","ehet","ven","rin","ther","they","rint","teh","erin","thei","bir"],"rp":["het","her","inte","nev","neve","hete","hir","heir","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["tehat",2571],"trw":["have",1230],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",599],"trw":["isten",2805],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["szerint",2186],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1820],"trw":["o",10573],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",760],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",41762],"trp":["os",59448],"tlw":["so",930],"trw":["os",131],"lp":["so","sos","soso","sso","soo"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",4417],"trp":["osa",3764],"lp":["aso","wo","asos","swo","woo","asso"],"rp":["osa","ow","ossa","owa","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1230],"trp":["-e",3142],"trw":["-",1439],"lp":["eo","e-","e-o"],"rp":["-e","oe","o-","-o","o-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",237],"trp":["-a",532],"trw":["-a",180],"lp":["a-","a-e","xo"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",41052],"trp":["od",15802],"tlw":["eso",376],"trw":["-es",254],"lp":["do","sod","dos","eso","dod","edo","d-","d-e","sose"],"rp":["od","ose","odo","ode","od-","od-e","odes","ood","osse","-d","-es"]},"71":{"input":[1,2,3,7],"tlp":["ado",4227],"trp":["oda",6077],"tlw":["ado",161],"trw":["oda",2095],"lp":["ado","soda","asod","dow","easo","doa","dosa","as-","ados","wood","adod","ewo"],"rp":["oda","owe","odas","-as","odaa","owed","-oda","odae"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",78142],"trp":["og",80035],"tlw":["to",11182],"trw":["ott",6355],"lp":["to","go","tot","tott","got","gt","gg","tto","gott","gto","tog"],"rp":["og","ot","ott","ogo","ogt","ogot","oto","ogto","otot"]},"73":{"input":[1,4,7],"tlp":["ag",87943],"trp":["of",19703],"tlw":["fog",1642],"trw":["of",16836],"lp":["ag","ga","fo","aga","ato","fog","ago","gat","agat","atot","agot","gta","foga","gf","fogo","agg"],"rp":["of","otta","oga","ota"]},"74":{"input":[2,4,7],"tlp":["cso",6549],"trp":["ost",9595],"tlw":["sot",1437],"lp":["cso","co","tos","gs","sot","gos","sto","sg","csos","csot","soc","cco","cto","ttos","sog"],"rp":["ost","oc","ocs","ogs","osto"]},"75":{"input":[1,2,4,7],"tlp":["sag",7512],"trp":["osag",1075],"tlw":["two",477],"lp":["sag","agos","sago","gas","atos","asag","agas","tosa","acso","ssag","tsag","gosa","two","saga","sga","gsa","ags"],"rp":["osag","oca","ocsa"]},"76":{"input":[3,4,7],"tlp":["eg",183750],"trp":["or",88200],"tlw":["eg",697],"trw":["oreg",2917],"lp":["eg","ro","ge","ege","reg","tor","gr","get","ero","tort","eget","rto","teg","rg","ger"],"rp":["or","ore","oro","ort","oreg"]},"77":{"input":[1,3,4,7],"tlp":["aro",14078],"trp":["ora",5234],"tlw":["for",3067],"trw":["ora",808],"lp":["aro","for","gar","rag","arto","fro","ega","rof","grof","egf","gra","arg","aror","taro","forr","rga","efo","arag"],"rp":["ora","orra"]},"78":{"input":[2,3,4,7],"tlp":["seg",14126],"trp":["ors",6702],"tlw":["eros",707],"trw":["ordog",649],"lp":["seg","ges","eges","ros","sege","dot","dott","rdo","deg","sor","dor","dog","ged","eseg","ross","tseg","egs","eros"],"rp":["ors","ord"]},"79":{"input":[1,2,3,4,7],"tlw":["adott",1280],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",101004],"trw":["on",3707],"lp":[],"rp":["on","un","no","ou","onn","nu","ono","oun","non","uno","nno","nnu","unn","nnon","nun","nnun","uo","onu","nou","oon"]},"81":{"input":[1,5,7],"tlp":["ano",4244],"trp":["ona",5750],"tlw":["au",143],"trw":["onnan",503],"lp":["ano","au","anu","qu","anno","anon","qua","anua"],"rp":["ona","onna","ua","una","uan","oan","unan","onan","nua","onq","nqu","onqu"]},"82":{"input":[2,5,7],"tlp":["su",6983],"trp":["jo",26548],"tlw":["son",366],"trw":["jo",6226],"lp":["su","son","ssu"],"rp":["jo","us","ju","uj","nos","jon","ons","onos","jos","oj","ous","jonn","jus","jjo","jjon","joj","jun"]},"83":{"input":[1,2,5,7],"tlp":["anos",2908],"trp":["jano",2283],"tlw":["sajnos",113],"trw":["janos",2073],"lp":["anos","ajo","ason","wou","aus","ajos","aju","asu","ajjo"],"rp":["jano","osan","own","now","uja","usa","onas","ujsa","oja","ujja","jua"]},"84":{"input":[3,5,7],"tlp":["eu",1868],"trp":["yo",25659],"tlw":["eu",103],"trw":["one",972],"lp":["eu","enu"],"rp":["yo","ony","yu","nyo","yon","nyu","onyo","one","ue","y-","onny","y-e","onne","yun","uny","you","yony","oen"]},"85":{"input":[1,3,5,7],"tlp":["anyo",2334],"trp":["unya",473],"tlw":["que",241],"trw":["-an",97],"lp":["anyo","que","an-","an-e","equ","equa","anyu","aux","eque","quee"],"rp":["unya","onya","-na","yano","oya","yanu","yona","-an","nque","ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7212],"trp":["ond",20755],"tlw":["du",322],"trw":["und",201],"lp":["du","don","endo","edu"],"rp":["ond","ud","ndo","ondo","udo","ondj","yos","und","nyos","udj","udn","ndu","osen","use","yedu","unde"]},"87":{"input":[1,2,3,5,7],"tlw":["adjon",401],"trw":["odaadja",48],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",26336],"trp":["ut",29088],"tlw":["tobb",2199],"trw":["not",2568],"lp":["tu","bo","tob","tobb","gon","bu","gu","ton","gn"],"rp":["ut","ob","ng","ug","obb","ont","uto","not","onb","nto","ung"]},"89":{"input":[1,4,5,7],"tlp":["ang",4181],"trp":["nag",18488],"tlw":["about",409],"trw":["utan",3611],"lp":["ang","fu","abo","gan","gab","gna","aton","tona","ango","agu","gaba"],"rp":["nag","uta","utan","oba","nga","unga","onba","utat","obba"]},"90":{"input":[2,4,5,7],"tlp":["gj",3961],"trp":["job",3981],"tlw":["bus",289],"trw":["jott",1407],"lp":["gj","csu","cou","sob","con","cson","sobb"],"rp":["job","jobb","jot","jott","jto","ntos","ust","uc","jut","ogj","ujt","jtot","juto"]},"91":{"input":[1,2,4,5,7],"tlw":["fogja",947],"trw":["jobban",1258],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gy",213097],"trp":["ogy",60410],"tlw":["egy",31147],"trw":["ugy",8993],"lp":["gy","egy","gye","gyo","egye","ru","gen","egen","gyon","geny","gyu","eng","gyen","enge","bor"],"rp":["ogy","ur","ugy","oru","nge"]},"93":{"input":[1,3,4,5,7],"tlw":["baro",394],"trw":["nagy",10563],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["tudott",1092],"trw":["ures",337],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["tudja",1421],"trw":["ujra",1374],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ol",117661],"trw":["l",1029],"lp":[],"rp":["ol","lo","ll","il","li","io","ill","llo","olo","lol","oi","oll","oli","lli","ili","illi","ilo","ollo","iol","lio"]},"97":{"input":[1,6,7],"tlp":["al",141761],"trp":["la",89690],"tlw":["all",2554],"trw":["la",881],"lp":["al","zo","ala","all","alo","azo","zol","alal","alla","zal","ali","allo"],"rp":["la","oz","ozo","lal","lla","ila","ola","ozz"]},"98":{"input":[2,6,7],"tlp":["sok",10043],"trp":["ko",67727],"tlw":["sok",3390],"trw":["ok",1198],"lp":["sok","sol","sko"],"rp":["ko","ok","lk","ls","iko","kko","lso","oko","kol","los","lko","lok","kos","lis","lik","kl","ols"]},"99":{"input":[1,2,6,7],"tlp":["szo",28916],"trp":["koz",17882],"tlw":["azok",1917],"trw":["law",597],"lp":["szo","zok","akko","szol","sszo","alk","azok","ako","soka","szok"],"rp":["koz","osz","oka","las","ossz","kozo","lak","kal","ozs","lasz"]},"100":{"input":[3,6,7],"tlp":["el",185226],"trp":["le",131988],"tlw":["el",11925],"trw":["le",3722],"lp":["el","ele","ell","elo","elle","eli","elel","elol"],"rp":["le","lle","lel","ole","ille","lole","lele","ile","lelo","olle","-i","lei"]},"101":{"input":[1,3,6,7],"tlp":["zel",9993],"trp":["lea",5723],"tlw":["ezzel",1164],"trw":["lexi",93],"lp":["zel","ezo","zele","ela","zzel","zle","zelo","zell","ale","alle","zeli","eal","ezel","elz","ezal","azel","elal"],"rp":["lea","oze","ozel"]},"102":{"input":[2,3,6,7],"tlp":["dol",7310],"trp":["ld",13454],"tlw":["elso",2743],"trw":["kell",5494],"lp":["dol","elk","els","elso","del","eles","elke","dok"],"rp":["ld","kel","les","kell","old","ido","oke","lek","lke","ldo","led","lese"]},"103":{"input":[1,2,3,6,7],"tlw":["szel",525],"trw":["lesz",3740],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",40145],"trp":["lt",63226],"tlw":["volt",20311],"trw":["ivott",154],"lp":["vo","vol","volt","gi","tl","tol","vil","tio","gl"],"rp":["lt","ig","olt","ov","lot","lott","lv","lg","olg","lto","lit"]},"105":{"input":[1,4,6,7],"tlp":["val",23257],"trp":["lat",20885],"tlw":["alatt",3368],"trw":["igaz",1408],"lp":["val","tal","vag","alt","fol","vala","zot","tala","zott","gaz","alat","alta","valo"],"rp":["lat","lta","latt","ova","lag","ozot","olta"]},"106":{"input":[2,4,6,7],"tlp":["tok",4349],"trp":["kot",3836],"tlw":["titkos",290],"trw":["kolto",379],"lp":["tok","gis","gok","tko","gk","tols"],"rp":["kot","kov","lc","olc","okt","lcs","kolt","loc","olcs","koc","icso","kott","okot","oci"]},"107":{"input":[1,2,4,6,7],"tlw":["voltak",2244],"trw":["kozott",2109],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vel",12822],"trp":["let",20248],"tlw":["elott",2567],"trw":["lett",3000],"lp":["vel","tel","egi","elt","veg","elet","vele","rol","tle","elot","tele"],"rp":["let","leg","lett","llet","ove","lte","lete","lev","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",5055],"trw":["left",288],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["ekkor",1030],"trw":["kellett",2170],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["akkor",5794],"trw":["orszag",966],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",91631],"trw":["hol",3321],"lp":[],"rp":["ho","ul","ln","oln","hol","hu","lu","lon","oh","ulo","ion","hun","ulon","lni","iu","hon","nl","nul","oul","uh"]},"113":{"input":[1,5,6,7],"tlp":["zon",17866],"trp":["lan",11536],"tlw":["azon",1845],"trw":["hozza",2127],"lp":["zon","zu","azon","alan","aho","zul","alu"],"rp":["lan","hal","lna","olna","hoz","nal","hall","hozz","oha","uz","izon","hala","llan"]},"114":{"input":[2,5,6,7],"tlp":["soh",2706],"trp":["ku",14889],"trw":["jol",2741],"lp":["soh","sul","sho"],"rp":["ku","kul","unk","uk","lj","kon","kulo","hos","jol","lku","lkul","juk","hus","hoss","konn","uks","nok"]},"115":{"input":[1,2,5,6,7],"tlw":["soha",1668],"trw":["kozul",1472],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",25178],"trp":["ly",62035],"tlw":["ellen",1350],"trw":["oly",2731],"lp":["ely","elye","elen"],"rp":["ly","len","lye","oly","leh","lehe","ily","lyen","hel","hely","ilye","llen","nel","ule","lyi","yel","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["equal",129],"trw":["olyan",5589],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ejjel",683],"trw":["nelkul",2214],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["asszony",2441],"trw":["kisasszony",460],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["voln",8076],"trp":["hog",60062],"tlw":["tobbi",901],"trw":["otthon",874],"lp":["voln","bol","gh","tion","bl","tho","tul","gin","vu","ght","gint"],"rp":["hog","ult","ing","hung","oth","obbi","lonb","lob","ivu"]},"121":{"input":[1,4,5,6,7],"tlw":["volna",7681],"trw":["hova",947],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",497],"trw":["king",1415],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["viszont",558],"trw":["ifju",760],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bele",1164],"trw":["hogy",55048],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagy",8524],"trw":["horvath",1175],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["egyik",2647],"trw":["korul",1156],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["vagyok",3023],"trw":["kiraly",5259],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",4972],"trw":["p",636],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22391],"trp":["pa",18427],"tlw":["apa",231],"trw":["pap",604],"lp":["ap","apa","app","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",1610],"trp":["ps",1710],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",895],"trp":["pas",1331],"trw":["pas",147],"lp":["sap","sapa","spa","aps","apas","asp","aspa","apsa"],"rp":["pas","pass","pasa","psa","paps"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",23212],"trp":["pe",28344],"tlw":["epp",420],"trw":["'",39],"lp":["ep","epe","epp","eppe","eep","e'"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1036],"trp":["pea",574],"tlw":["a'",897],"lp":["ape","a'","xp","exp","appe","xpe","expe","eap","epa"],"rp":["pea","ppea","pape"]},"134":{"input":[2,3,8],"tlp":["epes",1628],"trp":["ped",6768],"trw":["'s",163],"lp":["epes","eps","spe","esp","sep","sepp","epse","espe","desp","s'","s's","epd","dep"],"rp":["ped","pes","'s","pess","pse","pese","pd"]},"135":{"input":[1,2,3,8],"tlp":["dap",867],"trp":["pad",901],"tlw":["apad",98],"trw":["passed",66],"lp":["dap","dape","apes","apad","esap","weap","spea","as'","as's","aped"],"rp":["pad","peda","peas"]},"136":{"input":[4,8],"tlp":["tp",115],"trp":["pt",1949],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",1138],"trp":["pta",935],"tlw":["apat",58],"trw":["papat",43],"lp":["apt","apta","apat","tap","tapa","apf"],"rp":["pta","pat","pf","pata"]},"138":{"input":[2,4,8],"trp":["pc",781],"lp":[],"rp":["pc","pcs"]},"139":{"input":[1,2,4,8],"tlp":["apc",704],"trp":["past",91],"tlw":["csapat",159],"trw":["past",91],"lp":["apc","apcs","csap","cap","sapt","capt","scap","spac"],"rp":["past","pcsa","pac"]},"140":{"input":[3,4,8],"tlp":["epet",1843],"trp":["pr",5345],"trw":["peter",932],"lp":["epet","rep","rp","erep","ept","repe","tep","epte","epr","epre"],"rp":["pr","per","pet","pete","pre","pett","pte","pere","ppet","ppr"]},"141":{"input":[1,3,4,8],"tlp":["apr",954],"trp":["par",5757],"tlw":["expert",89],"trw":["par",1156],"lp":["apr","arp","rpa","arpa","apra","rap","xper","appr","aper","apte","erap"],"rp":["par","part","para","pera","pra","pfe","pear","perf","pate"]},"142":{"input":[2,3,4,8],"tlp":["step",391],"trp":["pest",1888],"tlw":["csepp",134],"trw":["pest",218],"lp":["step","spec","csep","resp","cep","cept","epc","epcs","r's","er's","rdep","spr"],"rp":["pest","pers","perc","pres","pec","pecs","pect","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["arpad",569],"trw":["peace",107],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",5907],"trw":["m",703],"lp":[],"rp":["mm","mp","pn","nm","mn","pm","np","nnm"]},"145":{"input":[1,5,8],"tlp":["am",53502],"trp":["ma",92967],"tlw":["am",1222],"trw":["ma",3061],"lp":["am","ama","apam","amp","apn","amn","amna"],"rp":["ma","nap","man","pan","nam","mma","pam","mpa","napp","mam","nnap","mna","nma"]},"146":{"input":[2,5,8],"tlp":["sm",4467],"trp":["pj",2668],"lp":["sm"],"rp":["pj","ms","mj","mps"]},"147":{"input":[1,2,5,8],"tlp":["apj",2668],"trp":["mas",14915],"tlw":["apja",679],"trw":["mas",3210],"lp":["apj","apja","sam","snap","sma","amas","span"],"rp":["mas","maj","pja","masn","pjan","napj","mass","jam","paj","mpas","mans","maja","masa"]},"148":{"input":[3,5,8],"tlp":["em",127947],"trp":["me",140514],"tlw":["eppen",1670],"trw":["nem",50476],"lp":["em","eme","emm","epen","emen","emp","enem"],"rp":["me","nem","men","pen","menn","nep","ym","neme","ppen","meny","my","nepe","mem"]},"149":{"input":[1,3,5,8],"tlp":["ame",9265],"trp":["yma",2568],"tlw":["anyam",835],"trw":["many",675],"lp":["ame","anem","amen","ema","xam","exam","xamp","eman","eam"],"rp":["yma","many","yam","nyam","name","may","yama","mea","mean","nema","pean"]},"150":{"input":[2,3,5,8],"tlp":["sem",13924],"trp":["mes",7145],"tlw":["sem",8470],"trw":["nemes",571],"lp":["sem","sme","semm","emes","dem","ems","dnem","esem","deme","ejem","dm","edm"],"rp":["mes","mess","menj","med","mese","mse","jem","nems"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",721],"trw":["majd",4082],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bp",213],"trp":["mb",15442],"tlw":["bp",213],"lp":["bp","tm"],"rp":["mb","mt","pb","mpt"]},"153":{"input":[1,4,5,8],"tlp":["tam",7013],"trp":["mat",4622],"tlw":["babam",244],"trw":["mta",69],"lp":["tam","amb","ttam","amat","tama","bam","amba","abam","fam"],"rp":["mat","mba","mban","mab","maba","pant","matt","mta","ptam","mbat","mant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["csm",290],"trp":["mc",1065],"tlw":["cm",129],"lp":["csm","cm"],"rp":["mc","mcs","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["tamas",235],"trw":["mast",389],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["emb",12508],"trp":["mer",17137],"tlw":["ember",5090],"trw":["mert",10572],"lp":["emb","embe","rm","tem","erm","rme","erme","emet","rem","term","ttem","erem"],"rp":["mer","mbe","mert","mber","ment","met","yerm","mere"]},"157":{"input":[1,3,4,5,8],"tlw":["ram",766],"trw":["mar",14439],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdemes",264],"trw":["mester",269],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["tamadt",304],"trw":["matyas",1445],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",6058],"lp":[],"rp":["pi","ip","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1249],"trp":["pai",741],"tlw":["apai",47],"trw":["papi",72],"lp":["api","zp","apai","zap"],"rp":["pai","ipa","pz","pia","papi","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",214],"trp":["pis",406],"tlw":["sip",39],"lp":["spi","sip"],"rp":["pis","isp","pk"]},"163":{"input":[1,2,6,8],"tlp":["szp",99],"trp":["kap",3878],"trw":["kap",330],"lp":["szp","apsz","szap"],"rp":["kap","pasz","psz","kapi","ispa","pszi","pisz","pak","paks","kaps","psza"]},"164":{"input":[3,6,8],"tlp":["epi",405],"trp":["pie",218],"lp":["epi","epie"],"rp":["pie"]},"165":{"input":[1,3,6,8],"tlp":["zep",7772],"trp":["pze",497],"lp":["zep","zepe","epz","epze","z'","zepi","epez"],"rp":["pze","iz'","pez","pezi"]},"166":{"input":[2,3,6,8],"tlp":["epek",443],"trp":["pedi",6445],"trw":["kepes",493],"lp":["epek","skep","epk","espi"],"rp":["pedi","kep","kepe","kepp","pek","ikep","keep","pies","pied"]},"167":{"input":[1,2,3,6,8],"tlw":["szep",5043],"trw":["kepzes",85],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",62],"trp":["pit",714],"lp":["tip"],"rp":["pit","pv","pvi","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",393],"trp":["pita",305],"trw":["pava",90],"lp":["apit","apv"],"rp":["pita","ipat","pati","pav","pava","pitz","pva"]},"170":{"input":[2,4,6,8],"tlp":["cip",416],"trp":["pist",271],"lp":["cip","spit"],"rp":["pist","pic","icip","pvis","pict","pics"]},"171":{"input":[1,2,4,6,8],"tlw":["csaptak",83],"trw":["kapta",303],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epit",176],"trp":["pri",1125],"tlw":["epitett",92],"lp":["epit","rip","epv","epvi","epve","epir"],"rp":["pri","pir","pve","pite","pvet","piri","peri","prev","petv","pire"]},"173":{"input":[1,3,4,6,8],"trw":["ipari",85],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",105],"trw":["kepet",297],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["szerepet",241],"trw":["persze",601],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",105379],"trw":["mi",6559],"lp":[],"rp":["mi","min","im","mmi","him","mih","imp","ph","pin","hm","imm","mini","pni","mpi","mh","phi","pih","inp","pini","nim"]},"177":{"input":[1,5,6,8],"tlp":["ami",13718],"trp":["mz",2071],"tlw":["ami",1585],"trw":["mai",619],"lp":["ami","zam","amin","zama","zm","zzam","zma"],"rp":["mz","mia","mai","iam","ham","hama","maz","napi","ima","izm","miha","izma","miai"]},"178":{"input":[2,5,6,8],"tlp":["sim",317],"trp":["mik",10073],"trw":["mik",271],"lp":["sim","smi","smin","simp","simi","ship"],"rp":["mik","ism","mis","kim","mink","km","mk","ims","hims","miss","misk","mikn","mmik"]},"179":{"input":[1,2,5,6,8],"tlw":["szama",327],"trw":["masik",2051],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3676],"trp":["mie",2185],"tlw":["enyim",109],"trw":["menni",726],"lp":["emmi","emi","emei","eph","ephe","empi"],"rp":["mie","ime","hem","mine","nemi","imen","mei","meh","phe","phen","mehe","mihe","yim","nepi"]},"181":{"input":[1,3,5,6,8],"tlw":["amennyi",66],"trw":["hanem",4711],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["semmi",1966],"trw":["minden",7752],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["szepen",924],"trw":["messze",712],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1125],"trp":["mint",20757],"trw":["mint",15155],"lp":["tim"],"rp":["mint","mit","miv","mmit","mib","http","mitt","ptim","mmiv","imb","mitv","mmib","nmit","pith"]},"185":{"input":[1,4,5,6,8],"tlw":["amit",1691],"trw":["mintha",2774],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cim",39],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["szamat",111],"trw":["masikat",211],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",1440],"trw":["miert",1425],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["ereztem",268],"trw":["nemzeti",722],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["semmit",1211],"trw":["mindent",1246],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["szamara",1197],"trw":["mindjart",1584],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",11623],"trw":["op",133],"lp":[],"rp":["po","op","opo","opp","oop","ppo","oppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",4028],"trp":["opa",952],"lp":["apo","appo"],"rp":["opa","oppa","papo","opap"]},"194":{"input":[2,7,8],"tlp":["spo",489],"trp":["pos",929],"lp":["spo","sop","sopo","sopp"],"rp":["pos","ops","pso","oops","poss","ppos"]},"195":{"input":[1,2,7,8],"tlp":["apos",470],"trp":["pow",266],"lp":["apos","sapo","apso"],"rp":["pow","posa","opas"]},"196":{"input":[3,7,8],"tlp":["eop",677],"trp":["ope",1301],"trw":["pope",55],"lp":["eop","epo","ep-","ep-e","eopo"],"rp":["ope","peo","peop","-op","o-op","-ope","oope","-p","o-p","poe","p-","p-e","pope","oppe"]},"197":{"input":[1,3,7,8],"tlp":["eapo",51],"trp":["opea",193],"lp":["eapo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",118],"trp":["pose",49],"lp":["dop","epso","espo","epos"],"rp":["pose","oped","osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gp",235],"trp":["pot",2175],"lp":["gp","top"],"rp":["pot","pott","pog","opt","opot","pto","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",1897],"trp":["poga",242],"tlw":["fopap",36],"trw":["papot",116],"lp":["apot","apto","gpa","fop","fopa"],"rp":["poga","pag","pota","pato","paga","opf","pfo","opta"]},"202":{"input":[2,4,7,8],"tlp":["csop",415],"trp":["pcso",700],"tlw":["csopp",40],"lp":["csop","coop"],"rp":["pcso","post"]},"203":{"input":[1,2,4,7,8],"tlw":["csapott",121],"trw":["papsag",47],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1475],"trp":["pro",2619],"tlw":["gep",120],"trw":["por",106],"lp":["rop","rope","ropp","gep","egp","g'","roop","ro-p","gepe","gpe"],"rp":["pro","por","port","oper","opor","prog","pero","prot","ppor","ppro"]},"205":{"input":[1,3,4,7,8],"tlw":["apro",445],"trw":["poeta",81],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["troops",160],"trw":["process",152],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["gaspar",102],"trw":["power",166],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",35377],"trw":["up",463],"lp":[],"rp":["mo","om","mon","mu","mun","pu","up","omo","pon","nom","omm","oup","um","mpo","omp","onom","mpon","num","pom","upo"]},"209":{"input":[1,5,7,8],"tlp":["amo",1826],"trp":["oma",2710],"trw":["napon",471],"lp":["amo","amu","apon","apu","amon","anom","apun"],"rp":["oma","napo","oman","upa","upan","onap","omma","ompa","uma","uman","omam","onma","mano"]},"210":{"input":[2,5,7,8],"tlp":["sup",1243],"trp":["mos",10693],"tlw":["sum",38],"trw":["mos",122],"lp":["sup","som","somo","spon","supp"],"rp":["mos","pus","moso","oms","mus","ups","oups","usp","mso","pusp","uspo","pons","omj","osm","pson"]},"211":{"input":[1,2,5,7,8],"tlw":["samu",63],"trw":["pompas",221],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",963],"trp":["yom",2209],"trw":["unnep",70],"lp":["epu","empo","emu","emo","emon"],"rp":["yom","ome","nyom","yomo","-m","omme","opme","ompe","mue","ymu","onym","nymu","memo","omen","ume"]},"213":{"input":[1,3,5,7,8],"trw":["nyoman",158],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",472],"trw":["modon",602],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["adom",249],"trw":["mondja",3298],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2250],"trp":["mut",1499],"tlw":["gomb",66],"trw":["mogott",467],"lp":["tom","gm","gom","gmo","gmon","bom"],"rp":["mut","pont","omb","mog","mbo","mogo","mong","mot","pub","put","mbom","ogom","umb","numb"]},"217":{"input":[1,4,5,7,8],"tlw":["among",360],"trw":["maga",4082],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",147],"trw":["most",8125],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["csupan",725],"trw":["magas",697],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["engem",1555],"trw":["meg",36148],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",2513],"trw":["magyar",4376],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["tudom",1658],"trw":["mondott",476],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["egymast",707],"trw":["mondta",2475],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3315],"trw":["pl",264],"lp":[],"rp":["pl","pil","pill","pol","plo","poli","opl","lop","lp","opi","poi","ipo","ipl","lip","ilip","lopo","pipo","lipo","lpi","opol"]},"225":{"input":[1,6,7,8],"tlp":["alap",1705],"trp":["lap",2645],"tlw":["alap",49],"trw":["pal",363],"lp":["alap","zpo","alp","zapo","apol"],"rp":["lap","pal","palo","lapo","pla","opai","ppal","llap","pala","ozp","ozpo","poz","pozi","lapi","pali"]},"226":{"input":[2,6,7,8],"tlp":["spok",377],"trp":["pok",1363],"trw":["pokol",157],"lp":["spok","sipo"],"rp":["pok","poko","kop","kopo","pko","posi","lisp","ipok","pkol","plok","oisp"]},"227":{"input":[1,2,6,7,8],"tlw":["alapos",56],"trw":["papok",148],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",632],"trp":["lep",2067],"trw":["people",540],"lp":["eopl","elep","elop","elp","epel","epl","eplo"],"rp":["lep","ple","pel","lepe","ople","iple","-pi","o-pi","pole","lepo","ppel","ilep","leop"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",44],"trw":["peoples",92],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["eposz",50],"trw":["kozepso",112],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",149],"trp":["pig",452],"trw":["lopott",92],"lp":["topi","gpi","gpil"],"rp":["pig","polg","ipot","ptol","opti","lpig","pito","lopt","opv","lopv"]},"233":{"input":[1,4,6,7,8],"tlw":["allapot",76],"trw":["palota",179],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["topic",99],"trw":["kopott",78],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["csapatok",70],"trw":["kapott",697],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["lepett",361],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["alapveto",130],"trw":["polgari",178],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["csoportok",138],"trw":["pedig",6327],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["co-operative",438],"trw":["pasztor",331],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",13260],"trw":["mino",264],"lp":[],"rp":["lm","lom","mil","mul","lmi","ml","lmo","mpl","mol","pul","hom","miu","mplo","plom","omol","mli","lmu","hop","lmon","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alom",310],"trw":["hozzam",615],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",66],"trw":["miklos",345],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["alapjan",546],"trw":["munka",592],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elem",115],"trw":["mely",4580],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amely",1640],"trw":["mihaly",309],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["selyem",203],"trw":["midon",1554],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["amelyek",644],"trw":["masodik",891],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["mig",2990],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["valami",3022],"trw":["lattam",817],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["cimu",318],"trw":["much",250],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"trw":["maganak",843],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["velem",847],"trw":["mellett",2095],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["amelyet",615],"trw":["harom",3127],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gyermek",947],"trw":["mikor",6075],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["amikor",2030],"trw":["magyarok",775],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",383],"tlw":["a",307731],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",24364],"tlw":["s",39563],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",66595],"tlw":["was",3404],"lp":["as","sa","ass","wa","asa","was","sas","ssa","assa","sass","aw","sasa","awa","ws","saw","sw","ww","asas","aws","www"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",3291],"tlw":["e",6340],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",12313],"tlw":["x",109],"lp":["ea","ex","ae","xa","exa","xe","exe","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",161633],"tlw":["es",60379],"lp":["es","de","se","ed","ese","des","ede","ess","dd","sse","edes","ds","esse","edd","dese","ses","sed","sd","eed","ded"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",36504],"tlw":["we",1547],"lp":["ad","da","ada","we","das","add","sad","sada","ase","ead","dasa","ew","ade","adas","ads","dea","eas","asd","esa","desa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",111811],"tlw":["t",315],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",110634],"tlw":["at",3435],"lp":["ta","at","att","tta","ata","fa","tat","atta","tata","af","ft","ff","tatt","aft","fat","atat","tf","aff","afa","ffa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["cs",52385],"tlw":["c",503],"lp":["cs","st","ts","ct","cc","tc","sc","scs","tts","sts","csc","cscs","cts","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["csa",25323],"tlw":["fact",237],"lp":["csa","ac","ca","ast","tas","acs","sta","ats","atas","sat","csas","cas","tw","act","tsa","cat","stat","cast","tasa","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",141919],"tlw":["te",4722],"lp":["er","et","te","re","rt","ett","ere","ert","ete","tet","tte","ette","rr","ter","tett","rte","etet","ret","erte","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",117406],"tlw":["arra",2662],"lp":["ar","ra","fe","ara","art","tar","rta","tart","rat","arr","fr","rra","fer","arta","ef","ate","arra","arat","tra","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rs",15788],"tlw":["este",960],"lp":["rs","dt","rd","res","ste","est","tes","erd","ce","rde","ec","rc","erde","ers","eres","set","cse","det","etes","este"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dta",9305],"tlw":["were",1692],"lp":["dta","adt","rad","arad","ars","rsa","arc","adta","sar","tars","arsa","wer","ras","radt","dar","ard","were","dat","dra","rsad"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",30933],"trw":["n",210],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",171406],"trp":["na",74976],"tlw":["an",1125],"trw":["na",433],"lp":["an","ann","ana","anna","anan"],"rp":["na","nna","nan","nnan","nana","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2399],"trp":["ns",7890],"trw":["j",225],"lp":["sn"],"rp":["ns","jj","nj","js","jn"]},"19":{"input":[1,2,5],"tlp":["aj",26099],"trp":["ja",44839],"tlw":["aj",46],"trw":["jaj",1254],"lp":["aj","aja","san","ans","saj","saja","sna","asn","asna","wn","ajan","ssan","ajn","ajna"],"rp":["ja","jan","jaj","nas","jna","jana"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",192896],"trp":["ne",139773],"tlw":["en",13217],"trw":["ne",6355],"lp":["en","enn","eny","ene","enne","enye","ey","enny","een"],"rp":["ne","ny","ye","yen","nne","nye","nny","yn","yne","nen","nyn"]},"21":{"input":[1,3,5],"tlp":["any",20653],"trp":["ya",37836],"tlw":["any",460],"lp":["any","ane","ean","anya","eany","anny","ay","anyn","ena","enna","eq"],"rp":["ya","yan","nya","yna","yana","yany","nyna","yea","ynya"]},"22":{"input":[2,3,5],"tlp":["den",14339],"trp":["nd",76373],"tlw":["ej",386],"trw":["need",144],"lp":["den","dj","ej","sen","end","eje","esen","dn","ende"],"rp":["nd","nde","je","nden","ys","ndj","jd","yes","yj","nse","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",17737],"trp":["ndja",5958],"tlw":["and",12896],"trw":["new",369],"lp":["and","dja","ajd","adj","dan","adn","adja","dna","sand","anyj","day","way","ande"],"rp":["ndja","nda","yas","yja","ndan","nyja","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",33278],"trp":["nt",65227],"tlw":["b",333],"lp":["bb","tn","tb","bn","bbn","bt"],"rp":["nt","nb","ntb","nnt","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",46116],"trp":["nat",3727],"tlw":["abban",1391],"lp":["ba","ab","ban","tan","aba","abb","ant","aban","bba","bban","abba","bat","tana","anat","atn"],"rp":["nat","nta","nba","nban","nf"]},"26":{"input":[2,4,5],"tlp":["tj",4670],"trp":["nc",13855],"tlw":["stb",576],"lp":["tj","sb","bs","stb","bbs","cb","bj","sbb","csb","csn"],"rp":["nc","ncs","jt","nst","nts","jb","nbs","ntj","jts","jtj"]},"27":{"input":[1,2,4,5],"tlp":["ajt",5087],"trp":["jat",5127],"tlw":["sajat",1345],"lp":["ajt","tja","ajta","anc","ajat","atj","atja","baj","can","ancs","faj","fj","sab","sba","bac","sabb"],"rp":["jat","jta","jab","jaba"]},"28":{"input":[3,4,5],"tlp":["be",65601],"trp":["nte",8707],"tlw":["be",6609],"lp":["be","ben","ent","ten","eb","ber","rn","ebe","ren","ebb","ty","bbe","eben","ry","bet","rten"],"rp":["nte","yet","yt","yer"]},"29":{"input":[1,3,4,5],"tlp":["ran",8885],"trp":["yar",8550],"tlw":["bar",1464],"trw":["natty",172],"lp":["ran","bar","aran","arn","rany","tya","aty","rna","fen","rab","atya","bara","rba","arna","ary","rant"],"rp":["yar","yat","yf","yta"]},"30":{"input":[2,3,4,5],"tlp":["sten",4933],"trp":["ndt",3578],"tlw":["esetben",368],"lp":["sten","rj","bes","rend","enc","seb","renc","csen","dent","sebb","bec","ejet","erj","tend","encs"],"rp":["ndt","ncse","nce","jet","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["rajta",1591],"trw":["jart",812],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2593],"trw":["i",2017],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",158164],"trp":["ia",19708],"tlw":["az",99800],"lp":["az","za","zi","ai","zz","aza","zza","zaz","azz","azza","azi","zaza","zia","azaz","zai"],"rp":["ia","iz","iai","iza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",22088],"trp":["is",89346],"tlw":["si",71],"trw":["is",40982],"lp":["si","sk","sik","sis","ssi","ski"],"rp":["is","ki","ik","kk","kis","kik","iss","ks","isk","kiss","isi","iki","ksi","ikk"]},"35":{"input":[1,2,6],"tlp":["sz",176990],"trp":["ka",44404],"tlw":["aki",3851],"trw":["iszik",209],"lp":["sz","ak","sza","sak","ssz","szi","aka","asz","aki","zs","akk","assz","zik","wi","asi","ssza","szik","zsa"],"rp":["ka","isz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",6348],"trp":["ie",7511],"lp":["ei","eei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",100252],"trp":["ize",2949],"tlw":["ez",13097],"trw":["ize",69],"lp":["ze","ez","eze","aze","zze","ezz","ezze","ezi","eza","xi","zei","ezei","zez","zeze","ezai","xix","xii"],"rp":["ize","ix","izze"]},"38":{"input":[2,3,6],"tlp":["ek",80676],"trp":["ke",88251],"tlw":["did",582],"trw":["ide",1572],"lp":["ek","di","eke","eki","edi","dik","dek","ddi","ekk","sek","ske","sid"],"rp":["ke","id","ide","ked","kes","ike","ise","kek"]},"39":{"input":[1,2,3,6],"tlp":["sze",62411],"trp":["kez",11007],"tlw":["ezek",1919],"trw":["kezd",305],"lp":["sze","esz","esze","zd","zek","ezd","ezek","ssze","azd","zda","azda","szek","dez","adi","zeke","zes"],"rp":["kez","keze","kezd","isze"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",26187],"trp":["it",48328],"tlw":["ti",467],"trw":["itt",6106],"lp":["ti","vi","tv","vit","tit","tiv","vitt","vv","tti","vt","vii","viii"],"rp":["it","iv","itt","iti","ivi","itv","ivt","itiv"]},"41":{"input":[1,4,6],"tlp":["va",85476],"trp":["if",3685],"tlw":["azt",15369],"trw":["if",856],"lp":["va","zt","azt","fi","zta","av","ava","fia","azta","ati","ziv","vat","zat","viz","tva","tiz","fiat"],"rp":["if","iat","iva"]},"42":{"input":[2,4,6],"tlp":["csi",6831],"trp":["ic",8214],"tlw":["cit",131],"trw":["kit",1125],"lp":["csi","ci","vis","tk","viss","tis","sti","stv","sit","tik"],"rp":["ic","ist","kiv","ics","kit","kt","kic","kics","its","icsi"]},"43":{"input":[1,2,4,6],"tlp":["csak",20970],"trp":["kat",7650],"tlw":["csak",17322],"lp":["csak","szt","tak","cz","wit","tsz","vas","aszt","szta","sziv","tisz","atsz","czi","ttak","visz","cia"],"rp":["kat","iszt","kiva","kta"]},"44":{"input":[3,4,6],"tlp":["ve",74884],"trp":["ir",33168],"tlw":["vette",950],"trw":["irt",530],"lp":["ve","ri","ev","eve","vet","ver","rv","eri","eti","vett","tve","eir","rve","evet"],"rp":["ir","ive","ire","irt","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["zer",25432],"trp":["ira",15949],"tlw":["ezt",5966],"lp":["zer","zet","ezt","zere","var","zte","ezet","zett","ari","zert","ezte","vez","ria","zar","ezer","azer","rva","veze","zeri"],"rp":["ira"]},"46":{"input":[2,3,4,6],"tlp":["tek",13729],"trp":["ket",19030],"tlw":["vers",850],"trw":["ket",6195],"lp":["tek","ves","dv","rk","eket","rek","erek","dve","edv","edve","ttek","vid"],"rp":["ket","ker","kir","kere","iste","kerd","kedv","kr"]},"47":{"input":[1,2,3,4,6],"tlw":["akar",1873],"trw":["kezet",1015],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",100465],"trw":["in",9209],"lp":[],"rp":["in","ni","hi","nin","nni","hin","inn","ih","hh","ini","nh","inni","inh","hn","hinn","nii","hni","nini","hih","nnin"]},"49":{"input":[1,5,6],"tlp":["ah",5695],"trp":["ha",99222],"tlw":["ah",347],"trw":["ha",15507],"lp":["ah","zn","ani","zin","zan","zni","zna","ain","azan","aha"],"rp":["ha","han","haz","haza","ian","ina","nz","hia","nia","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",3147],"trp":["nk",18980],"trw":["his",3359],"lp":["sin","sh","sni"],"rp":["nk","his","kin","nki","kn","ink","nik","nis","ij","kh","ins","ish","ikn","nkin","kikn","nsi","jh"]},"51":{"input":[1,2,5,6],"tlp":["wh",5945],"trp":["nak",17010],"tlw":["annak",3112],"trw":["hisz",637],"lp":["wh","szin","anak","szn","zaj","ank","whi","sina","aszn","szaj"],"rp":["nak","nka","nnak","has","haj","jak","hisz","kan","inka","hasz"]},"52":{"input":[3,5,6],"tlp":["eh",18062],"trp":["he",78848],"tlw":["enni",263],"trw":["he",3277],"lp":["eh","ehe","enni","eni","enyi","ein"],"rp":["he","yi","nyi","nnyi","ine","neh","hey","hen","hei","yh","nehe","inne","ien","nyh"]},"53":{"input":[1,3,5,6],"tlp":["zen",10585],"trp":["hane",4811],"tlw":["ezen",1479],"trw":["nehany",1282],"lp":["zen","eha","ezen","enz","ehan","ehez","zne","ezn","ezni"],"rp":["hane","nez","neha","hany","hez","yha","izen","neze","yz","yze","yez"]},"54":{"input":[2,3,5,6],"tlp":["enk",5048],"trp":["nek",29850],"tlw":["ennek",2112],"trw":["neki",6003],"lp":["enk","enek","enki","dni","senk"],"rp":["nek","ind","inde","neki","yek","neke","ken","yik","nnek","ndi","indi","inek","kine","nke","kne"]},"55":{"input":[1,2,3,5,6],"tlw":["when",993],"trw":["had",1905],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",71797],"trp":["int",32779],"tlw":["th",242],"trw":["hit",168],"lp":["th","bi","thi","bbi","tni","tth","vin","thin"],"rp":["int","ith","nth","inth","ib","ht","nti","hiv","hit","nv","hitt","nit"]},"57":{"input":[1,4,5,6],"tlp":["van",18634],"trp":["hat",22178],"tlw":["van",11948],"trw":["hat",6837],"lp":["van","tha","that","biz","ztan","zb","zab","ath","vab","vabb","zaba","zint","tvan","vann"],"rp":["hat","hata","ntha","hav","ivan","hab"]},"58":{"input":[2,4,5,6],"tlp":["ch",5920],"trp":["inc",7312],"tlw":["this",2307],"trw":["nincs",3085],"lp":["ch","this","csin","sinc","chi","bis"],"rp":["inc","incs","ninc","kb","kint","ich","hic","hich","nci","hist","nsti","inst","itj","nkit"]},"59":{"input":[1,2,4,5,6],"tlw":["with",3691],"trw":["inkabb",1478],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",47933],"trp":["het",10465],"tlw":["the",34738],"trw":["het",978],"lp":["the","ehet","ven","rin","ther","they","rint","teh","erin","thei","bir"],"rp":["het","her","inte","nev","neve","hete","hir","heir","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["tehat",2571],"trw":["have",1230],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",599],"trw":["isten",2805],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["szerint",2186],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1820],"trw":["o",10573],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",760],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",41762],"trp":["os",59448],"tlw":["so",930],"trw":["os",131],"lp":["so","sos","soso","sso","soo"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",4417],"trp":["osa",3764],"lp":["aso","wo","asos","swo","woo","asso"],"rp":["osa","ow","ossa","owa","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1230],"trp":["-e",3142],"trw":["-",1439],"lp":["eo","e-","e-o"],"rp":["-e","oe","o-","-o","o-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",237],"trp":["-a",532],"trw":["-a",180],"lp":["a-","a-e","xo"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",41052],"trp":["od",15802],"tlw":["eso",376],"trw":["-es",254],"lp":["do","sod","dos","eso","dod","edo","d-","d-e","sose"],"rp":["od","ose","odo","ode","od-","od-e","odes","ood","osse","-d","-es"]},"71":{"input":[1,2,3,7],"tlp":["ado",4227],"trp":["oda",6077],"tlw":["ado",161],"trw":["oda",2095],"lp":["ado","soda","asod","dow","easo","doa","dosa","as-","ados","wood","adod","ewo"],"rp":["oda","owe","odas","-as","odaa","owed","-oda","odae"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",78142],"trp":["og",80035],"tlw":["to",11182],"trw":["ott",6355],"lp":["to","go","tot","tott","got","gt","gg","tto","gott","gto","tog"],"rp":["og","ot","ott","ogo","ogt","ogot","oto","ogto","otot"]},"73":{"input":[1,4,7],"tlp":["ag",87943],"trp":["of",19703],"tlw":["fog",1642],"trw":["of",16836],"lp":["ag","ga","fo","aga","ato","fog","ago","gat","agat","atot","agot","gta","foga","gf","fogo","agg"],"rp":["of","otta","oga","ota"]},"74":{"input":[2,4,7],"tlp":["cso",6549],"trp":["ost",9595],"tlw":["sot",1437],"lp":["cso","co","tos","gs","sot","gos","sto","sg","csos","csot","soc","cco","cto","ttos","sog"],"rp":["ost","oc","ocs","ogs","osto"]},"75":{"input":[1,2,4,7],"tlp":["sag",7512],"trp":["osag",1075],"tlw":["two",477],"lp":["sag","agos","sago","gas","atos","asag","agas","tosa","acso","ssag","tsag","gosa","two","saga","sga","gsa","ags"],"rp":["osag","oca","ocsa"]},"76":{"input":[3,4,7],"tlp":["eg",183750],"trp":["or",88200],"tlw":["eg",697],"trw":["oreg",2917],"lp":["eg","ro","ge","ege","reg","tor","gr","get","ero","tort","eget","rto","teg","rg","ger"],"rp":["or","ore","oro","ort","oreg"]},"77":{"input":[1,3,4,7],"tlp":["aro",14078],"trp":["ora",5234],"tlw":["for",3067],"trw":["ora",808],"lp":["aro","for","gar","rag","arto","fro","ega","rof","grof","egf","gra","arg","aror","taro","forr","rga","efo","arag"],"rp":["ora","orra"]},"78":{"input":[2,3,4,7],"tlp":["seg",14126],"trp":["ors",6702],"tlw":["eros",707],"trw":["ordog",649],"lp":["seg","ges","eges","ros","sege","dot","dott","rdo","deg","sor","dor","dog","ged","eseg","ross","tseg","egs","eros"],"rp":["ors","ord"]},"79":{"input":[1,2,3,4,7],"tlw":["adott",1280],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",101004],"trw":["on",3707],"lp":[],"rp":["on","un","no","ou","onn","nu","ono","oun","non","uno","nno","nnu","unn","nnon","nun","nnun","uo","onu","nou","oon"]},"81":{"input":[1,5,7],"tlp":["ano",4244],"trp":["ona",5750],"tlw":["au",143],"trw":["onnan",503],"lp":["ano","au","anu","qu","anno","anon","qua","anua"],"rp":["ona","onna","ua","una","uan","oan","unan","onan","nua","onq","nqu","onqu"]},"82":{"input":[2,5,7],"tlp":["su",6983],"trp":["jo",26548],"tlw":["son",366],"trw":["jo",6226],"lp":["su","son","ssu"],"rp":["jo","us","ju","uj","nos","jon","ons","onos","jos","oj","ous","jonn","jus","jjo","jjon","joj","jun"]},"83":{"input":[1,2,5,7],"tlp":["anos",2908],"trp":["jano",2283],"tlw":["sajnos",113],"trw":["janos",2073],"lp":["anos","ajo","ason","wou","aus","ajos","aju","asu","ajjo"],"rp":["jano","osan","own","now","uja","usa","onas","ujsa","oja","ujja","jua"]},"84":{"input":[3,5,7],"tlp":["eu",1868],"trp":["yo",25659],"tlw":["eu",103],"trw":["one",972],"lp":["eu","enu"],"rp":["yo","ony","yu","nyo","yon","nyu","onyo","one","ue","y-","onny","y-e","onne","yun","uny","you","yony","oen"]},"85":{"input":[1,3,5,7],"tlp":["anyo",2334],"trp":["unya",473],"tlw":["que",241],"trw":["-an",97],"lp":["anyo","que","an-","an-e","equ","equa","anyu","aux","eque","quee"],"rp":["unya","onya","-na","yano","oya","yanu","yona","-an","nque","ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7212],"trp":["ond",20755],"tlw":["du",322],"trw":["und",201],"lp":["du","don","endo","edu"],"rp":["ond","ud","ndo","ondo","udo","ondj","yos","und","nyos","udj","udn","ndu","osen","use","yedu","unde"]},"87":{"input":[1,2,3,5,7],"tlw":["adjon",401],"trw":["odaadja",48],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",26336],"trp":["ut",29088],"tlw":["tobb",2199],"trw":["not",2568],"lp":["tu","bo","tob","tobb","gon","bu","gu","ton","gn"],"rp":["ut","ob","ng","ug","obb","ont","uto","not","onb","nto","ung"]},"89":{"input":[1,4,5,7],"tlp":["ang",4181],"trp":["nag",18488],"tlw":["about",409],"trw":["utan",3611],"lp":["ang","fu","abo","gan","gab","gna","aton","tona","ango","agu","gaba"],"rp":["nag","uta","utan","oba","nga","unga","onba","utat","obba"]},"90":{"input":[2,4,5,7],"tlp":["gj",3961],"trp":["job",3981],"tlw":["bus",289],"trw":["jott",1407],"lp":["gj","csu","cou","sob","con","cson","sobb"],"rp":["job","jobb","jot","jott","jto","ntos","ust","uc","jut","ogj","ujt","jtot","juto"]},"91":{"input":[1,2,4,5,7],"tlw":["fogja",947],"trw":["jobban",1258],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gy",213097],"trp":["ogy",60410],"tlw":["egy",31147],"trw":["ugy",8993],"lp":["gy","egy","gye","gyo","egye","ru","gen","egen","gyon","geny","gyu","eng","gyen","enge","bor"],"rp":["ogy","ur","ugy","oru","nge"]},"93":{"input":[1,3,4,5,7],"tlw":["baro",394],"trw":["nagy",10563],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["tudott",1092],"trw":["ures",337],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["tudja",1421],"trw":["ujra",1374],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ol",117661],"trw":["l",1029],"lp":[],"rp":["ol","lo","ll","il","li","io","ill","llo","olo","lol","oi","oll","oli","lli","ili","illi","ilo","ollo","iol","lio"]},"97":{"input":[1,6,7],"tlp":["al",141761],"trp":["la",89690],"tlw":["all",2554],"trw":["la",881],"lp":["al","zo","ala","all","alo","azo","zol","alal","alla","zal","ali","allo"],"rp":["la","oz","ozo","lal","lla","ila","ola","ozz"]},"98":{"input":[2,6,7],"tlp":["sok",10043],"trp":["ko",67727],"tlw":["sok",3390],"trw":["ok",1198],"lp":["sok","sol","sko"],"rp":["ko","ok","lk","ls","iko","kko","lso","oko","kol","los","lko","lok","kos","lis","lik","kl","ols"]},"99":{"input":[1,2,6,7],"tlp":["szo",28916],"trp":["koz",17882],"tlw":["azok",1917],"trw":["law",597],"lp":["szo","zok","akko","szol","sszo","alk","azok","ako","soka","szok"],"rp":["koz","osz","oka","las","ossz","kozo","lak","kal","ozs","lasz"]},"100":{"input":[3,6,7],"tlp":["el",185226],"trp":["le",131988],"tlw":["el",11925],"trw":["le",3722],"lp":["el","ele","ell","elo","elle","eli","elel","elol"],"rp":["le","lle","lel","ole","ille","lole","lele","ile","lelo","olle","-i","lei"]},"101":{"input":[1,3,6,7],"tlp":["zel",9993],"trp":["lea",5723],"tlw":["ezzel",1164],"trw":["lexi",93],"lp":["zel","ezo","zele","ela","zzel","zle","zelo","zell","ale","alle","zeli","eal","ezel","elz","ezal","azel","elal"],"rp":["lea","oze","ozel"]},"102":{"input":[2,3,6,7],"tlp":["dol",7310],"trp":["ld",13454],"tlw":["elso",2743],"trw":["kell",5494],"lp":["dol","elk","els","elso","del","eles","elke","dok"],"rp":["ld","kel","les","kell","old","ido","oke","lek","lke","ldo","led","lese"]},"103":{"input":[1,2,3,6,7],"tlw":["szel",525],"trw":["lesz",3740],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",40145],"trp":["lt",63226],"tlw":["volt",20311],"trw":["ivott",154],"lp":["vo","vol","volt","gi","tl","tol","vil","tio","gl"],"rp":["lt","ig","olt","ov","lot","lott","lv","lg","olg","lto","lit"]},"105":{"input":[1,4,6,7],"tlp":["val",23257],"trp":["lat",20885],"tlw":["alatt",3368],"trw":["igaz",1408],"lp":["val","tal","vag","alt","fol","vala","zot","tala","zott","gaz","alat","alta","valo"],"rp":["lat","lta","latt","ova","lag","ozot","olta"]},"106":{"input":[2,4,6,7],"tlp":["tok",4349],"trp":["kot",3836],"tlw":["titkos",290],"trw":["kolto",379],"lp":["tok","gis","gok","tko","gk","tols"],"rp":["kot","kov","lc","olc","okt","lcs","kolt","loc","olcs","koc","icso","kott","okot","oci"]},"107":{"input":[1,2,4,6,7],"tlw":["voltak",2244],"trw":["kozott",2109],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vel",12822],"trp":["let",20248],"tlw":["elott",2567],"trw":["lett",3000],"lp":["vel","tel","egi","elt","veg","elet","vele","rol","tle","elot","tele"],"rp":["let","leg","lett","llet","ove","lte","lete","lev","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",5055],"trw":["left",288],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["ekkor",1030],"trw":["kellett",2170],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["akkor",5794],"trw":["orszag",966],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",91631],"trw":["hol",3321],"lp":[],"rp":["ho","ul","ln","oln","hol","hu","lu","lon","oh","ulo","ion","hun","ulon","lni","iu","hon","nl","nul","oul","uh"]},"113":{"input":[1,5,6,7],"tlp":["zon",17866],"trp":["lan",11536],"tlw":["azon",1845],"trw":["hozza",2127],"lp":["zon","zu","azon","alan","aho","zul","alu"],"rp":["lan","hal","lna","olna","hoz","nal","hall","hozz","oha","uz","izon","hala","llan"]},"114":{"input":[2,5,6,7],"tlp":["soh",2706],"trp":["ku",14889],"trw":["jol",2741],"lp":["soh","sul","sho"],"rp":["ku","kul","unk","uk","lj","kon","kulo","hos","jol","lku","lkul","juk","hus","hoss","konn","uks","nok"]},"115":{"input":[1,2,5,6,7],"tlw":["soha",1668],"trw":["kozul",1472],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",25178],"trp":["ly",62035],"tlw":["ellen",1350],"trw":["oly",2731],"lp":["ely","elye","elen"],"rp":["ly","len","lye","oly","leh","lehe","ily","lyen","hel","hely","ilye","llen","nel","ule","lyi","yel","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["equal",129],"trw":["olyan",5589],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ejjel",683],"trw":["nelkul",2214],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["asszony",2441],"trw":["kisasszony",460],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["voln",8076],"trp":["hog",60062],"tlw":["tobbi",901],"trw":["otthon",874],"lp":["voln","bol","gh","tion","bl","tho","tul","gin","vu","ght","gint"],"rp":["hog","ult","ing","hung","oth","obbi","lonb","lob","ivu"]},"121":{"input":[1,4,5,6,7],"tlw":["volna",7681],"trw":["hova",947],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",497],"trw":["king",1415],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["viszont",558],"trw":["ifju",760],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bele",1164],"trw":["hogy",55048],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagy",8524],"trw":["horvath",1175],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["egyik",2647],"trw":["korul",1156],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["vagyok",3023],"trw":["kiraly",5259],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",4972],"trw":["p",636],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22391],"trp":["pa",18427],"tlw":["apa",231],"trw":["pap",604],"lp":["ap","apa","app","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",1610],"trp":["ps",1710],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",895],"trp":["pas",1331],"trw":["pas",147],"lp":["sap","sapa","spa","aps","apas","asp","aspa","apsa"],"rp":["pas","pass","pasa","psa","paps"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",23212],"trp":["pe",28344],"tlw":["epp",420],"trw":["'",39],"lp":["ep","epe","epp","eppe","eep","e'"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1036],"trp":["pea",574],"tlw":["a'",897],"lp":["ape","a'","xp","exp","appe","xpe","expe","eap","epa"],"rp":["pea","ppea","pape"]},"134":{"input":[2,3,8],"tlp":["epes",1628],"trp":["ped",6768],"trw":["'s",163],"lp":["epes","eps","spe","esp","sep","sepp","epse","espe","desp","s'","s's","epd","dep"],"rp":["ped","pes","'s","pess","pse","pese","pd"]},"135":{"input":[1,2,3,8],"tlp":["dap",867],"trp":["pad",901],"tlw":["apad",98],"trw":["passed",66],"lp":["dap","dape","apes","apad","esap","weap","spea","as'","as's","aped"],"rp":["pad","peda","peas"]},"136":{"input":[4,8],"tlp":["tp",115],"trp":["pt",1949],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",1138],"trp":["pta",935],"tlw":["apat",58],"trw":["papat",43],"lp":["apt","apta","apat","tap","tapa","apf"],"rp":["pta","pat","pf","pata"]},"138":{"input":[2,4,8],"trp":["pc",781],"lp":[],"rp":["pc","pcs"]},"139":{"input":[1,2,4,8],"tlp":["apc",704],"trp":["past",91],"tlw":["csapat",159],"trw":["past",91],"lp":["apc","apcs","csap","cap","sapt","capt","scap","spac"],"rp":["past","pcsa","pac"]},"140":{"input":[3,4,8],"tlp":["epet",1843],"trp":["pr",5345],"trw":["peter",932],"lp":["epet","rep","rp","erep","ept","repe","tep","epte","epr","epre"],"rp":["pr","per","pet","pete","pre","pett","pte","pere","ppet","ppr"]},"141":{"input":[1,3,4,8],"tlp":["apr",954],"trp":["par",5757],"tlw":["expert",89],"trw":["par",1156],"lp":["apr","arp","rpa","arpa","apra","rap","xper","appr","aper","apte","erap"],"rp":["par","part","para","pera","pra","pfe","pear","perf","pate"]},"142":{"input":[2,3,4,8],"tlp":["step",391],"trp":["pest",1888],"tlw":["csepp",134],"trw":["pest",218],"lp":["step","spec","csep","resp","cep","cept","epc","epcs","r's","er's","rdep","spr"],"rp":["pest","pers","perc","pres","pec","pecs","pect","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["arpad",569],"trw":["peace",107],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",5907],"trw":["m",703],"lp":[],"rp":["mm","mp","pn","nm","mn","pm","np","nnm"]},"145":{"input":[1,5,8],"tlp":["am",53502],"trp":["ma",92967],"tlw":["am",1222],"trw":["ma",3061],"lp":["am","ama","apam","amp","apn","amn","amna"],"rp":["ma","nap","man","pan","nam","mma","pam","mpa","napp","mam","nnap","mna","nma"]},"146":{"input":[2,5,8],"tlp":["sm",4467],"trp":["pj",2668],"lp":["sm"],"rp":["pj","ms","mj","mps"]},"147":{"input":[1,2,5,8],"tlp":["apj",2668],"trp":["mas",14915],"tlw":["apja",679],"trw":["mas",3210],"lp":["apj","apja","sam","snap","sma","amas","span"],"rp":["mas","maj","pja","masn","pjan","napj","mass","jam","paj","mpas","mans","maja","masa"]},"148":{"input":[3,5,8],"tlp":["em",127947],"trp":["me",140514],"tlw":["eppen",1670],"trw":["nem",50476],"lp":["em","eme","emm","epen","emen","emp","enem"],"rp":["me","nem","men","pen","menn","nep","ym","neme","ppen","meny","my","nepe","mem"]},"149":{"input":[1,3,5,8],"tlp":["ame",9265],"trp":["yma",2568],"tlw":["anyam",835],"trw":["many",675],"lp":["ame","anem","amen","ema","xam","exam","xamp","eman","eam"],"rp":["yma","many","yam","nyam","name","may","yama","mea","mean","nema","pean"]},"150":{"input":[2,3,5,8],"tlp":["sem",13924],"trp":["mes",7145],"tlw":["sem",8470],"trw":["nemes",571],"lp":["sem","sme","semm","emes","dem","ems","dnem","esem","deme","ejem","dm","edm"],"rp":["mes","mess","menj","med","mese","mse","jem","nems"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",721],"trw":["majd",4082],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bp",213],"trp":["mb",15442],"tlw":["bp",213],"lp":["bp","tm"],"rp":["mb","mt","pb","mpt"]},"153":{"input":[1,4,5,8],"tlp":["tam",7013],"trp":["mat",4622],"tlw":["babam",244],"trw":["mta",69],"lp":["tam","amb","ttam","amat","tama","bam","amba","abam","fam"],"rp":["mat","mba","mban","mab","maba","pant","matt","mta","ptam","mbat","mant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["csm",290],"trp":["mc",1065],"tlw":["cm",129],"lp":["csm","cm"],"rp":["mc","mcs","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["tamas",235],"trw":["mast",389],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["emb",12508],"trp":["mer",17137],"tlw":["ember",5090],"trw":["mert",10572],"lp":["emb","embe","rm","tem","erm","rme","erme","emet","rem","term","ttem","erem"],"rp":["mer","mbe","mert","mber","ment","met","yerm","mere"]},"157":{"input":[1,3,4,5,8],"tlw":["ram",766],"trw":["mar",14439],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdemes",264],"trw":["mester",269],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["tamadt",304],"trw":["matyas",1445],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",6058],"lp":[],"rp":["pi","ip","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1249],"trp":["pai",741],"tlw":["apai",47],"trw":["papi",72],"lp":["api","zp","apai","zap"],"rp":["pai","ipa","pz","pia","papi","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",214],"trp":["pis",406],"tlw":["sip",39],"lp":["spi","sip"],"rp":["pis","isp","pk"]},"163":{"input":[1,2,6,8],"tlp":["szp",99],"trp":["kap",3878],"trw":["kap",330],"lp":["szp","apsz","szap"],"rp":["kap","pasz","psz","kapi","ispa","pszi","pisz","pak","paks","kaps","psza"]},"164":{"input":[3,6,8],"tlp":["epi",405],"trp":["pie",218],"lp":["epi","epie"],"rp":["pie"]},"165":{"input":[1,3,6,8],"tlp":["zep",7772],"trp":["pze",497],"lp":["zep","zepe","epz","epze","z'","zepi","epez"],"rp":["pze","iz'","pez","pezi"]},"166":{"input":[2,3,6,8],"tlp":["epek",443],"trp":["pedi",6445],"trw":["kepes",493],"lp":["epek","skep","epk","espi"],"rp":["pedi","kep","kepe","kepp","pek","ikep","keep","pies","pied"]},"167":{"input":[1,2,3,6,8],"tlw":["szep",5043],"trw":["kepzes",85],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",62],"trp":["pit",714],"lp":["tip"],"rp":["pit","pv","pvi","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",393],"trp":["pita",305],"trw":["pava",90],"lp":["apit","apv"],"rp":["pita","ipat","pati","pav","pava","pitz","pva"]},"170":{"input":[2,4,6,8],"tlp":["cip",416],"trp":["pist",271],"lp":["cip","spit"],"rp":["pist","pic","icip","pvis","pict","pics"]},"171":{"input":[1,2,4,6,8],"tlw":["csaptak",83],"trw":["kapta",303],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epit",176],"trp":["pri",1125],"tlw":["epitett",92],"lp":["epit","rip","epv","epvi","epve","epir"],"rp":["pri","pir","pve","pite","pvet","piri","peri","prev","petv","pire"]},"173":{"input":[1,3,4,6,8],"trw":["ipari",85],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",105],"trw":["kepet",297],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["szerepet",241],"trw":["persze",601],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",105379],"trw":["mi",6559],"lp":[],"rp":["mi","min","im","mmi","him","mih","imp","ph","pin","hm","imm","mini","pni","mpi","mh","phi","pih","inp","pini","nim"]},"177":{"input":[1,5,6,8],"tlp":["ami",13718],"trp":["mz",2071],"tlw":["ami",1585],"trw":["mai",619],"lp":["ami","zam","amin","zama","zm","zzam","zma"],"rp":["mz","mia","mai","iam","ham","hama","maz","napi","ima","izm","miha","izma","miai"]},"178":{"input":[2,5,6,8],"tlp":["sim",317],"trp":["mik",10073],"trw":["mik",271],"lp":["sim","smi","smin","simp","simi","ship"],"rp":["mik","ism","mis","kim","mink","km","mk","ims","hims","miss","misk","mikn","mmik"]},"179":{"input":[1,2,5,6,8],"tlw":["szama",327],"trw":["masik",2051],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3676],"trp":["mie",2185],"tlw":["enyim",109],"trw":["menni",726],"lp":["emmi","emi","emei","eph","ephe","empi"],"rp":["mie","ime","hem","mine","nemi","imen","mei","meh","phe","phen","mehe","mihe","yim","nepi"]},"181":{"input":[1,3,5,6,8],"tlw":["amennyi",66],"trw":["hanem",4711],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["semmi",1966],"trw":["minden",7752],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["szepen",924],"trw":["messze",712],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1125],"trp":["mint",20757],"trw":["mint",15155],"lp":["tim"],"rp":["mint","mit","miv","mmit","mib","http","mitt","ptim","mmiv","imb","mitv","mmib","nmit","pith"]},"185":{"input":[1,4,5,6,8],"tlw":["amit",1691],"trw":["mintha",2774],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cim",39],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["szamat",111],"trw":["masikat",211],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",1440],"trw":["miert",1425],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["ereztem",268],"trw":["nemzeti",722],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["semmit",1211],"trw":["mindent",1246],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["szamara",1197],"trw":["mindjart",1584],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",11623],"trw":["op",133],"lp":[],"rp":["po","op","opo","opp","oop","ppo","oppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",4028],"trp":["opa",952],"lp":["apo","appo"],"rp":["opa","oppa","papo","opap"]},"194":{"input":[2,7,8],"tlp":["spo",489],"trp":["pos",929],"lp":["spo","sop","sopo","sopp"],"rp":["pos","ops","pso","oops","poss","ppos"]},"195":{"input":[1,2,7,8],"tlp":["apos",470],"trp":["pow",266],"lp":["apos","sapo","apso"],"rp":["pow","posa","opas"]},"196":{"input":[3,7,8],"tlp":["eop",677],"trp":["ope",1301],"trw":["pope",55],"lp":["eop","epo","ep-","ep-e","eopo"],"rp":["ope","peo","peop","-op","o-op","-ope","oope","-p","o-p","poe","p-","p-e","pope","oppe"]},"197":{"input":[1,3,7,8],"tlp":["eapo",51],"trp":["opea",193],"lp":["eapo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",118],"trp":["pose",49],"lp":["dop","epso","espo","epos"],"rp":["pose","oped","osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gp",235],"trp":["pot",2175],"lp":["gp","top"],"rp":["pot","pott","pog","opt","opot","pto","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",1897],"trp":["poga",242],"tlw":["fopap",36],"trw":["papot",116],"lp":["apot","apto","gpa","fop","fopa"],"rp":["poga","pag","pota","pato","paga","opf","pfo","opta"]},"202":{"input":[2,4,7,8],"tlp":["csop",415],"trp":["pcso",700],"tlw":["csopp",40],"lp":["csop","coop"],"rp":["pcso","post"]},"203":{"input":[1,2,4,7,8],"tlw":["csapott",121],"trw":["papsag",47],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1475],"trp":["pro",2619],"tlw":["gep",120],"trw":["por",106],"lp":["rop","rope","ropp","gep","egp","g'","roop","ro-p","gepe","gpe"],"rp":["pro","por","port","oper","opor","prog","pero","prot","ppor","ppro"]},"205":{"input":[1,3,4,7,8],"tlw":["apro",445],"trw":["poeta",81],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["troops",160],"trw":["process",152],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["gaspar",102],"trw":["power",166],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",35377],"trw":["up",463],"lp":[],"rp":["mo","om","mon","mu","mun","pu","up","omo","pon","nom","omm","oup","um","mpo","omp","onom","mpon","num","pom","upo"]},"209":{"input":[1,5,7,8],"tlp":["amo",1826],"trp":["oma",2710],"trw":["napon",471],"lp":["amo","amu","apon","apu","amon","anom","apun"],"rp":["oma","napo","oman","upa","upan","onap","omma","ompa","uma","uman","omam","onma","mano"]},"210":{"input":[2,5,7,8],"tlp":["sup",1243],"trp":["mos",10693],"tlw":["sum",38],"trw":["mos",122],"lp":["sup","som","somo","spon","supp"],"rp":["mos","pus","moso","oms","mus","ups","oups","usp","mso","pusp","uspo","pons","omj","osm","pson"]},"211":{"input":[1,2,5,7,8],"tlw":["samu",63],"trw":["pompas",221],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",963],"trp":["yom",2209],"trw":["unnep",70],"lp":["epu","empo","emu","emo","emon"],"rp":["yom","ome","nyom","yomo","-m","omme","opme","ompe","mue","ymu","onym","nymu","memo","omen","ume"]},"213":{"input":[1,3,5,7,8],"trw":["nyoman",158],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",472],"trw":["modon",602],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["adom",249],"trw":["mondja",3298],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2250],"trp":["mut",1499],"tlw":["gomb",66],"trw":["mogott",467],"lp":["tom","gm","gom","gmo","gmon","bom"],"rp":["mut","pont","omb","mog","mbo","mogo","mong","mot","pub","put","mbom","ogom","umb","numb"]},"217":{"input":[1,4,5,7,8],"tlw":["among",360],"trw":["maga",4082],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",147],"trw":["most",8125],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["csupan",725],"trw":["magas",697],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["engem",1555],"trw":["meg",36148],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",2513],"trw":["magyar",4376],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["tudom",1658],"trw":["mondott",476],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["egymast",707],"trw":["mondta",2475],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3315],"trw":["pl",264],"lp":[],"rp":["pl","pil","pill","pol","plo","poli","opl","lop","lp","opi","poi","ipo","ipl","lip","ilip","lopo","pipo","lipo","lpi","opol"]},"225":{"input":[1,6,7,8],"tlp":["alap",1705],"trp":["lap",2645],"tlw":["alap",49],"trw":["pal",363],"lp":["alap","zpo","alp","zapo","apol"],"rp":["lap","pal","palo","lapo","pla","opai","ppal","llap","pala","ozp","ozpo","poz","pozi","lapi","pali"]},"226":{"input":[2,6,7,8],"tlp":["spok",377],"trp":["pok",1363],"trw":["pokol",157],"lp":["spok","sipo"],"rp":["pok","poko","kop","kopo","pko","posi","lisp","ipok","pkol","plok","oisp"]},"227":{"input":[1,2,6,7,8],"tlw":["alapos",56],"trw":["papok",148],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",632],"trp":["lep",2067],"trw":["people",540],"lp":["eopl","elep","elop","elp","epel","epl","eplo"],"rp":["lep","ple","pel","lepe","ople","iple","-pi","o-pi","pole","lepo","ppel","ilep","leop"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",44],"trw":["peoples",92],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["eposz",50],"trw":["kozepso",112],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",149],"trp":["pig",452],"trw":["lopott",92],"lp":["topi","gpi","gpil"],"rp":["pig","polg","ipot","ptol","opti","lpig","pito","lopt","opv","lopv"]},"233":{"input":[1,4,6,7,8],"tlw":["allapot",76],"trw":["palota",179],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["topic",99],"trw":["kopott",78],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["csapatok",70],"trw":["kapott",697],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["lepett",361],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["alapveto",130],"trw":["polgari",178],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["csoportok",138],"trw":["pedig",6327],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["co-operative",438],"trw":["pasztor",331],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",13260],"trw":["mino",264],"lp":[],"rp":["lm","lom","mil","mul","lmi","ml","lmo","mpl","mol","pul","hom","miu","mplo","plom","omol","mli","lmu","hop","lmon","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alom",310],"trw":["hozzam",615],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",66],"trw":["miklos",345],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["alapjan",546],"trw":["munka",592],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elem",115],"trw":["mely",4580],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amely",1640],"trw":["mihaly",309],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["selyem",203],"trw":["midon",1554],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["amelyek",644],"trw":["masodik",891],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["mig",2990],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["valami",3022],"trw":["lattam",817],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["cimu",318],"trw":["much",250],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"trw":["maganak",843],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["velem",847],"trw":["mellett",2095],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["amelyet",615],"trw":["harom",3127],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gyermek",947],"trw":["mikor",6075],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["amikor",2030],"trw":["magyarok",775],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json index 56265a3572..9c3d3400ff 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",76],"tlw":["a",134646],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",181781],"tlw":["s",689],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",147177],"tlw":["sa",4372],"lp":["sa","as","ssa","ass","assa","asa","sas","wa","sass","ssas","aw","saw","was","awa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2590],"tlw":["e",285768],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",16928],"tlw":["ex",571],"lp":["ea","ae","ex","ax","xe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",299367],"tlw":["se",42825],"lp":["de","se","es","ess","sse","ed","esse","ede","ese","des","dd","sed","edd","dess","sede","edes","ses","sess","dde","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",161213],"tlw":["da",50742],"lp":["da","ad","essa","esa","ade","ada","asse","ase","aes","add","dea","ades","eda","we","aese","seda","ew","sea","adde","aesa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",206553],"tlw":["t",2430],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",338700],"tlw":["fa",5357],"lp":["ta","at","fa","att","tta","tat","ata","ff","fat","fatt","af","atta","tata","aff","ffa","affa","ttat","ffat","tatt","taf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",249453],"tlw":["c",1986],"lp":["st","sc","cc","ts","ct","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",149612],"tlw":["casa",7589],"lp":["ca","sta","ac","acc","stat","cas","asc","fac","cat","cca","ast","sat","sca","casa","facc","sf","acca","asta","tas","ssat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",504768],"tlw":["te",8282],"lp":["er","re","te","tr","et","rt","ere","ett","ter","rr","tre","tte","rte","ert","err","ret","ette","rre","etr","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",368409],"tlw":["era",57211],"lp":["ra","ar","era","are","tra","fe","rat","art","rta","fr","tar","far","ara","eta","etta","fer","tare","arte","ratt","fra"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",118940],"tlw":["essere",13580],"lp":["ce","est","ec","rs","str","rc","res","ser","rd","ste","ers","tes","erc","cr","der","cer","sser","tess","dere","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["sar",25172],"tlw":["testa",5675],"lp":["sar","esta","stra","ard","car","sare","ace","rad","dar","dat","rda","rac","adr","racc","rca","ars","dare","ssar","face","erca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",46289],"trw":["n",1203],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",351085],"trp":["na",191784],"tlw":["an",861],"trw":["na",3153],"lp":["an","ann","ana","anna","anq","anan"],"rp":["na","nq","nna","nan","nnan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","trp":["ns",40629],"trw":["j",428],"lp":[],"rp":["ns","nj","jn"]},"19":{"input":[1,2,5],"tlp":["san",10754],"trp":["nsa",10125],"tlw":["san",820],"lp":["san","ssan","sann","ans","sq","wn","asq","aj","sana","anj","anja","aja"],"rp":["nsa","nas","ja","nsan","nja","nasa","nsas","nass"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",325999],"trp":["ne",240032],"tlw":["en",427],"trw":["ne",18897],"lp":["en","ene","enn","enne","ey","enen","eyn","een","enny","eyne"],"rp":["ne","nne","ny","yn","nny","nen","yne","ye","nyn","nee"]},"21":{"input":[1,3,5],"tlp":["ena",10474],"trp":["nea",2742],"tlw":["aye",382],"lp":["ena","ane","ay","ean","ayn","ayne","enna","eq","anne","anea","aye","aen","eann"],"rp":["nea","nean","yna","nae","nyna","ynae","ya"]},"22":{"input":[2,3,5],"tlp":["sen",39413],"trp":["nd",129982],"tlw":["sen",952],"trw":["nes",163],"lp":["sen","end","ens","den","ende","sens","esen","eden","dend","ssen","dy"],"rp":["nd","nde","nes","ness","nse","nden","je","nsen","nese"]},"23":{"input":[1,2,3,5],"tlp":["and",60721],"trp":["nda",24205],"tlw":["and",382],"trw":["new",833],"lp":["and","anda","ensa","ande","dan","enda","sand","dand","dann","wen","esan","wene","dena","sean","anes","andy"],"rp":["nda","ndan","new","nand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",46376],"trp":["nt",291380],"tlw":["b",526],"lp":["bb","tn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ant",64341],"trp":["nta",37477],"tlw":["tanta",636],"trw":["nata",204],"lp":["ant","tan","ba","ab","tant","abb","ban","anta","fan","bba","bat","abba","batt"],"rp":["nta","nat","nf","ntan","ntat","nata","nfa"]},"26":{"input":[2,4,5],"tlp":["sb",2201],"trp":["nc",80441],"lp":["sb","cn","tsb"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["anc",55675],"trp":["nca",4603],"tlw":["basta",1053],"lp":["anc","can","stan","bas","cant","bast","anca","cq","acq","sant","bbas","bass","ccan","sab","sba","banc"],"rp":["nca","nasc","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["ent",152199],"trp":["nte",100114],"tlw":["bene",6300],"trw":["nere",364],"lp":["ent","ente","be","rn","eb","br","ebb","ten","bbe","ebbe","reb","rebb","entr","ren","ber","ben","ener"],"rp":["nte","ntr","ner"]},"29":{"input":[1,3,4,5],"tlp":["ran",45980],"trp":["nar",8583],"tlw":["entrare",873],"trw":["nera",1031],"lp":["ran","eran","ante","bra","enta","areb","rna","tran","bar","rtan","rant","fran","abbr","erna"],"rp":["nar","ntra","nare","nera","ntar","nfe"]},"30":{"input":[2,3,4,5],"tlp":["sent",16908],"trp":["nce",6484],"tlw":["sebbene",761],"lp":["sent","cen","dent","rend","cent","cend","tend","scen","sten","deb","ecen","cenn","ccen"],"rp":["nce","nder","nec","nece","nest","nces","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["sarebbe",7398],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3469],"trw":["i",56666],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",77724],"trp":["ia",200353],"tlw":["ai",8188],"lp":["zi","za","ai","az","zz","azi","zza","azz","zia","zzi","azza","azzi","aia","azia"],"rp":["ia","iz","izi","izia","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",267038],"trp":["is",117042],"tlw":["si",95698],"trw":["k",250],"lp":["si","ssi","sis","sk","siss","ssis","sii","sisi","ski"],"rp":["is","iss","isi","issi","ki","ik","isk","ks","kik"]},"35":{"input":[1,2,6],"tlp":["sia",18324],"trp":["issa",4411],"tlw":["sia",7163],"trw":["ka",126],"lp":["sia","asi","assi","sai","ak","siz","sizi","ssia","saz","sazi","sias","ssai","aki","wi","asia"],"rp":["issa","isa","ias","iasi","ka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",64002],"trp":["ie",107111],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",20251],"trp":["ize",737],"tlw":["zie",189],"trw":["ix",82],"lp":["ez","ezz","ezza","ze","ezi","zie","azie","zze","ezzi","azze","xi","eaz","eazi","aie","ezze","eez","eze"],"rp":["ize","ix","izie"]},"38":{"input":[2,3,6],"tlp":["di",428636],"trp":["id",39251],"tlw":["di",272620],"trw":["idee",923],"lp":["di","dis","dei","esi","edi","diss","essi","die","sie","sid","side","sei","ddi"],"rp":["id","ide","isse","ied","ise","ies","idi"]},"39":{"input":[1,2,3,6],"tlp":["dia",9487],"trp":["ida",5456],"tlw":["dai",4684],"trw":["idea",948],"lp":["dia","dai","adi","diz","dizi","edia","esia","addi","ake","edai","adiz","aid","disa","aesi","aida","ediz"],"rp":["ida","idea","iesa","idia"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",201674],"trp":["it",120823],"tlw":["ti",13315],"trw":["ivi",381],"lp":["ti","vi","tti","vit","tiv","vv","tit","viv","vvi","ttiv","tivi","vitt"],"rp":["it","iv","itt","iti","ivi","itti","ivit","itiv"]},"41":{"input":[1,4,6],"tlp":["va",190389],"trp":["ita",47351],"tlw":["vita",7521],"lp":["va","av","fi","ava","tav","ati","tava","via","atti","vita","avi","avv","ffi","vat"],"rp":["ita","iva","if","iat","ifi","itta"]},"42":{"input":[2,4,6],"tlp":["ci",164338],"trp":["ic",121416],"tlw":["ci",18525],"lp":["ci","sci","sti","tic","vis","cci","cit","sic","vist","sit","sist","vic","cis","vici"],"rp":["ic","ist","ici","icc","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",31011],"trp":["ica",28164],"tlw":["stava",5638],"lp":["cia","fic","acci","stav","asci","ccia","tica","fici","scia","cav","ffic","cita","aci","cava","ciat","fica"],"rp":["ica","ista","iac","ific"]},"44":{"input":[3,4,6],"tlp":["ri",271321],"trp":["ir",53396],"tlw":["ri",3645],"trw":["ieri",513],"lp":["ri","ve","ev","ver","vev","eri","rit","tri","riv","rri","vr","rti","vre","rv","rie"],"rp":["ir","ire","ive","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",73289],"trp":["iar",12328],"tlw":["aveva",25419],"lp":["eva","ave","veva","avev","ari","ria","rav","avr","aver","avre","arti","raz","riva","teva","rava","rz","razi","aria","var"],"rp":["iar"]},"46":{"input":[2,3,4,6],"tlp":["ris",22044],"trp":["ice",15501],"tlw":["dire",5876],"lp":["ris","ric","vers","dic","dir","dev","rsi","div","esti","cri","eci","cie","ved","dire","vec","cev","rdi","dive","ves"],"rp":["ice"]},"47":{"input":[1,2,3,4,6],"tlw":["avesse",3478],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",320519],"trw":["in",109997],"lp":[],"rp":["in","ni","hi","ini","nni","hin","hn","inn","hnn","nin","inni","nh","iin","hini"]},"49":{"input":[1,5,6],"tlp":["ani",19586],"trp":["nz",54632],"tlw":["anni",5707],"trw":["ha",18022],"lp":["ani","anz","anza","anni","anzi","ah"],"rp":["nz","nza","ha","ina","ian","hia","nzi","han","hann","hai","nia","niz","naz","nizi"]},"50":{"input":[2,5,6],"tlp":["sin",7946],"trp":["nsi",15035],"tlw":["sin",309],"lp":["sin","sh","sini","ssin","shi","shin","sinn"],"rp":["nsi","nis","ins","inis","insi","niss","his","nsis","hiss","nk","kn","nkn","hisk"]},"51":{"input":[1,2,5,6],"tlp":["sian",1135],"trp":["nsaz",1239],"tlw":["assassini",163],"trw":["hans",173],"lp":["sian","sha","shai","ansi","ash","anis","ank","wh","whi","whis","shak","sina","asha"],"rp":["nsaz","jak","kan","nsai","nsia","hak","hans"]},"52":{"input":[3,5,6],"tlp":["eni",10691],"trp":["he",257312],"tlw":["eh",464],"trw":["nei",6212],"lp":["eni","eh","ein","enni"],"rp":["he","ien","ine","hie","nie","nei","iene","nien","hnny","hien","ieni","hen","iy","hei","nhe","nhei"]},"53":{"input":[1,3,5,6],"tlp":["enz",33789],"trp":["ienz",3732],"tlw":["annie",76],"trw":["haze",116],"lp":["enz","enza","enzi","anie","enze","anze","zien","aine","anei","enez","enia"],"rp":["ienz","nze","iena","inea","hez","hezz","iane","nez","nezz"]},"54":{"input":[2,3,5,6],"tlp":["din",9601],"trp":["ndi",18448],"tlw":["sensi",395],"trw":["jessie",395],"lp":["din","ensi","dine","dini","enis","endi"],"rp":["ndi","ind","indi","nsie","iden","hies","ines","nsid","hied","ndie","inse","hes","hese","iend"]},"55":{"input":[1,2,3,5,6],"tlw":["senza",11519],"trw":["jake",1119],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59544],"trp":["nti",54757],"tlw":["bi",1153],"lp":["bi","tin","bbi","bit","vin","th","bin"],"rp":["nti","int","ib","nv","ibi","inv","nit","ntin","niv","init","nvi","ntit","ntiv"]},"57":{"input":[1,4,5,6],"tlp":["van",36986],"trp":["inf",7482],"tlw":["avanti",2333],"trw":["infatti",1929],"lp":["van","fin","anti","avan","bia","abi","tanz","bbia","vant","abbi","fini","bian","tina"],"rp":["inf","ivan","nfi","nif","nita","nav","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",325862],"trp":["nch",30760],"tlw":["chi",6236],"trw":["nisci",250],"lp":["ch","chi","cch","cchi","cin","sib","sibi","sch","ssib","bis","schi"],"rp":["nch","inc","nci","inci","ich","nic","icin","ntic","nist"]},"59":{"input":[1,2,4,5,6],"tlw":["stanza",2031],"trw":["jack",1501],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",29283],"trp":["inte",12868],"tlw":["viene",2680],"trw":["niente",4357],"lp":["enti","ven","vreb","vent","rin","veni","rni","vien","bri","venn"],"rp":["inte","ient","nve","iven","inve","ibe","iber","nev","ibr","nir"]},"61":{"input":[1,3,4,5,6],"tlw":["avrebbe",7187],"trw":["infine",1261],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["che",190983],"trw":["invece",4329],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["anche",22478],"trw":["neanche",898],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",538],"trw":["o",24888],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1339],"trp":["oa",935],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",207940],"trp":["os",147196],"tlw":["so",6170],"trw":["oso",79],"lp":["so","sso","sos"],"rp":["os","oss","osso","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["asso",6821],"trp":["osa",24654],"tlw":["sasso",152],"trw":["ossa",382],"lp":["asso","aso","aos","wo","sao"],"rp":["osa","ossa","ow","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",5232],"trp":["oe",8136],"trw":["-",14856],"lp":["eo"],"rp":["oe","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"lp":["xo"],"rp":[]},"70":{"input":[2,3,7],"tlp":["do",158471],"trp":["od",22403],"tlw":["do",2723],"trw":["od",70],"lp":["do","esso","eso","edo","dos","doss","ddo","eddo","sod","ddos","sodd","seo"],"rp":["od","osse","odo","ose","ode","oes","odd","odes"]},"71":{"input":[1,2,3,7],"tlp":["ado",4250],"trp":["oda",1104],"tlw":["adesso",3039],"lp":["ado","addo","aseo","ados","dado"],"rp":["oda","oad","owd","owde","osea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",401592],"trp":["ot",65714],"tlw":["to",7313],"trw":["otto",700],"lp":["to","tto","gg","go","tog","tot","gog","got","gott","gt","gto","ggo"],"rp":["ot","og","ott","otto","ogg","oto","ogo","otog"]},"73":{"input":[1,4,7],"tlp":["ato",73996],"trp":["of",9885],"tlw":["fatto",10159],"trw":["of",731],"lp":["ato","ag","fo","ga","atto","tato","agg","aga","tag","gat","ago","fog","fot","gato","foto"],"rp":["of","ota","off","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",390163],"trp":["oc",56253],"tlw":["sotto",6145],"trw":["oc",194],"lp":["co","sto","cos","cco","sco","sog","sot","sott","cost","soc","sg","tos","ttos","tost"],"rp":["oc","ost","occ","osc","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cosa",19547],"trp":["osta",6879],"tlw":["cosa",13626],"lp":["cosa","fos","foss","acco","cato","sato","asco","caso","sag","sagg","sof","sfo","aco","asto","soff","ssag","asfo"],"rp":["osta","occa","oca"]},"76":{"input":[3,4,7],"tlp":["ro",227920],"trp":["or",269472],"tlw":["ero",2296],"trw":["ore",1264],"lp":["ro","eg","tro","ero","ge","gr","tor","etto","rto","rg","erto","gge","egg","ttor"],"rp":["or","ore","ort","oro","ote","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",26973],"trp":["ora",39990],"tlw":["forte",2002],"trw":["ora",7824],"lp":["for","gra","aro","rag","rato","ega","raga","rof","gar","fort","fro","arg","ator","ragg","rofo","egat","efo"],"rp":["ora","orta","orat"]},"78":{"input":[2,3,4,7],"tlp":["cor",38804],"trp":["ors",15158],"tlw":["stesso",6792],"lp":["cor","esto","rso","erso","seg","sor","rdo","ros","eco","deg","seco","stro","cord","stor","cors"],"rp":["ors","ostr","ord","orse","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",8373],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",433832],"trw":["un",115533],"lp":[],"rp":["on","no","un","non","uo","ono","nu","uno","nno","nuo","onn","uon","nun","uono","nono","nnu","onno","ou","onu","nuno"]},"81":{"input":[1,5,7],"tlp":["qu",190328],"trp":["ua",132700],"tlw":["qua",1585],"trw":["una",79579],"lp":["qu","qua","ano","quan","anno","au","anqu","annu","quo"],"rp":["ua","una","uan","ona","nqu","unq","unqu","onna","nua","uona","uann"]},"82":{"input":[2,5,7],"tlp":["su",132637],"trp":["us",36612],"tlw":["sono",21614],"trw":["uso",357],"lp":["su","son","suo","sono","ssu","sun","ssun","suno","sus","suon","sson"],"rp":["us","nos","ons","nso","onos","uss","jo","uso","uns"]},"83":{"input":[1,2,5,7],"tlp":["sua",24168],"trp":["uas",6999],"tlw":["sua",23065],"trw":["naso",1168],"lp":["sua","quas","sona","aus","ausa","suna","susa","assu","squ","sano","squa","ssua"],"rp":["uas","usa","usan","onsa","naso","ussa","own","jona"]},"84":{"input":[3,5,7],"tlp":["eno",16301],"trp":["ue",125676],"trw":["oy",212],"lp":["eno","enu","eu","enno","eon","eone"],"rp":["ue","one","onne","une","uen","yo","n-","oy","neo","uone","onen","nue","uy","noe"]},"85":{"input":[1,3,5,7],"tlp":["que",97787],"trp":["nque",9338],"tlw":["que",683],"lp":["que","equ","eque","quen","aneo","enua","aone","eau","aneu","anue"],"rp":["nque","yoa","uane"]},"86":{"input":[2,3,5,7],"tlp":["du",34768],"trp":["ndo",56462],"tlw":["due",12347],"trw":["nessuno",3678],"lp":["du","due","don","endo","donn","essu","enso","sue","edu","dun","sone"],"rp":["ndo","ues","ond","ondo","ud","onde","ude","use","onse"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",17079],"trw":["nessuna",1517],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",92522],"trp":["ut",89032],"tlw":["tutto",14989],"trw":["noto",633],"lp":["tu","tut","gn","tutt","gu","gno","bo"],"rp":["ut","nto","utt","ont","ng","uto","utto","ogn","ob","ub","ngo","not","ung"]},"89":{"input":[1,4,5,7],"tlp":["anto",26642],"trp":["onta",14073],"tlw":["quanto",9498],"trw":["nota",688],"lp":["anto","fu","gua","fon","atu","gna","ang","tua","agn","fuo","bano","aut"],"rp":["onta","uant","uta","utta","nato","natu","onf","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",129147],"trp":["nco",21375],"tlw":["con",65735],"trw":["jung",428],"lp":["con","cu","cont","cun","cono","cons","sogn","scu","stu","cuo","sub","conc"],"rp":["nco","uc","usc","nost","ucc","nosc","ust","onc"]},"91":{"input":[1,2,4,5,7],"tlw":["bocca",2528],"trw":["nascosto",446],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",24735],"trp":["ur",55498],"tlw":["tutte",5259],"trw":["notte",3456],"lp":["ento","rno","ru","tur","ron","gen","torn","gnor","gue","egn"],"rp":["ur","orn","nor","ntro","orno","uro","ontr","ure","onte","uor"]},"93":{"input":[1,3,4,5,7],"tlw":["erano",13650],"trw":["natura",2226],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["contro",4167],"trw":["nostro",2381],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["questo",17502],"trw":["nostra",2563],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",292163],"trw":["il",150399],"lp":[],"rp":["ll","io","li","il","ol","lo","llo","olo","oi","lio","lli","oli","ili","oll","ill","ilo","ollo","iol","olli","oio"]},"97":{"input":[1,6,7],"tlp":["al",306120],"trp":["la",389912],"tlw":["al",34419],"trw":["la",169844],"lp":["al","all","zio","alla","azio","ali","zo","allo","zzo","ala","alo","azzo","alz"],"rp":["la","lla","ola","lia","ial","izio","lz"]},"98":{"input":[2,6,7],"tlp":["sol",35720],"trp":["osi",21430],"tlw":["solo",15660],"trw":["los",154],"lp":["sol","solo","sio","ssio","soli","sil","ssol","soll"],"rp":["osi","iso","ossi","ios","ls","lis","isio","ioso","los","ols","lsi","loso"]},"99":{"input":[1,2,6,7],"tlp":["sal",7582],"trp":["las",8686],"tlw":["sola",1804],"trw":["ossia",438],"lp":["sal","sola","als","sali","alsi","alis","zios","sala","asio","wil","wal","salo","will"],"rp":["las","osiz","lass","lsia","iosa","oak","oaki"]},"100":{"input":[3,6,7],"tlp":["el",300307],"trp":["le",283237],"tlw":["el",414],"trw":["le",75413],"lp":["el","ell","elle","ello","elli","ele","eli","elo"],"rp":["le","lle","ile","ole","lei","lie","iel","olle","ielo","ioe","ille","liel"]},"101":{"input":[1,3,6,7],"tlp":["ella",86423],"trp":["iale",6102],"tlw":["alle",8523],"lp":["ella","ale","alle","ela","eal","ezzo","ezio","eale","elai","elaz","eali","aile","alie"],"rp":["iale","lez","lezz","llez","lea","lezi","olez"]},"102":{"input":[2,3,6,7],"tlp":["del",145198],"trp":["ido",5517],"tlw":["del",59660],"trw":["les",352],"lp":["del","dell","dio","dol","sole","sile","dolo","deli","sold"],"rp":["ido","ld","les","odi","oesi","less","old","lid","lse","iod","olse"]},"103":{"input":[1,2,3,6,7],"tlw":["della",49783],"trw":["ideale",372],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",98127],"trp":["lt",89489],"tlw":["gli",38211],"trw":["oggi",2072],"lp":["gi","gl","gli","vo","gio","vol","ggi","volt","glio","ggio"],"rp":["lt","ov","olt","ig","ito","lto","igl","igli","lit","olto"]},"105":{"input":[1,4,6,7],"tlp":["alt",36637],"trp":["lta",24023],"tlw":["volta",7909],"trw":["lato",1361],"lp":["alt","tal","gia","aggi","agi","avo","glia","agl","agli","gaz","val","fig","agaz"],"rp":["lta","olta","ova","lita","iato","lat","lav"]},"106":{"input":[2,4,6,7],"tlp":["col",38715],"trp":["ico",29735],"tlw":["cosi",14686],"lp":["col","cio","cosi","sig","colo","voc","ccol","tico","soci","cl","coll"],"rp":["ico","lc","lic","oci","lco","isto","icol","lcos","icco"]},"107":{"input":[1,2,4,6,7],"tlw":["cavallo",1015],"trw":["lasciato",1193],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",23501],"trp":["lor",31885],"tlw":["vero",3849],"trw":["loro",17911],"lp":["rio","egl","egli","rl","rov","gior","evo","tori","rol","trov"],"rp":["lor","ltr","ori","ove","ior","loro","let","lett","ltro","leg"]},"109":{"input":[1,3,4,6,7],"tlw":["allora",5910],"trw":["lavoro",2692],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dove",7905],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["storia",3176],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["iu",69600],"trw":["lui",16197],"lp":[],"rp":["iu","ion","ui","lu","ul","ino","oni","ull","lui","ho","ioni","uoi","lin","uni","lun","hio","inu","lon","noi","iun"]},"113":{"input":[1,5,6,7],"tlp":["zion",44305],"trp":["ual",34744],"tlw":["qui",6480],"trw":["hanno",4870],"lp":["zion","qual","qui","quin","alu"],"rp":["ual","ulla","nal","lan","nzio","uz","uali","iano","uzi","uzio","onal","iona","inua","inqu","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sul",27914],"trp":["ius",9576],"tlw":["sul",12074],"trw":["john",422],"lp":["sul","sull","sion","suoi","sui","sino","solu"],"rp":["ius","usi","onsi","lus","joh","john","isu","hius","uis","nsio","ussi","usio","isul"]},"115":{"input":[1,2,5,6,7],"tlw":["sulla",9250],"trw":["unknown",242],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"trp":["nel",55639],"tlw":["ellen",168],"trw":["nel",25842],"lp":[],"rp":["nel","ione","uel","uell","nell","len","ulle","uei","ilen","uole","olen","line","ieno","ly","lly","llen","hel","iyo","onie","lien"]},"117":{"input":[1,3,5,6,7],"tlw":["quella",13048],"trw":["nella",18121],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sulle",3574],"trw":["johnny",2025],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quindi",2988],"trw":["honda",1391],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",19308],"trp":["ing",11351],"tlw":["tutti",11017],"trw":["ogni",9891],"lp":["bil","gni","vu","giu","gin","bl"],"rp":["ing","utti","ign","ogni","uov","ibil","nuov","ult","igno","lib","onti","itu","iut","lung"]},"121":{"input":[1,4,5,6,7],"tlw":["fino",4978],"trw":["lingua",2263],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cui",15060],"trw":["occhi",7963],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["qualcosa",5921],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["giorno",5009],"trw":["intorno",2138],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["avevano",4836],"trw":["labbra",1521],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vecchio",2836],"trw":["luce",3993],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["qualche",7372],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",38074],"trw":["p",2856],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",53641],"trp":["pa",113853],"tlw":["ap",277],"trw":["pa",1374],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",57528],"trp":["ps",391],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",10722],"trp":["pas",13080],"tlw":["spa",392],"trw":["passa",483],"lp":["sap","spa","asp","sapp","aspa","asap","spas"],"rp":["pas","pass","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9203],"trp":["pe",210895],"tlw":["e'",746],"trw":["'",1162],"lp":["ep","epp","e'","eppe","epe"],"rp":["pe","'e","ppe","'ep","pep","pepe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",12996],"trp":["'a",34981],"tlw":["a'",123],"trw":["pae",158],"lp":["ape","appe","epa","a'","epap","a'a","eppa"],"rp":["'a","pae","pea","'ap","'ape","pape","'app","'ex"]},"134":{"input":[2,3,8],"tlp":["spe",21318],"trp":["pes",6844],"tlw":["de'",420],"lp":["spe","d'","esp","spes","s'","espe","s'e","sep","sepp","d'e","sped","d'es","de'"],"rp":["pes","'es","pess","'ess","'esp","ped","ppes"]},"135":{"input":[1,2,3,8],"tlp":["sape",7738],"trp":["pad",5524],"tlw":["spada",415],"trw":["paese",1433],"lp":["sape","d'a","aspe","sepa","spad","dap","dapp","s'a","apes","spea","s'as"],"rp":["pad","paes","pesa","'as","'ass","pada","pade","peda","'asp"]},"136":{"input":[4,8],"tlp":["tp",67],"trp":["pt",593],"trw":["pt",593],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",444],"trp":["pat",3422],"tlw":["tappa",74],"trw":["pat",105],"lp":["tap","tapp"],"rp":["pat","pata","patt","ppat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["cap",16620],"trp":["pac",3619],"tlw":["cap",137],"trw":["passata",399],"lp":["cap","capa","apac","capp","scap"],"rp":["pac","past","pasc","pacc","paca"]},"140":{"input":[3,4,8],"tlp":["rp",6335],"trp":["pr",145579],"trw":["per",80117],"lp":["rp","t'","rep","rpr","rpre","rpe"],"rp":["pr","per","pre","pet","'er","pett","pert","pere","ppr","ppre","pete","perr","pret","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",5944],"trp":["par",50789],"tlw":["aperta",930],"trw":["parte",8500],"lp":["rap","aper","rapp","apr","appr","epar","t'a"],"rp":["par","part","'era","pra","pare","pera","'ar","ppar","perf","prat","para","'art","'at"]},"142":{"input":[2,3,4,8],"tlp":["c'",13326],"trp":["pres",21493],"tlw":["c'e",5387],"trw":["prese",1400],"lp":["c'","c'e","spet","c'er","sper","spec","spr","espr","spre","resp","st'"],"rp":["pres","perc","pers","pec","prec","perd","pecc","'est","pesc"]},"143":{"input":[1,2,3,4,8],"tlw":["c'era",5795],"trw":["padre",3195],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",63764],"trw":["m",580],"lp":[],"rp":["mp","mm","pn","pm"]},"145":{"input":[1,5,8],"tlp":["am",93470],"trp":["ma",209998],"tlw":["ama",245],"trw":["ma",53590],"lp":["am","ama","amm","amp","amma","ampa","aman","anam"],"rp":["ma","man","mma","mpa","pan","mana","mam","nam","mamm","nap","mpan","pann"]},"146":{"input":[2,5,8],"tlp":["sm",3714],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",2868],"trp":["mas",6926],"tlw":["sam",230],"trw":["massa",628],"lp":["sam","asm","sma","asma","ssam"],"rp":["mas","mass","nsap","jam","mpas","njam","pasq","mmas","nasp","nsam"]},"148":{"input":[3,5,8],"tlp":["em",69499],"trp":["me",205039],"trw":["me",9600],"lp":["em","emp","eme","emen","emm","emme"],"rp":["me","men","pen","n'","mme","nem","ppen","mmen","mpe","nemm","nep","m'","mem","nepp"]},"149":{"input":[1,3,5,8],"tlp":["ame",31411],"trp":["pena",4673],"tlw":["appena",3899],"trw":["'na",1029],"lp":["ame","amen","ema","amme","eam","eame","emma"],"rp":["pena","'an","n'a","mane","'am","mae","'ann","nema","'na","name","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",25705],"trp":["pens",14000],"tlw":["sem",596],"trw":["mese",638],"lp":["sem","semp","esem","spen","sme","dem","ssem"],"rp":["pens","mes","mess","med","pend","mmed","mens","n'es","mese","mped","mede","mmes","mend"]},"151":{"input":[1,2,3,5,8],"tlw":["damane",190],"trw":["pensa",920],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",759],"trp":["mb",24935],"lp":["tm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",11090],"trp":["mat",11944],"tlw":["fama",205],"trw":["mat",965],"lp":["tam","amb","fam","bam","bamb","ttam","amat","atam","tamp","amba"],"rp":["mat","matt","mant","mba","ntam","mata","mpat","mmat","pant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["stampa",344],"trw":["manca",395],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",30451],"trp":["ment",73144],"tlw":["be'",1001],"trw":["mentre",7346],"lp":["rm","tem","temp","empr","erm","emb","embr","rme","rem","term","trem"],"rp":["ment","mpr","mpre","mer","mbr","met","mett","pren","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["entrambe",518],"trw":["mare",1575],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",11019],"trw":["prendere",1451],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["sembra",1918],"trw":["madre",2851],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",115591],"trw":["pi",1894],"lp":[],"rp":["pi","ip","ipi","ppi","pii","pip","ipp"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10470],"trp":["pia",13275],"trw":["piazza",530],"lp":["api","appi","apii"],"rp":["pia","paz","pazi","ipa","ppia","pai","pazz","piaz","iap","iapi","ipaz","iapp","pipa","piz","pizz","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",10357],"trp":["isp",11667],"tlw":["spi",83],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",1284],"trp":["ispa",273],"tlw":["sappia",270],"trw":["passi",1081],"lp":["spia","apis","spaz","sapi","aspi"],"rp":["ispa","pais","isap","pias"]},"164":{"input":[3,6,8],"tlp":["epi",750],"trp":["pie",14120],"trw":["pie",288],"lp":["epi","eppi"],"rp":["pie","'i","ipe","i'","'ip","iep","pei","ppie","iepi","iepe"]},"165":{"input":[1,3,6,8],"tlp":["apie",832],"trp":["pez",2090],"trw":["pezzi",621],"lp":["apie","z'","zz'","ezz'","z'a","ai'"],"rp":["pez","pezz","'az","'azi","'ai"]},"166":{"input":[2,3,6,8],"tlp":["disp",3751],"trp":["pied",3956],"tlw":["spie",208],"trw":["piedi",2995],"lp":["disp","spie","dip","dipe","espi","d'i","dipi","s'i"],"rp":["pied","ispe","pid","'id","'ide","pedi","'esi","'is","pidi","ipes","'edi","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["appesi",112],"trw":["paesi",504],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2675],"trp":["pit",7247],"tlw":["tipi",332],"lp":["tip","tipi"],"rp":["pit","piv","piti","pitt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",4239],"trp":["pita",2661],"trw":["piatti",270],"lp":["apit","apiv","vap"],"rp":["pita","pav","piat","pavi","piva","pati","pava","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",5282],"trp":["pic",6757],"tlw":["tipici",78],"lp":["cip","cipi","spit","scip","stip","tisp"],"rp":["pic","picc","pisc","pist","ipic","psic","icip","pick","pici"]},"171":{"input":[1,2,4,6,8],"tlw":["capi",635],"trw":["passava",443],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3818],"trp":["pri",41676],"tlw":["ripete",508],"trw":["pri",723],"lp":["rip","ripr","ripe","v'","v'e"],"rp":["pri","pir","peri","pev","piri","priv","piet","pire","prie","ipr","ipet","ipre","prir","prev","pier"]},"173":{"input":[1,3,4,6,8],"tlw":["apri",920],"trw":["parti",1322],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["specie",1573],"trw":["presi",303],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sapeva",2346],"trw":["piacere",1214],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",125525],"trw":["mi",29736],"lp":[],"rp":["mi","im","min","imp","imi","mini","mpi","mmi","imm","nim","mmin","pin","inim","immi","mim","mimi","impi","pini","ph","ipin"]},"177":{"input":[1,5,6,8],"tlp":["ami",11196],"trp":["ima",27754],"tlw":["anima",623],"trw":["mai",10502],"lp":["ami","anim","ammi","ampi"],"rp":["ima","iam","mai","mia","mani","mina","hiam","pian","imma","iama","nima","iman","maz","impa","mazi","manz"]},"178":{"input":[2,5,6,8],"tlp":["sim",7979],"trp":["mis",8876],"tlw":["spin",81],"trw":["misi",410],"lp":["sim","ssim","simi","spin","smi","simp","smis","sism"],"rp":["mis","miss","mmis","ism","pins","misi","nism","imis","jim","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["spina",102],"trw":["massima",364],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["empi",4592],"trp":["ime",13962],"tlw":["ehm",84],"trw":["miei",2459],"lp":["empi","emi"],"rp":["ime","imen","'in","mie","'h","iem","'im","pien","ieme","miei","'imp","impe","imme","h'","mine","ipen","inem","'imm"]},"181":{"input":[1,3,5,6,8],"tlw":["zampe",282],"trw":["piena",963],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dimmi",325],"trw":["insieme",2565],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["assieme",502],"trw":["pensai",375],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12886],"trp":["mbi",7548],"tlw":["tim",512],"trw":["miti",105],"lp":["tim","ttim","vim","timi","bim","bimb"],"rp":["mbi","mit","mbin","imit","ntim","imb","pint","mpit","miti","itm","mbit","miv","mith","mpiv"]},"185":{"input":[1,4,5,6,8],"tlw":["bambini",1251],"trw":["mattina",971],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",194],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["amici",1446],"trw":["macchina",1679],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tempi",1297],"trw":["perrin",1178],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["veramente",1194],"trw":["prima",12710],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sentimenti",600],"trw":["perche",14386],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["sembrava",3174],"trw":["presenza",1054],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",170696],"trw":["po",1713],"lp":[],"rp":["po","op","opo","ppo","opp","oppo","pop","popo","oop","ppop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",3603],"trp":["opa",1076],"lp":["appo","apo"],"rp":["opa","oppa","pao"]},"194":{"input":[2,7,8],"tlp":["spo",12332],"trp":["pos",30275],"tlw":["spo",162],"trw":["posso",2175],"lp":["spo","spos","sop","sosp","sopp"],"rp":["pos","poss","osp","opos","poso","ppos"]},"195":{"input":[1,2,7,8],"tlp":["sapo",395],"trp":["posa",1234],"tlw":["sposa",181],"trw":["passo",2265],"lp":["sapo","aspo","apos"],"rp":["posa"]},"196":{"input":[3,7,8],"tlp":["epo",996],"trp":["'o",10586],"trw":["po'",5326],"lp":["epo","eop","eppo"],"rp":["'o","ope","o'","poe","po'","'op","'ope","peo","'epo","oppe","oope","opeo","'opp","opee"]},"197":{"input":[1,3,7,8],"tlp":["eopa",82],"trp":["opea",192],"lp":["eopa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",11237],"trp":["pose",2787],"tlw":["dopo",9632],"trw":["peso",740],"lp":["dop","dopo","d'o","espo","dopp","depo","epos"],"rp":["pose","poes","ospe","peso","os'","os'e","'od","'os","'odo","pod","opod","pode","'osp"]},"199":{"input":[1,2,3,7,8],"tlw":["appeso",230],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",650],"trp":["pot",22315],"tlw":["topo",171],"lp":["top","topo","ttop"],"rp":["pot","pog","ppog","pogg","pott","opot","ppot","opog"]},"201":{"input":[1,4,7,8],"trp":["pag",5925],"trw":["patto",180],"lp":[],"rp":["pag","paga","pato","opag","pago","ppag"]},"202":{"input":[2,4,7,8],"tlp":["cop",6022],"trp":["post",9448],"tlw":["scopo",742],"trw":["poco",4741],"lp":["cop","scop","copp","copo","coop","spog","cosp"],"rp":["post","poc","poco"]},"203":{"input":[1,2,4,7,8],"tlw":["capo",2162],"trw":["passato",1802],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",21378],"trp":["pro",42777],"tlw":["troppo",4434],"trw":["pero",4668],"lp":["rop","ropr","trop","ropp","rpo","ropo"],"rp":["pro","por","opr","port","pote","prop","oper","pero","'or","orp","potr","ppor","orpo","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["rapporto",1150],"trw":["porta",4253],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",2667],"trw":["presto",1698],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["sopra",3357],"trw":["peccato",398],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",124534],"trw":["puo",6756],"lp":[],"rp":["mo","om","pu","mpo","um","mon","omp","up","uom","mu","omo","puo","pun","uomo","omm","mom","nom","ppu","pon","mun"]},"209":{"input":[1,5,7,8],"tlp":["amo",18506],"trp":["oma",10024],"tlw":["amo",246],"trw":["mano",6828],"lp":["amo","ampo","appu","apu","aum","amon"],"rp":["oma","mano","oman","ompa","uma","uman","pau","upa","munq","omma","napo","mona","uam","nuam"]},"210":{"input":[2,5,7,8],"tlp":["sup",3910],"trp":["mos",4879],"tlw":["sommo",127],"trw":["possono",1433],"lp":["sup","spon","som","smo","somm","sum","spu","ssum","supp","spun"],"rp":["mos","mus","mpos","nsom","moss","pons","moso","nsum","mous","moos"]},"211":{"input":[1,2,5,7,8],"tlw":["somma",313],"trw":["pausa",424],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["empo",10444],"trp":["ome",58690],"trw":["meno",4910],"lp":["empo","emo","eppu"],"rp":["ome","'u","meno","omen","un'","ume","mome","'un","'uo","'uom","nome","upe","nume","umen","omme","n'o","un'o"]},"213":{"input":[1,3,5,7,8],"trw":["umane",290],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",897],"trw":["modo",7852],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["domanda",1306],"trw":["pensando",468],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2271],"trp":["punt",7081],"tlw":["tom",318],"trw":["punto",4093],"lp":["tom","tup","gom"],"rp":["punt","mont","omb","potu","pub","pubb","mot","mog","mbo","put","mob","pug","mut","pugn","moto","puto","pont"]},"217":{"input":[1,4,5,7,8],"tlw":["appunto",879],"trw":["punta",775],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",539],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1259],"trw":["manco",711],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",9244],"trw":["momento",5714],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2605],"trw":["paura",1888],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["come",44183],"trw":["persone",2066],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["comunque",2203],"trw":["persona",1755],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",14737],"trw":["poi",13201],"lp":[],"rp":["poi","pl","pol","pio","pli","lp","poli","olp","ipo","opol","lpo","olpo","oppi","lpi","olpi","opi","polo","ipio","ppio","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",617],"trp":["pal",8270],"trw":["paio",1036],"lp":["alp","apol","alap"],"rp":["pal","pall","pola","paio","pala","ipal","pla","lpa","olpa","poz","pozz","palp","pali","pila","opia","lap","paol"]},"226":{"input":[2,6,7,8],"tlp":["spl",884],"trp":["ispo",7900],"tlw":["spio",684],"trw":["polso",267],"lp":["spl","spio","splo","spli"],"rp":["ispo","posi","ospi","pols","ipos","piso","lpis","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["spazio",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["ell'",11381],"trp":["l'",63315],"trw":["pelle",1317],"lp":["ell'","epl","epli"],"rp":["l'","ll'","l'i","l'o","l'e","pel","ll'i","pell","ple","ll'e","ll'o","lpe","'io","l'op","ppel","pelo","olpe"]},"229":{"input":[1,3,6,7,8],"tlw":["appello",93],"trw":["pezzo",996],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["doppio",286],"trw":["poesie",742],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spalle",2219],"trw":["poesia",1881],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",1710],"trp":["pito",3299],"tlw":["tipo",1710],"trw":["piglio",445],"lp":["tipo","topi","volp"],"rp":["pito","pov","pig","pigl","piog","ipot","polv","polt","lpit","poti","ipig","pogl","piov","lpiv"]},"233":{"input":[1,4,6,7,8],"tlw":["appoggio",268],"trw":["pioggia",738],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["colpo",1583],"trw":["piccolo",2047],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capito",1303],"trw":["piccola",1514],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["proprio",7247],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["poteva",4863],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["rispose",2477],"trw":["percio",1506],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["capelli",2276],"trw":["particolare",1528],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["piu",40881],"trw":["piu",38322],"lp":[],"rp":["piu","lm","imo","omi","mol","omin","mio","mpl","mil","uomi","impo","ilm","mpli","lim","ompl","ommi","mili","mpio","imil","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animali",640],"trw":["piano",2006],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simili",901],"trw":["luminoso",184],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["siamo",2506],"trw":["possiamo",953],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["l'uomo",2192],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almeno",2906],"trw":["mezzo",2952],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["esempio",1778],"trw":["modi",645],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["domani",713],"trw":["posizione",1014],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["molto",8286],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["abbiamo",2561],"trw":["montalbano",3474],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comincio",1412],"trw":["piuttosto",1744],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["amico",1691],"trw":["possibilita",1220],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["meglio",3762],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1303],"trw":["ormai",2373],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["semplice",1455],"trw":["possibile",2609],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["commissario",2277],"trw":["l'unica",795],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",76],"tlw":["a",134646],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",181781],"tlw":["s",689],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",147177],"tlw":["sa",4372],"lp":["sa","as","ssa","ass","assa","asa","sas","wa","sass","ssas","aw","saw","was","awa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2590],"tlw":["e",285768],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",16928],"tlw":["ex",571],"lp":["ea","ae","ex","ax","xe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",299367],"tlw":["se",42825],"lp":["de","se","es","ess","sse","ed","esse","ede","ese","des","dd","sed","edd","dess","sede","edes","ses","sess","dde","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",161213],"tlw":["da",50742],"lp":["da","ad","essa","esa","ade","ada","asse","ase","aes","add","dea","ades","eda","we","aese","seda","ew","sea","adde","aesa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",206553],"tlw":["t",2430],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",338700],"tlw":["fa",5357],"lp":["ta","at","fa","att","tta","tat","ata","ff","fat","fatt","af","atta","tata","aff","ffa","affa","ttat","ffat","tatt","taf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",249453],"tlw":["c",1986],"lp":["st","sc","cc","ts","ct","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",149612],"tlw":["casa",7589],"lp":["ca","sta","ac","acc","stat","cas","asc","fac","cat","cca","ast","sat","sca","casa","facc","sf","acca","asta","tas","ssat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",504768],"tlw":["te",8282],"lp":["er","re","te","tr","et","rt","ere","ett","ter","rr","tre","tte","rte","ert","err","ret","ette","rre","etr","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",368409],"tlw":["era",57211],"lp":["ra","ar","era","are","tra","fe","rat","art","rta","fr","tar","far","ara","eta","etta","fer","tare","arte","ratt","fra"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",118940],"tlw":["essere",13580],"lp":["ce","est","ec","rs","str","rc","res","ser","rd","ste","ers","tes","erc","cr","der","cer","sser","tess","dere","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["sar",25172],"tlw":["testa",5675],"lp":["sar","esta","stra","ard","car","sare","ace","rad","dar","dat","rda","rac","adr","racc","rca","ars","dare","ssar","face","erca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",46289],"trw":["n",1203],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",351085],"trp":["na",191784],"tlw":["an",861],"trw":["na",3153],"lp":["an","ann","ana","anna","anq","anan"],"rp":["na","nq","nna","nan","nnan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","trp":["ns",40629],"trw":["j",428],"lp":[],"rp":["ns","nj","jn"]},"19":{"input":[1,2,5],"tlp":["san",10754],"trp":["nsa",10125],"tlw":["san",820],"lp":["san","ssan","sann","ans","sq","wn","asq","aj","sana","anj","anja","aja"],"rp":["nsa","nas","ja","nsan","nja","nasa","nsas","nass"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",325999],"trp":["ne",240032],"tlw":["en",427],"trw":["ne",18897],"lp":["en","ene","enn","enne","ey","enen","eyn","een","enny","eyne"],"rp":["ne","nne","ny","yn","nny","nen","yne","ye","nyn","nee"]},"21":{"input":[1,3,5],"tlp":["ena",10474],"trp":["nea",2742],"tlw":["aye",382],"lp":["ena","ane","ay","ean","ayn","ayne","enna","eq","anne","anea","aye","aen","eann"],"rp":["nea","nean","yna","nae","nyna","ynae","ya"]},"22":{"input":[2,3,5],"tlp":["sen",39413],"trp":["nd",129982],"tlw":["sen",952],"trw":["nes",163],"lp":["sen","end","ens","den","ende","sens","esen","eden","dend","ssen","dy"],"rp":["nd","nde","nes","ness","nse","nden","je","nsen","nese"]},"23":{"input":[1,2,3,5],"tlp":["and",60721],"trp":["nda",24205],"tlw":["and",382],"trw":["new",833],"lp":["and","anda","ensa","ande","dan","enda","sand","dand","dann","wen","esan","wene","dena","sean","anes","andy"],"rp":["nda","ndan","new","nand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",46376],"trp":["nt",291380],"tlw":["b",526],"lp":["bb","tn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ant",64341],"trp":["nta",37477],"tlw":["tanta",636],"trw":["nata",204],"lp":["ant","tan","ba","ab","tant","abb","ban","anta","fan","bba","bat","abba","batt"],"rp":["nta","nat","nf","ntan","ntat","nata","nfa"]},"26":{"input":[2,4,5],"tlp":["sb",2201],"trp":["nc",80441],"lp":["sb","cn","tsb"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["anc",55675],"trp":["nca",4603],"tlw":["basta",1053],"lp":["anc","can","stan","bas","cant","bast","anca","cq","acq","sant","bbas","bass","ccan","sab","sba","banc"],"rp":["nca","nasc","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["ent",152199],"trp":["nte",100114],"tlw":["bene",6300],"trw":["nere",364],"lp":["ent","ente","be","rn","eb","br","ebb","ten","bbe","ebbe","reb","rebb","entr","ren","ber","ben","ener"],"rp":["nte","ntr","ner"]},"29":{"input":[1,3,4,5],"tlp":["ran",45980],"trp":["nar",8583],"tlw":["entrare",873],"trw":["nera",1031],"lp":["ran","eran","ante","bra","enta","areb","rna","tran","bar","rtan","rant","fran","abbr","erna"],"rp":["nar","ntra","nare","nera","ntar","nfe"]},"30":{"input":[2,3,4,5],"tlp":["sent",16908],"trp":["nce",6484],"tlw":["sebbene",761],"lp":["sent","cen","dent","rend","cent","cend","tend","scen","sten","deb","ecen","cenn","ccen"],"rp":["nce","nder","nec","nece","nest","nces","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["sarebbe",7398],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3469],"trw":["i",56666],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",77724],"trp":["ia",200353],"tlw":["ai",8188],"lp":["zi","za","ai","az","zz","azi","zza","azz","zia","zzi","azza","azzi","aia","azia"],"rp":["ia","iz","izi","izia","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",267038],"trp":["is",117042],"tlw":["si",95698],"trw":["k",250],"lp":["si","ssi","sis","sk","siss","ssis","sii","sisi","ski"],"rp":["is","iss","isi","issi","ki","ik","isk","ks","kik"]},"35":{"input":[1,2,6],"tlp":["sia",18324],"trp":["issa",4411],"tlw":["sia",7163],"trw":["ka",126],"lp":["sia","asi","assi","sai","ak","siz","sizi","ssia","saz","sazi","sias","ssai","aki","wi","asia"],"rp":["issa","isa","ias","iasi","ka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",64002],"trp":["ie",107111],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",20251],"trp":["ize",737],"tlw":["zie",189],"trw":["ix",82],"lp":["ez","ezz","ezza","ze","ezi","zie","azie","zze","ezzi","azze","xi","eaz","eazi","aie","ezze","eez","eze"],"rp":["ize","ix","izie"]},"38":{"input":[2,3,6],"tlp":["di",428636],"trp":["id",39251],"tlw":["di",272620],"trw":["idee",923],"lp":["di","dis","dei","esi","edi","diss","essi","die","sie","sid","side","sei","ddi"],"rp":["id","ide","isse","ied","ise","ies","idi"]},"39":{"input":[1,2,3,6],"tlp":["dia",9487],"trp":["ida",5456],"tlw":["dai",4684],"trw":["idea",948],"lp":["dia","dai","adi","diz","dizi","edia","esia","addi","ake","edai","adiz","aid","disa","aesi","aida","ediz"],"rp":["ida","idea","iesa","idia"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",201674],"trp":["it",120823],"tlw":["ti",13315],"trw":["ivi",381],"lp":["ti","vi","tti","vit","tiv","vv","tit","viv","vvi","ttiv","tivi","vitt"],"rp":["it","iv","itt","iti","ivi","itti","ivit","itiv"]},"41":{"input":[1,4,6],"tlp":["va",190389],"trp":["ita",47351],"tlw":["vita",7521],"lp":["va","av","fi","ava","tav","ati","tava","via","atti","vita","avi","avv","ffi","vat"],"rp":["ita","iva","if","iat","ifi","itta"]},"42":{"input":[2,4,6],"tlp":["ci",164338],"trp":["ic",121416],"tlw":["ci",18525],"lp":["ci","sci","sti","tic","vis","cci","cit","sic","vist","sit","sist","vic","cis","vici"],"rp":["ic","ist","ici","icc","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",31011],"trp":["ica",28164],"tlw":["stava",5638],"lp":["cia","fic","acci","stav","asci","ccia","tica","fici","scia","cav","ffic","cita","aci","cava","ciat","fica"],"rp":["ica","ista","iac","ific"]},"44":{"input":[3,4,6],"tlp":["ri",271321],"trp":["ir",53396],"tlw":["ri",3645],"trw":["ieri",513],"lp":["ri","ve","ev","ver","vev","eri","rit","tri","riv","rri","vr","rti","vre","rv","rie"],"rp":["ir","ire","ive","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",73289],"trp":["iar",12328],"tlw":["aveva",25419],"lp":["eva","ave","veva","avev","ari","ria","rav","avr","aver","avre","arti","raz","riva","teva","rava","rz","razi","aria","var"],"rp":["iar"]},"46":{"input":[2,3,4,6],"tlp":["ris",22044],"trp":["ice",15501],"tlw":["dire",5876],"lp":["ris","ric","vers","dic","dir","dev","rsi","div","esti","cri","eci","cie","ved","dire","vec","cev","rdi","dive","ves"],"rp":["ice"]},"47":{"input":[1,2,3,4,6],"tlw":["avesse",3478],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",320519],"trw":["in",109997],"lp":[],"rp":["in","ni","hi","ini","nni","hin","hn","inn","hnn","nin","inni","nh","iin","hini"]},"49":{"input":[1,5,6],"tlp":["ani",19586],"trp":["nz",54632],"tlw":["anni",5707],"trw":["ha",18022],"lp":["ani","anz","anza","anni","anzi","ah"],"rp":["nz","nza","ha","ina","ian","hia","nzi","han","hann","hai","nia","niz","naz","nizi"]},"50":{"input":[2,5,6],"tlp":["sin",7946],"trp":["nsi",15035],"tlw":["sin",309],"lp":["sin","sh","sini","ssin","shi","shin","sinn"],"rp":["nsi","nis","ins","inis","insi","niss","his","nsis","hiss","nk","kn","nkn","hisk"]},"51":{"input":[1,2,5,6],"tlp":["sian",1135],"trp":["nsaz",1239],"tlw":["assassini",163],"trw":["hans",173],"lp":["sian","sha","shai","ansi","ash","anis","ank","wh","whi","whis","shak","sina","asha"],"rp":["nsaz","jak","kan","nsai","nsia","hak","hans"]},"52":{"input":[3,5,6],"tlp":["eni",10691],"trp":["he",257312],"tlw":["eh",464],"trw":["nei",6212],"lp":["eni","eh","ein","enni"],"rp":["he","ien","ine","hie","nie","nei","iene","nien","hnny","hien","ieni","hen","iy","hei","nhe","nhei"]},"53":{"input":[1,3,5,6],"tlp":["enz",33789],"trp":["ienz",3732],"tlw":["annie",76],"trw":["haze",116],"lp":["enz","enza","enzi","anie","enze","anze","zien","aine","anei","enez","enia"],"rp":["ienz","nze","iena","inea","hez","hezz","iane","nez","nezz"]},"54":{"input":[2,3,5,6],"tlp":["din",9601],"trp":["ndi",18448],"tlw":["sensi",395],"trw":["jessie",395],"lp":["din","ensi","dine","dini","enis","endi"],"rp":["ndi","ind","indi","nsie","iden","hies","ines","nsid","hied","ndie","inse","hes","hese","iend"]},"55":{"input":[1,2,3,5,6],"tlw":["senza",11519],"trw":["jake",1119],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59544],"trp":["nti",54757],"tlw":["bi",1153],"lp":["bi","tin","bbi","bit","vin","th","bin"],"rp":["nti","int","ib","nv","ibi","inv","nit","ntin","niv","init","nvi","ntit","ntiv"]},"57":{"input":[1,4,5,6],"tlp":["van",36986],"trp":["inf",7482],"tlw":["avanti",2333],"trw":["infatti",1929],"lp":["van","fin","anti","avan","bia","abi","tanz","bbia","vant","abbi","fini","bian","tina"],"rp":["inf","ivan","nfi","nif","nita","nav","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",325862],"trp":["nch",30760],"tlw":["chi",6236],"trw":["nisci",250],"lp":["ch","chi","cch","cchi","cin","sib","sibi","sch","ssib","bis","schi"],"rp":["nch","inc","nci","inci","ich","nic","icin","ntic","nist"]},"59":{"input":[1,2,4,5,6],"tlw":["stanza",2031],"trw":["jack",1501],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",29283],"trp":["inte",12868],"tlw":["viene",2680],"trw":["niente",4357],"lp":["enti","ven","vreb","vent","rin","veni","rni","vien","bri","venn"],"rp":["inte","ient","nve","iven","inve","ibe","iber","nev","ibr","nir"]},"61":{"input":[1,3,4,5,6],"tlw":["avrebbe",7187],"trw":["infine",1261],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["che",190983],"trw":["invece",4329],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["anche",22478],"trw":["neanche",898],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",538],"trw":["o",24888],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1339],"trp":["oa",935],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",207940],"trp":["os",147196],"tlw":["so",6170],"trw":["oso",79],"lp":["so","sso","sos"],"rp":["os","oss","osso","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["asso",6821],"trp":["osa",24654],"tlw":["sasso",152],"trw":["ossa",382],"lp":["asso","aso","aos","wo","sao"],"rp":["osa","ossa","ow","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",5232],"trp":["oe",8136],"trw":["-",14856],"lp":["eo"],"rp":["oe","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"lp":["xo"],"rp":[]},"70":{"input":[2,3,7],"tlp":["do",158471],"trp":["od",22403],"tlw":["do",2723],"trw":["od",70],"lp":["do","esso","eso","edo","dos","doss","ddo","eddo","sod","ddos","sodd","seo"],"rp":["od","osse","odo","ose","ode","oes","odd","odes"]},"71":{"input":[1,2,3,7],"tlp":["ado",4250],"trp":["oda",1104],"tlw":["adesso",3039],"lp":["ado","addo","aseo","ados","dado"],"rp":["oda","oad","owd","owde","osea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",401592],"trp":["ot",65714],"tlw":["to",7313],"trw":["otto",700],"lp":["to","tto","gg","go","tog","tot","gog","got","gott","gt","gto","ggo"],"rp":["ot","og","ott","otto","ogg","oto","ogo","otog"]},"73":{"input":[1,4,7],"tlp":["ato",73996],"trp":["of",9885],"tlw":["fatto",10159],"trw":["of",731],"lp":["ato","ag","fo","ga","atto","tato","agg","aga","tag","gat","ago","fog","fot","gato","foto"],"rp":["of","ota","off","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",390163],"trp":["oc",56253],"tlw":["sotto",6145],"trw":["oc",194],"lp":["co","sto","cos","cco","sco","sog","sot","sott","cost","soc","sg","tos","ttos","tost"],"rp":["oc","ost","occ","osc","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cosa",19547],"trp":["osta",6879],"tlw":["cosa",13626],"lp":["cosa","fos","foss","acco","cato","sato","asco","caso","sag","sagg","sof","sfo","aco","asto","soff","ssag","asfo"],"rp":["osta","occa","oca"]},"76":{"input":[3,4,7],"tlp":["ro",227920],"trp":["or",269472],"tlw":["ero",2296],"trw":["ore",1264],"lp":["ro","eg","tro","ero","ge","gr","tor","etto","rto","rg","erto","gge","egg","ttor"],"rp":["or","ore","ort","oro","ote","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",26973],"trp":["ora",39990],"tlw":["forte",2002],"trw":["ora",7824],"lp":["for","gra","aro","rag","rato","ega","raga","rof","gar","fort","fro","arg","ator","ragg","rofo","egat","efo"],"rp":["ora","orta","orat"]},"78":{"input":[2,3,4,7],"tlp":["cor",38804],"trp":["ors",15158],"tlw":["stesso",6792],"lp":["cor","esto","rso","erso","seg","sor","rdo","ros","eco","deg","seco","stro","cord","stor","cors"],"rp":["ors","ostr","ord","orse","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",8373],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",433832],"trw":["un",115533],"lp":[],"rp":["on","no","un","non","uo","ono","nu","uno","nno","nuo","onn","uon","nun","uono","nono","nnu","onno","ou","onu","nuno"]},"81":{"input":[1,5,7],"tlp":["qu",190328],"trp":["ua",132700],"tlw":["qua",1585],"trw":["una",79579],"lp":["qu","qua","ano","quan","anno","au","anqu","annu","quo"],"rp":["ua","una","uan","ona","nqu","unq","unqu","onna","nua","uona","uann"]},"82":{"input":[2,5,7],"tlp":["su",132637],"trp":["us",36612],"tlw":["sono",21614],"trw":["uso",357],"lp":["su","son","suo","sono","ssu","sun","ssun","suno","sus","suon","sson"],"rp":["us","nos","ons","nso","onos","uss","jo","uso","uns"]},"83":{"input":[1,2,5,7],"tlp":["sua",24168],"trp":["uas",6999],"tlw":["sua",23065],"trw":["naso",1168],"lp":["sua","quas","sona","aus","ausa","suna","susa","assu","squ","sano","squa","ssua"],"rp":["uas","usa","usan","onsa","naso","ussa","own","jona"]},"84":{"input":[3,5,7],"tlp":["eno",16301],"trp":["ue",125676],"trw":["oy",212],"lp":["eno","enu","eu","enno","eon","eone"],"rp":["ue","one","onne","une","uen","yo","n-","oy","neo","uone","onen","nue","uy","noe"]},"85":{"input":[1,3,5,7],"tlp":["que",97787],"trp":["nque",9338],"tlw":["que",683],"lp":["que","equ","eque","quen","aneo","enua","aone","eau","aneu","anue"],"rp":["nque","yoa","uane"]},"86":{"input":[2,3,5,7],"tlp":["du",34768],"trp":["ndo",56462],"tlw":["due",12347],"trw":["nessuno",3678],"lp":["du","due","don","endo","donn","essu","enso","sue","edu","dun","sone"],"rp":["ndo","ues","ond","ondo","ud","onde","ude","use","onse"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",17079],"trw":["nessuna",1517],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",92522],"trp":["ut",89032],"tlw":["tutto",14989],"trw":["noto",633],"lp":["tu","tut","gn","tutt","gu","gno","bo"],"rp":["ut","nto","utt","ont","ng","uto","utto","ogn","ob","ub","ngo","not","ung"]},"89":{"input":[1,4,5,7],"tlp":["anto",26642],"trp":["onta",14073],"tlw":["quanto",9498],"trw":["nota",688],"lp":["anto","fu","gua","fon","atu","gna","ang","tua","agn","fuo","bano","aut"],"rp":["onta","uant","uta","utta","nato","natu","onf","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",129147],"trp":["nco",21375],"tlw":["con",65735],"trw":["jung",428],"lp":["con","cu","cont","cun","cono","cons","sogn","scu","stu","cuo","sub","conc"],"rp":["nco","uc","usc","nost","ucc","nosc","ust","onc"]},"91":{"input":[1,2,4,5,7],"tlw":["bocca",2528],"trw":["nascosto",446],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",24735],"trp":["ur",55498],"tlw":["tutte",5259],"trw":["notte",3456],"lp":["ento","rno","ru","tur","ron","gen","torn","gnor","gue","egn"],"rp":["ur","orn","nor","ntro","orno","uro","ontr","ure","onte","uor"]},"93":{"input":[1,3,4,5,7],"tlw":["erano",13650],"trw":["natura",2226],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["contro",4167],"trw":["nostro",2381],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["questo",17502],"trw":["nostra",2563],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",292163],"trw":["il",150399],"lp":[],"rp":["ll","io","li","il","ol","lo","llo","olo","oi","lio","lli","oli","ili","oll","ill","ilo","ollo","iol","olli","oio"]},"97":{"input":[1,6,7],"tlp":["al",306120],"trp":["la",389912],"tlw":["al",34419],"trw":["la",169844],"lp":["al","all","zio","alla","azio","ali","zo","allo","zzo","ala","alo","azzo","alz"],"rp":["la","lla","ola","lia","ial","izio","lz"]},"98":{"input":[2,6,7],"tlp":["sol",35720],"trp":["osi",21430],"tlw":["solo",15660],"trw":["los",154],"lp":["sol","solo","sio","ssio","soli","sil","ssol","soll"],"rp":["osi","iso","ossi","ios","ls","lis","isio","ioso","los","ols","lsi","loso"]},"99":{"input":[1,2,6,7],"tlp":["sal",7582],"trp":["las",8686],"tlw":["sola",1804],"trw":["ossia",438],"lp":["sal","sola","als","sali","alsi","alis","zios","sala","asio","wil","wal","salo","will"],"rp":["las","osiz","lass","lsia","iosa","oak","oaki"]},"100":{"input":[3,6,7],"tlp":["el",300307],"trp":["le",283237],"tlw":["el",414],"trw":["le",75413],"lp":["el","ell","elle","ello","elli","ele","eli","elo"],"rp":["le","lle","ile","ole","lei","lie","iel","olle","ielo","ioe","ille","liel"]},"101":{"input":[1,3,6,7],"tlp":["ella",86423],"trp":["iale",6102],"tlw":["alle",8523],"lp":["ella","ale","alle","ela","eal","ezzo","ezio","eale","elai","elaz","eali","aile","alie"],"rp":["iale","lez","lezz","llez","lea","lezi","olez"]},"102":{"input":[2,3,6,7],"tlp":["del",145198],"trp":["ido",5517],"tlw":["del",59660],"trw":["les",352],"lp":["del","dell","dio","dol","sole","sile","dolo","deli","sold"],"rp":["ido","ld","les","odi","oesi","less","old","lid","lse","iod","olse"]},"103":{"input":[1,2,3,6,7],"tlw":["della",49783],"trw":["ideale",372],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",98127],"trp":["lt",89489],"tlw":["gli",38211],"trw":["oggi",2072],"lp":["gi","gl","gli","vo","gio","vol","ggi","volt","glio","ggio"],"rp":["lt","ov","olt","ig","ito","lto","igl","igli","lit","olto"]},"105":{"input":[1,4,6,7],"tlp":["alt",36637],"trp":["lta",24023],"tlw":["volta",7909],"trw":["lato",1361],"lp":["alt","tal","gia","aggi","agi","avo","glia","agl","agli","gaz","val","fig","agaz"],"rp":["lta","olta","ova","lita","iato","lat","lav"]},"106":{"input":[2,4,6,7],"tlp":["col",38715],"trp":["ico",29735],"tlw":["cosi",14686],"lp":["col","cio","cosi","sig","colo","voc","ccol","tico","soci","cl","coll"],"rp":["ico","lc","lic","oci","lco","isto","icol","lcos","icco"]},"107":{"input":[1,2,4,6,7],"tlw":["cavallo",1015],"trw":["lasciato",1193],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",23501],"trp":["lor",31885],"tlw":["vero",3849],"trw":["loro",17911],"lp":["rio","egl","egli","rl","rov","gior","evo","tori","rol","trov"],"rp":["lor","ltr","ori","ove","ior","loro","let","lett","ltro","leg"]},"109":{"input":[1,3,4,6,7],"tlw":["allora",5910],"trw":["lavoro",2692],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dove",7905],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["storia",3176],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["iu",69600],"trw":["lui",16197],"lp":[],"rp":["iu","ion","ui","lu","ul","ino","oni","ull","lui","ho","ioni","uoi","lin","uni","lun","hio","inu","lon","noi","iun"]},"113":{"input":[1,5,6,7],"tlp":["zion",44305],"trp":["ual",34744],"tlw":["qui",6480],"trw":["hanno",4870],"lp":["zion","qual","qui","quin","alu"],"rp":["ual","ulla","nal","lan","nzio","uz","uali","iano","uzi","uzio","onal","iona","inua","inqu","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sul",27914],"trp":["ius",9576],"tlw":["sul",12074],"trw":["john",422],"lp":["sul","sull","sion","suoi","sui","sino","solu"],"rp":["ius","usi","onsi","lus","joh","john","isu","hius","uis","nsio","ussi","usio","isul"]},"115":{"input":[1,2,5,6,7],"tlw":["sulla",9250],"trw":["unknown",242],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"trp":["nel",55639],"tlw":["ellen",168],"trw":["nel",25842],"lp":[],"rp":["nel","ione","uel","uell","nell","len","ulle","uei","ilen","uole","olen","line","ieno","ly","lly","llen","hel","iyo","onie","lien"]},"117":{"input":[1,3,5,6,7],"tlw":["quella",13048],"trw":["nella",18121],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sulle",3574],"trw":["johnny",2025],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quindi",2988],"trw":["honda",1391],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",19308],"trp":["ing",11351],"tlw":["tutti",11017],"trw":["ogni",9891],"lp":["bil","gni","vu","giu","gin","bl"],"rp":["ing","utti","ign","ogni","uov","ibil","nuov","ult","igno","lib","onti","itu","iut","lung"]},"121":{"input":[1,4,5,6,7],"tlw":["fino",4978],"trw":["lingua",2263],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cui",15060],"trw":["occhi",7963],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["qualcosa",5921],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["giorno",5009],"trw":["intorno",2138],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["avevano",4836],"trw":["labbra",1521],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vecchio",2836],"trw":["luce",3993],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["qualche",7372],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",38074],"trw":["p",2856],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",53641],"trp":["pa",113853],"tlw":["ap",277],"trw":["pa",1374],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",57528],"trp":["ps",391],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",10722],"trp":["pas",13080],"tlw":["spa",392],"trw":["passa",483],"lp":["sap","spa","asp","sapp","aspa","asap","spas"],"rp":["pas","pass","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9203],"trp":["pe",210895],"tlw":["e'",746],"trw":["'",1162],"lp":["ep","epp","e'","eppe","epe"],"rp":["pe","'e","ppe","'ep","pep","pepe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",12996],"trp":["'a",34981],"tlw":["a'",123],"trw":["pae",158],"lp":["ape","appe","epa","a'","epap","a'a","eppa"],"rp":["'a","pae","pea","'ap","'ape","pape","'app","'ex"]},"134":{"input":[2,3,8],"tlp":["spe",21318],"trp":["pes",6844],"tlw":["de'",420],"lp":["spe","d'","esp","spes","s'","espe","s'e","sep","sepp","d'e","sped","d'es","de'"],"rp":["pes","'es","pess","'ess","'esp","ped","ppes"]},"135":{"input":[1,2,3,8],"tlp":["sape",7738],"trp":["pad",5524],"tlw":["spada",415],"trw":["paese",1433],"lp":["sape","d'a","aspe","sepa","spad","dap","dapp","s'a","apes","spea","s'as"],"rp":["pad","paes","pesa","'as","'ass","pada","pade","peda","'asp"]},"136":{"input":[4,8],"tlp":["tp",67],"trp":["pt",593],"trw":["pt",593],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",444],"trp":["pat",3422],"tlw":["tappa",74],"trw":["pat",105],"lp":["tap","tapp"],"rp":["pat","pata","patt","ppat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["cap",16620],"trp":["pac",3619],"tlw":["cap",137],"trw":["passata",399],"lp":["cap","capa","apac","capp","scap"],"rp":["pac","past","pasc","pacc","paca"]},"140":{"input":[3,4,8],"tlp":["rp",6335],"trp":["pr",145579],"trw":["per",80117],"lp":["rp","t'","rep","rpr","rpre","rpe"],"rp":["pr","per","pre","pet","'er","pett","pert","pere","ppr","ppre","pete","perr","pret","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",5944],"trp":["par",50789],"tlw":["aperta",930],"trw":["parte",8500],"lp":["rap","aper","rapp","apr","appr","epar","t'a"],"rp":["par","part","'era","pra","pare","pera","'ar","ppar","perf","prat","para","'art","'at"]},"142":{"input":[2,3,4,8],"tlp":["c'",13326],"trp":["pres",21493],"tlw":["c'e",5387],"trw":["prese",1400],"lp":["c'","c'e","spet","c'er","sper","spec","spr","espr","spre","resp","st'"],"rp":["pres","perc","pers","pec","prec","perd","pecc","'est","pesc"]},"143":{"input":[1,2,3,4,8],"tlw":["c'era",5795],"trw":["padre",3195],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",63764],"trw":["m",580],"lp":[],"rp":["mp","mm","pn","pm"]},"145":{"input":[1,5,8],"tlp":["am",93470],"trp":["ma",209998],"tlw":["ama",245],"trw":["ma",53590],"lp":["am","ama","amm","amp","amma","ampa","aman","anam"],"rp":["ma","man","mma","mpa","pan","mana","mam","nam","mamm","nap","mpan","pann"]},"146":{"input":[2,5,8],"tlp":["sm",3714],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",2868],"trp":["mas",6926],"tlw":["sam",230],"trw":["massa",628],"lp":["sam","asm","sma","asma","ssam"],"rp":["mas","mass","nsap","jam","mpas","njam","pasq","mmas","nasp","nsam"]},"148":{"input":[3,5,8],"tlp":["em",69499],"trp":["me",205039],"trw":["me",9600],"lp":["em","emp","eme","emen","emm","emme"],"rp":["me","men","pen","n'","mme","nem","ppen","mmen","mpe","nemm","nep","m'","mem","nepp"]},"149":{"input":[1,3,5,8],"tlp":["ame",31411],"trp":["pena",4673],"tlw":["appena",3899],"trw":["'na",1029],"lp":["ame","amen","ema","amme","eam","eame","emma"],"rp":["pena","'an","n'a","mane","'am","mae","'ann","nema","'na","name","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",25705],"trp":["pens",14000],"tlw":["sem",596],"trw":["mese",638],"lp":["sem","semp","esem","spen","sme","dem","ssem"],"rp":["pens","mes","mess","med","pend","mmed","mens","n'es","mese","mped","mede","mmes","mend"]},"151":{"input":[1,2,3,5,8],"tlw":["damane",190],"trw":["pensa",920],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",759],"trp":["mb",24935],"lp":["tm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",11090],"trp":["mat",11944],"tlw":["fama",205],"trw":["mat",965],"lp":["tam","amb","fam","bam","bamb","ttam","amat","atam","tamp","amba"],"rp":["mat","matt","mant","mba","ntam","mata","mpat","mmat","pant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["stampa",344],"trw":["manca",395],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",30451],"trp":["ment",73144],"tlw":["be'",1001],"trw":["mentre",7346],"lp":["rm","tem","temp","empr","erm","emb","embr","rme","rem","term","trem"],"rp":["ment","mpr","mpre","mer","mbr","met","mett","pren","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["entrambe",518],"trw":["mare",1575],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",11019],"trw":["prendere",1451],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["sembra",1918],"trw":["madre",2851],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",115591],"trw":["pi",1894],"lp":[],"rp":["pi","ip","ipi","ppi","pii","pip","ipp"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10470],"trp":["pia",13275],"trw":["piazza",530],"lp":["api","appi","apii"],"rp":["pia","paz","pazi","ipa","ppia","pai","pazz","piaz","iap","iapi","ipaz","iapp","pipa","piz","pizz","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",10357],"trp":["isp",11667],"tlw":["spi",83],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",1284],"trp":["ispa",273],"tlw":["sappia",270],"trw":["passi",1081],"lp":["spia","apis","spaz","sapi","aspi"],"rp":["ispa","pais","isap","pias"]},"164":{"input":[3,6,8],"tlp":["epi",750],"trp":["pie",14120],"trw":["pie",288],"lp":["epi","eppi"],"rp":["pie","'i","ipe","i'","'ip","iep","pei","ppie","iepi","iepe"]},"165":{"input":[1,3,6,8],"tlp":["apie",832],"trp":["pez",2090],"trw":["pezzi",621],"lp":["apie","z'","zz'","ezz'","z'a","ai'"],"rp":["pez","pezz","'az","'azi","'ai"]},"166":{"input":[2,3,6,8],"tlp":["disp",3751],"trp":["pied",3956],"tlw":["spie",208],"trw":["piedi",2995],"lp":["disp","spie","dip","dipe","espi","d'i","dipi","s'i"],"rp":["pied","ispe","pid","'id","'ide","pedi","'esi","'is","pidi","ipes","'edi","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["appesi",112],"trw":["paesi",504],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2675],"trp":["pit",7247],"tlw":["tipi",332],"lp":["tip","tipi"],"rp":["pit","piv","piti","pitt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",4239],"trp":["pita",2661],"trw":["piatti",270],"lp":["apit","apiv","vap"],"rp":["pita","pav","piat","pavi","piva","pati","pava","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",5282],"trp":["pic",6757],"tlw":["tipici",78],"lp":["cip","cipi","spit","scip","stip","tisp"],"rp":["pic","picc","pisc","pist","ipic","psic","icip","pick","pici"]},"171":{"input":[1,2,4,6,8],"tlw":["capi",635],"trw":["passava",443],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3818],"trp":["pri",41676],"tlw":["ripete",508],"trw":["pri",723],"lp":["rip","ripr","ripe","v'","v'e"],"rp":["pri","pir","peri","pev","piri","priv","piet","pire","prie","ipr","ipet","ipre","prir","prev","pier"]},"173":{"input":[1,3,4,6,8],"tlw":["apri",920],"trw":["parti",1322],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["specie",1573],"trw":["presi",303],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sapeva",2346],"trw":["piacere",1214],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",125525],"trw":["mi",29736],"lp":[],"rp":["mi","im","min","imp","imi","mini","mpi","mmi","imm","nim","mmin","pin","inim","immi","mim","mimi","impi","pini","ph","ipin"]},"177":{"input":[1,5,6,8],"tlp":["ami",11196],"trp":["ima",27754],"tlw":["anima",623],"trw":["mai",10502],"lp":["ami","anim","ammi","ampi"],"rp":["ima","iam","mai","mia","mani","mina","hiam","pian","imma","iama","nima","iman","maz","impa","mazi","manz"]},"178":{"input":[2,5,6,8],"tlp":["sim",7979],"trp":["mis",8876],"tlw":["spin",81],"trw":["misi",410],"lp":["sim","ssim","simi","spin","smi","simp","smis","sism"],"rp":["mis","miss","mmis","ism","pins","misi","nism","imis","jim","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["spina",102],"trw":["massima",364],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["empi",4592],"trp":["ime",13962],"tlw":["ehm",84],"trw":["miei",2459],"lp":["empi","emi"],"rp":["ime","imen","'in","mie","'h","iem","'im","pien","ieme","miei","'imp","impe","imme","h'","mine","ipen","inem","'imm"]},"181":{"input":[1,3,5,6,8],"tlw":["zampe",282],"trw":["piena",963],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dimmi",325],"trw":["insieme",2565],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["assieme",502],"trw":["pensai",375],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12886],"trp":["mbi",7548],"tlw":["tim",512],"trw":["miti",105],"lp":["tim","ttim","vim","timi","bim","bimb"],"rp":["mbi","mit","mbin","imit","ntim","imb","pint","mpit","miti","itm","mbit","miv","mith","mpiv"]},"185":{"input":[1,4,5,6,8],"tlw":["bambini",1251],"trw":["mattina",971],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",194],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["amici",1446],"trw":["macchina",1679],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tempi",1297],"trw":["perrin",1178],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["veramente",1194],"trw":["prima",12710],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sentimenti",600],"trw":["perche",14386],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["sembrava",3174],"trw":["presenza",1054],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",170696],"trw":["po",1713],"lp":[],"rp":["po","op","opo","ppo","opp","oppo","pop","popo","oop","ppop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",3603],"trp":["opa",1076],"lp":["appo","apo"],"rp":["opa","oppa","pao"]},"194":{"input":[2,7,8],"tlp":["spo",12332],"trp":["pos",30275],"tlw":["spo",162],"trw":["posso",2175],"lp":["spo","spos","sop","sosp","sopp"],"rp":["pos","poss","osp","opos","poso","ppos"]},"195":{"input":[1,2,7,8],"tlp":["sapo",395],"trp":["posa",1234],"tlw":["sposa",181],"trw":["passo",2265],"lp":["sapo","aspo","apos"],"rp":["posa"]},"196":{"input":[3,7,8],"tlp":["epo",996],"trp":["'o",10586],"trw":["po'",5326],"lp":["epo","eop","eppo"],"rp":["'o","ope","o'","poe","po'","'op","'ope","peo","'epo","oppe","oope","opeo","'opp","opee"]},"197":{"input":[1,3,7,8],"tlp":["eopa",82],"trp":["opea",192],"lp":["eopa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",11237],"trp":["pose",2787],"tlw":["dopo",9632],"trw":["peso",740],"lp":["dop","dopo","d'o","espo","dopp","depo","epos"],"rp":["pose","poes","ospe","peso","os'","os'e","'od","'os","'odo","pod","opod","pode","'osp"]},"199":{"input":[1,2,3,7,8],"tlw":["appeso",230],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",650],"trp":["pot",22315],"tlw":["topo",171],"lp":["top","topo","ttop"],"rp":["pot","pog","ppog","pogg","pott","opot","ppot","opog"]},"201":{"input":[1,4,7,8],"trp":["pag",5925],"trw":["patto",180],"lp":[],"rp":["pag","paga","pato","opag","pago","ppag"]},"202":{"input":[2,4,7,8],"tlp":["cop",6022],"trp":["post",9448],"tlw":["scopo",742],"trw":["poco",4741],"lp":["cop","scop","copp","copo","coop","spog","cosp"],"rp":["post","poc","poco"]},"203":{"input":[1,2,4,7,8],"tlw":["capo",2162],"trw":["passato",1802],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",21378],"trp":["pro",42777],"tlw":["troppo",4434],"trw":["pero",4668],"lp":["rop","ropr","trop","ropp","rpo","ropo"],"rp":["pro","por","opr","port","pote","prop","oper","pero","'or","orp","potr","ppor","orpo","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["rapporto",1150],"trw":["porta",4253],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",2667],"trw":["presto",1698],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["sopra",3357],"trw":["peccato",398],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",124534],"trw":["puo",6756],"lp":[],"rp":["mo","om","pu","mpo","um","mon","omp","up","uom","mu","omo","puo","pun","uomo","omm","mom","nom","ppu","pon","mun"]},"209":{"input":[1,5,7,8],"tlp":["amo",18506],"trp":["oma",10024],"tlw":["amo",246],"trw":["mano",6828],"lp":["amo","ampo","appu","apu","aum","amon"],"rp":["oma","mano","oman","ompa","uma","uman","pau","upa","munq","omma","napo","mona","uam","nuam"]},"210":{"input":[2,5,7,8],"tlp":["sup",3910],"trp":["mos",4879],"tlw":["sommo",127],"trw":["possono",1433],"lp":["sup","spon","som","smo","somm","sum","spu","ssum","supp","spun"],"rp":["mos","mus","mpos","nsom","moss","pons","moso","nsum","mous","moos"]},"211":{"input":[1,2,5,7,8],"tlw":["somma",313],"trw":["pausa",424],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["empo",10444],"trp":["ome",58690],"trw":["meno",4910],"lp":["empo","emo","eppu"],"rp":["ome","'u","meno","omen","un'","ume","mome","'un","'uo","'uom","nome","upe","nume","umen","omme","n'o","un'o"]},"213":{"input":[1,3,5,7,8],"trw":["umane",290],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",897],"trw":["modo",7852],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["domanda",1306],"trw":["pensando",468],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2271],"trp":["punt",7081],"tlw":["tom",318],"trw":["punto",4093],"lp":["tom","tup","gom"],"rp":["punt","mont","omb","potu","pub","pubb","mot","mog","mbo","put","mob","pug","mut","pugn","moto","puto","pont"]},"217":{"input":[1,4,5,7,8],"tlw":["appunto",879],"trw":["punta",775],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",539],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1259],"trw":["manco",711],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",9244],"trw":["momento",5714],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2605],"trw":["paura",1888],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["come",44183],"trw":["persone",2066],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["comunque",2203],"trw":["persona",1755],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",14737],"trw":["poi",13201],"lp":[],"rp":["poi","pl","pol","pio","pli","lp","poli","olp","ipo","opol","lpo","olpo","oppi","lpi","olpi","opi","polo","ipio","ppio","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",617],"trp":["pal",8270],"trw":["paio",1036],"lp":["alp","apol","alap"],"rp":["pal","pall","pola","paio","pala","ipal","pla","lpa","olpa","poz","pozz","palp","pali","pila","opia","lap","paol"]},"226":{"input":[2,6,7,8],"tlp":["spl",884],"trp":["ispo",7900],"tlw":["spio",684],"trw":["polso",267],"lp":["spl","spio","splo","spli"],"rp":["ispo","posi","ospi","pols","ipos","piso","lpis","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["spazio",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["ell'",11381],"trp":["l'",63315],"trw":["pelle",1317],"lp":["ell'","epl","epli"],"rp":["l'","ll'","l'i","l'o","l'e","pel","ll'i","pell","ple","ll'e","ll'o","lpe","'io","l'op","ppel","pelo","olpe"]},"229":{"input":[1,3,6,7,8],"tlw":["appello",93],"trw":["pezzo",996],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["doppio",286],"trw":["poesie",742],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spalle",2219],"trw":["poesia",1881],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",1710],"trp":["pito",3299],"tlw":["tipo",1710],"trw":["piglio",445],"lp":["tipo","topi","volp"],"rp":["pito","pov","pig","pigl","piog","ipot","polv","polt","lpit","poti","ipig","pogl","piov","lpiv"]},"233":{"input":[1,4,6,7,8],"tlw":["appoggio",268],"trw":["pioggia",738],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["colpo",1583],"trw":["piccolo",2047],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capito",1303],"trw":["piccola",1514],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["proprio",7247],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["poteva",4863],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["rispose",2477],"trw":["percio",1506],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["capelli",2276],"trw":["particolare",1528],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["piu",40881],"trw":["piu",38322],"lp":[],"rp":["piu","lm","imo","omi","mol","omin","mio","mpl","mil","uomi","impo","ilm","mpli","lim","ompl","ommi","mili","mpio","imil","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animali",640],"trw":["piano",2006],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simili",901],"trw":["luminoso",184],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["siamo",2506],"trw":["possiamo",953],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["l'uomo",2192],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almeno",2906],"trw":["mezzo",2952],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["esempio",1778],"trw":["modi",645],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["domani",713],"trw":["posizione",1014],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["molto",8286],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["abbiamo",2561],"trw":["montalbano",3474],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comincio",1412],"trw":["piuttosto",1744],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["amico",1691],"trw":["possibilita",1220],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["meglio",3762],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1303],"trw":["ormai",2373],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["semplice",1455],"trw":["possibile",2609],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["commissario",2277],"trw":["l'unica",795],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json index 2869e8f77c..4ce0c11bf4 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",565178],"tlw":["a",1899],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",31510],"tlw":["s",593],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["wa",249084],"tlw":["was",91211],"lp":["wa","as","was","waa","sa","aas","ass","ssa","ws","wass","assa","sw","aw","saa","swa","swaa","ww","awa","awaa","waas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",595701],"tlw":["e",445],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",9134],"tlw":["x",171],"lp":["ea","ex","ax","ae","xe","xa","eaa","exa","axe","exe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",835524],"tlw":["de",381576],"lp":["de","es","ed","se","ede","dd","dde","ds","eed","ees","sse","dee","eds","eeds","deed","ess","sd","ese","dse","eede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270505],"tlw":["we",27843],"lp":["da","we","ad","wee","daa","ew","ewe","ade","add","adde","eda","wees","ewee","wd","dw","aad","edaa","wde","asse","ada"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",33524],"tlw":["t",381],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",290899],"tlw":["af",9932],"lp":["at","ta","aat","af","ft","taa","fa","ff","taat","taf","att","tat","aaf","aatt","ata","aff","fat","tf","tta","aft"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260352],"tlw":["c",381],"lp":["st","sc","ts","ct","tst","ssc","cc","stt","tsc","tc","sts","stst","sst","stsc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",73946],"tlw":["wat",36195],"lp":["ac","wat","sta","tw","ast","staa","ats","aats","fs","wac","ca","aast","atst","act","afs","tas","fst","twa","fac","tac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",710975],"tlw":["te",105276],"lp":["er","et","te","re","eer","ter","ere","rt","tr","ete","tte","ert","ree","eet","rte","tre","tee","ett","rr","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",396560],"tlw":["extra",700],"lp":["ar","aar","ra","ef","raa","eef","are","ate","eft","eeft","fe","art","tra","era","ater","fr","rat","ara","afe","ffe"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",138895],"tlw":["eerste",6507],"lp":["rd","der","ste","rs","erd","rde","ers","est","dr","ec","erde","dere","ets","rst","eder","erst","eest","eerd","ster","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dat",155858],"tlw":["dat",136467],"lp":["dat","waar","wer","daar","war","fd","ard","weer","ware","werd","rw","erw","twe","twee","dac","aard","dra","fde","weet","ader"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",51105],"trw":["n",1346],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",559245],"trp":["na",127869],"tlw":["aan",55690],"trw":["na",10653],"lp":["an","aan","ann","ana","anna","aann","anaa","aq"],"rp":["na","naa","nna","nan","naan","nnaa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9856],"trp":["jn",169981],"trw":["j",357],"lp":["sn","sj"],"rp":["jn","ns","js","nj","jns"]},"19":{"input":[1,2,5],"tlp":["wan",14017],"trp":["ja",31023],"tlw":["san",173],"trw":["ja",6777],"lp":["wan","ans","wann","aans","anw","sna","san","aanw","anj","aj","asj"],"rp":["ja","jaa","jna","nw","naas","jan","jas","jw","nja"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1522448],"trp":["ne",132761],"tlw":["en",225891],"trw":["nee",4568],"lp":["en","een","ene","enen","enn","enne","enee","ey","eene","eeen"],"rp":["ne","nen","nne","nnen","nee","nnee","neen","ny","nny","yn"]},"21":{"input":[1,3,5],"tlp":["anne",10606],"trp":["ya",413],"tlw":["anne",219],"lp":["anne","ena","ane","enaa","anen","ean","ay","anee","eaan","enan","xan","exan","anny","xy","exy","eq","eena"],"rp":["ya","yan","nane"]},"22":{"input":[2,3,5],"tlp":["den",130605],"trp":["nd",254142],"tlw":["eens",9370],"trw":["je",69369],"lp":["den","ens","end","sen","ende","eden","eens","dden","ssen","ense","sje"],"rp":["nd","nde","je","jd","nden","nse","nsen","jde","jes"]},"23":{"input":[1,2,3,5],"tlp":["and",86982],"trp":["nda",7813],"tlw":["dan",33270],"trw":["new",907],"lp":["and","dan","ande","wen","aand","anda","daan","anse","ands","aden","wens","anwe","wend"],"rp":["nda","nad","ndaa","nwe","nada","nade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",17696],"trp":["nt",98660],"tlw":["b",387],"lp":["bb","bt","tb","tn"],"rp":["nt","nb","ntb","ntt"]},"25":{"input":[1,4,5],"tlp":["ant",32323],"trp":["nat",8926],"tlw":["baan",878],"trw":["nat",410],"lp":["ant","ba","taan","tan","baa","ban","ab","anta","aant","tba","anaf","tant","fan","baan","fant"],"rp":["nat","nta","naf","nf","nba"]},"26":{"input":[2,4,5],"tlp":["tj",16496],"trp":["nst",10582],"lp":["tj","bs","sb","stj","stb","tsn"],"rp":["nst","nc","jt","nts","nsc","ntj","jst","jnt","ntst","ntsn","nct","jntj","ntsc","jb"]},"27":{"input":[1,2,4,5],"tlp":["want",6670],"trp":["jf",10865],"tlw":["want",6458],"trw":["naast",3850],"lp":["want","antw","stan","baas","anc","atj","fj","abs","bas","aatj","anst"],"rp":["jf","ntw","nac","jft","jac","nsta","ntac","nanc","ntas"]},"28":{"input":[3,4,5],"tlp":["be",171694],"trp":["nte",12846],"tlw":["ben",10919],"trw":["net",7100],"lp":["be","ten","ren","eb","ben","br","eren","ent","eten","bbe","bben","ebb","ebbe","rb","bee","rn","tten","bet","ber"],"rp":["nte"]},"29":{"input":[1,3,4,5],"tlp":["aren",23808],"trp":["naar",55710],"tlw":["eraan",1152],"trw":["naar",52688],"lp":["aren","aten","ran","rna","bra","arn","aarn","arna","baar","ante","bar","rba","erba","fran","eran","arb","fen","raan","rant"],"rp":["naar"]},"30":{"input":[2,3,4,5],"tlp":["rden",25498],"trp":["nder",65247],"tlw":["beetje",4094],"lp":["rden","bes","tje","bed","sten","best","etj","etje","eetj","tend","cen","rend","besc","cent","enst","tjes"],"rp":["nder","nste","ntje","ndr"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",17010],"trw":["jaar",7230],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",416],"trw":["i",704],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",217546],"trp":["ia",10521],"tlw":["z",113],"lp":["zi","za","ai","zaa","aai","az","azi","zz","zia","azia","zaai","zzi"],"rp":["ia","iz","iaa","iza","izi","izaa","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",19356],"trp":["ik",185103],"trw":["ik",149098],"lp":["si","ssi","sk","sis","ssis"],"rp":["ik","is","kk","ki","iss","ks","ikk","kki","iks","isi","isk","issi","kis","ikki","isis"]},"35":{"input":[1,2,6],"tlp":["wi",80880],"trp":["ka",52225],"tlw":["zaak",1687],"trw":["kaas",199],"lp":["wi","ak","aak","zw","wis","zwa","akk","zak","zaak","wak","zwaa","wakk","zwi"],"rp":["ka","kw","kwa","kaa","ika","kas","kwaa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",112497],"trp":["ie",427576],"tlw":["ei",126],"trw":["ie",333],"lp":["ei","eie","eei"],"rp":["ie","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",250139],"trp":["ize",3585],"tlw":["ze",116542],"lp":["ze","ez","zei","eze","zie","ezi","ezie","zee","aze","aie","eiz","aaie","eza","eize","xi","axi","eiza"],"rp":["ize","iez","ieze"]},"38":{"input":[2,3,6],"tlp":["di",156986],"trp":["ke",180090],"tlw":["die",84576],"trw":["keek",10339],"lp":["di","ek","die","eke","eek","eid","ekk","ekke"],"rp":["ke","id","kke","kee","ide","keek","ied","idd","iede","iek","ies","idde"]},"39":{"input":[1,2,3,6],"tlp":["ake",15537],"tlw":["deze",10880],"trw":["kwaad",950],"lp":["ake","dez","deze","wie","akke","zek","zeke","aid","wei","aaid","aide","wez","wek","ziek","week","zes","zwe","ewi","zake","adi"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",92155],"trp":["it",127567],"tlw":["tv",365],"trw":["it",435],"lp":["ti","vi","tv","tti","tit","vit","titi","tiv","tivi","viv","tvi","vivi"],"rp":["it","itt","iti","iv","ivi","itv","ivit","itti"]},"41":{"input":[1,4,6],"tlp":["va",224506],"trp":["if",3864],"tlw":["zat",6137],"trw":["if",78],"lp":["va","zit","av","ati","zat","fi","zitt","vaa","tz","fti","ffi","via","tzi","avi","vat","tai"],"rp":["if","ita","itz","ift"]},"42":{"input":[2,4,6],"tlp":["sti",15829],"trp":["ic",74589],"tlw":["vis",333],"trw":["kist",358],"lp":["sti","ci","ck","cti","tis","sit","tisc","vis","tk","tik","sv"],"rp":["ic","kt","ist","issc","ikt","isc","its","ici","kst"]},"43":{"input":[1,2,4,6],"tlp":["zic",46006],"trp":["kat",1851],"tlw":["wist",7236],"trw":["kast",575],"lp":["zic","akt","aakt","wist","vas","vast","twi","wit","vaak","zac","tak","stak","witt","asti","acti","vak","cia","ack"],"rp":["kat","kast"]},"44":{"input":[3,4,6],"tlp":["ve",223463],"trp":["iet",126034],"tlw":["vier",2544],"lp":["ve","ver","ri","ev","vr","eve","tie","rie","eri","vee","rv","vert","erv","vri","rei","vie"],"rp":["iet","ier","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["ari",10534],"trp":["ief",8550],"tlw":["zette",2378],"lp":["ari","zet","rz","vra","eva","rva","atie","vraa","zett","erz","raai","vera","erva","arv","aarv","ave","verz","aari","var"],"rp":["ief"]},"46":{"input":[2,3,4,6],"tlp":["rk",33984],"trp":["iets",24709],"tlw":["dit",13642],"trw":["iets",14243],"lp":["rk","erk","dit","verd","rek","dri","vers","rke","erke","eker","ric","tek","drie"],"rp":["iets","kte","ker","kr","keer","iste","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vader",6824],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",343391],"trw":["in",146093],"lp":[],"rp":["in","hi","ni","inn","nin","nh","ini","nni","hin","hn","nnin","inni","inh","hni","hnn","ih","nhi","inin","inhi"]},"49":{"input":[1,5,6],"tlp":["zin",7282],"trp":["ha",212677],"tlw":["zin",2379],"trw":["hanna",165],"lp":["zin","ani","ah","anz","anni","zinn","anh","zan","aanz"],"rp":["ha","haa","han","nz","hz","ina","nzi","ian","inz","nza","nzin"]},"50":{"input":[2,5,6],"trp":["ij",550946],"trw":["hij",131508],"lp":[],"rp":["ij","ijn","hij","jk","ijk","nk","kin","kij","kijk","ji","kn","ink","jij","nis","ins","nik","ijs","kni","hijn","isj"]},"51":{"input":[1,2,5,6],"tlp":["zij",124236],"trp":["kan",22915],"tlw":["zijn",106271],"trw":["kan",12791],"lp":["zij","zijn","wij","ank","win","wijz","wijn","wijs","anks","aank","zwij","wink"],"rp":["kan","jz","ijz","ijna","kans","haas","kaan","kwij"]},"52":{"input":[3,5,6],"tlp":["ein",21712],"trp":["he",426236],"tlw":["eh",524],"trw":["hen",5498],"lp":["ein","eh","eni","eine","ehe","enin","eini","enh"],"rp":["he","nie","ien","hee","hie","inne","hei","ine","hen","heen","hien","nhe"]},"53":{"input":[1,3,5,6],"tlp":["zien",14842],"trp":["nze",8382],"tlw":["zien",8781],"trw":["inzien",116],"lp":["zien","zen","eha","ezen","anie","enz","azen","ezin","ehan","aien","anze","ehaa","enza","eenz","enzi"],"rp":["nze","hze","izen","nzen","hae"]},"54":{"input":[2,3,5,6],"tlp":["eken",22412],"trp":["ken",85243],"tlw":["denk",3418],"trw":["kijken",4068],"lp":["eken","enk","din","denk","enke"],"rp":["ken","ind","ijd","nke","jke","ijke","inde","kken","heid","kind","iend","ndi","nken","kend","ijde"]},"55":{"input":[1,2,3,5,6],"tlw":["weken",1635],"trw":["had",55453],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59526],"trp":["ht",123626],"tlw":["bh",81],"lp":["bi","th","vin","bin","binn","tin","ttin"],"rp":["ht","hti","int","nti","nv","htt","htin","inti","htb","hit","ntv","ib","nth"]},"57":{"input":[1,4,5,6],"tlp":["van",189387],"trp":["hat",1531],"tlw":["van",171860],"trw":["haat",432],"lp":["van","vana","anti","tha","anv","aanv","anva","fin","ath","anav","abi","fh"],"rp":["hat","nva","nati","htba","inf","nav","hav","haat"]},"58":{"input":[2,4,5,6],"tlp":["ch",268567],"trp":["ich",66755],"tlw":["bij",29299],"trw":["kijkt",1607],"lp":["ch","cht","sch","bij","tij","chi","schi","chti","ssch","vij","bijn","chij"],"rp":["ich","icht","jv","ijv","isch","jkt","ijkt","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["zich",32148],"trw":["kant",2963],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",53110],"trp":["het",230522],"tlw":["even",9723],"trw":["het",226716],"lp":["ven","even","rin","rh","erh","erin","rien","the","verb"],"rp":["het","niet","hte","heb","hter","hebb","her","hten","hier","hr","iten"]},"61":{"input":[1,3,4,5,6],"tlw":["zitten",5880],"trw":["haar",73072],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tijd",8288],"trw":["niets",8728],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["achter",7426],"trw":["hard",1821],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",285058],"trw":["o",2376],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",407],"trp":["oa",7486],"lp":["ao"],"rp":["oa","ooa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",27187],"trp":["os",19065],"tlw":["so",132],"lp":["so","soo","sso"],"rp":["os","oos","oss","oso","osoo"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",53022],"trp":["ow",2105],"lp":["wo","woo","aso","aos","sow","woa"],"rp":["ow","owa","osa","owaa","ossa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2682],"trp":["oe",232725],"trw":["-",7439],"lp":["eo","e-","eoo","eoe"],"rp":["oe","o-","-o","-oo"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",189],"trp":["-a",938],"lp":["xo","exo","a-","x-","ex-"],"rp":["-a","o-a","ox","oea"]},"70":{"input":[2,3,7],"tlp":["do",77681],"trp":["oed",31676],"tlw":["dood",3509],"lp":["do","doo","doe","dood","edo","so-","edoe","dod","dode","se-"],"rp":["oed","od","oes","oede","ood","ode","-s","ods","ose","oods"]},"71":{"input":[1,2,3,7],"tlp":["ewo",10898],"trp":["oda",3201],"tlw":["woede",613],"lp":["ewo","ewoo","woe","woed","dwo","woes","edwo","ado","so-a","d-a","dow","ados","wod"],"rp":["oda","oew","oewe","owe","-w","-we","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",114612],"trp":["og",71340],"tlw":["tot",16339],"trw":["oog",1205],"lp":["to","go","tot","gt","gg","tg","too","goo","tto","toot","got"],"rp":["og","ot","oot","oog","ott","oto","otto","ogt","oogt"]},"73":{"input":[1,4,7],"tlp":["ag",68842],"trp":["of",61079],"tlw":["gaat",6123],"trw":["of",29931],"lp":["ag","ga","gaa","fo","aag","gaat","gaf","fg","afg","foo","fot","foto","gat","tof","agt","aagt"],"rp":["of","oof","off","oga"]},"74":{"input":[2,4,7],"tlp":["sto",24832],"trp":["oc",27927],"tlw":["stoot",131],"trw":["oogst",77],"lp":["sto","co","toc","gs","gst","sg","stoo","gc","sgc","soc","cto"],"rp":["oc","ots","ost","oots","otst","oost","ogs","oogs","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sof",6578],"trp":["oca",652],"tlw":["stof",570],"lp":["sof","two","twoo","gas","wag","gast","stof","woog","wsg","gw","aco","ags","wog","astg","sag","ssag","twag"],"rp":["oca","ocaa","osof"]},"76":{"input":[3,4,7],"tlp":["ge",441497],"trp":["or",220309],"tlw":["toe",7828],"trw":["oor",713],"lp":["ge","ro","eg","ege","gr","toe","rg","gee","roe","gro","ger","teg","tege","rge","erg"],"rp":["or","oor","oet","oge","oeg"]},"77":{"input":[1,3,4,7],"tlp":["age",21589],"trp":["-f",7172],"tlw":["graag",2369],"lp":["age","aro","aaro","raag","gra","rag","rage","t-f","t-fa","ega","fge","afge","for","graa","arg"],"rp":["-f","-fa","oef","ora","-fo"]},"78":{"input":[2,3,4,7],"tlp":["door",33484],"trp":["ord",50515],"tlw":["door",27762],"lp":["door","gd","ges","goed","ged","gde","egd","dro","gest","rdo","gesc","god","egde"],"rp":["ord","orde","oord","oest","ordt","ors","orst"]},"79":{"input":[1,2,3,4,7],"tlw":["weg",9038],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",217953],"trw":["nu",18377],"lp":[],"rp":["on","ou","no","un","nu","uu","oon","unn","noo","nou","onn","non","ono","nno","nuu","oun","onno","uno","nnu","oonn"]},"81":{"input":[1,5,7],"tlp":["au",17538],"trp":["nau",2224],"tlw":["qua",92],"trw":["oan",54],"lp":["au","ano","anu","qu","qua","anon","anua","aou"],"rp":["nau","ua","ona","onaa","oan","nua","uan","onna","oq","oqu","nao","noa"]},"82":{"input":[2,5,7],"tlp":["su",4221],"trp":["us",37357],"tlw":["suus",122],"trw":["ons",10726],"lp":["su","soon","son","sno"],"rp":["us","jo","ons","ju","jon","uss","jou","nos","ous","joo","uns","usj","jos","oj","osj","jus"]},"83":{"input":[1,2,5,7],"tlp":["woon",7683],"trp":["uw",53486],"tlw":["wou",586],"trw":["uw",2686],"lp":["woon","auw","won","wu","wus","anos","wou","aus","wonn"],"rp":["uw","ouw","nauw","uws","jouw","nwo","nwoo","onw","nuw","uwa","nuwa"]},"84":{"input":[3,5,7],"tlp":["eu",50132],"trp":["oen",39532],"trw":["you",472],"lp":["eu","eno","enoe","eeu","eun","enu","enoo"],"rp":["oen","unne","noe","one","onne","oene","neu","ue","n-","onen","yo","onee","you"]},"85":{"input":[1,3,5,7],"tlp":["eau",2046],"trp":["ux",203],"lp":["eau","que","e-na","equ","eque","enau","xon","an-","ean-","quen","ena-"],"rp":["ux","uxe","-na","oya","-an","o-an","na-","oyaa"]},"86":{"input":[2,3,5,7],"tlp":["du",25835],"trp":["ond",80377],"tlw":["doen",9594],"trw":["oude",3893],"lp":["du","doen","dus","deu","don","eus","edu"],"rp":["ond","onde","ud","oud","ude","oude","uden","usse","nod","udd","udde","oden","oond"]},"87":{"input":[1,2,3,5,7],"tlw":["wonen",867],"trw":["ouwe",411],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",35213],"trp":["ng",141175],"tlw":["boog",1018],"trw":["nog",33780],"lp":["bo","tu","ton","bu","tuu","gon","boo","gu","bou"],"rp":["ng","nog","ont","ong","ut","ug","ob","unt","uto","ub","out"]},"89":{"input":[1,4,5,7],"tlp":["ang",42251],"trp":["natu",6022],"tlw":["gaan",11291],"trw":["nota",126],"lp":["ang","gaan","fon","font","atu","atuu","gan","aut","auto","aang","gang","foon","bang","anto","tua"],"rp":["natu","uf","onta","uff","noga"]},"90":{"input":[2,4,5,7],"tlp":["ston",12659],"trp":["uc",9757],"tlw":["boos",682],"trw":["jong",894],"lp":["ston","stu","tus","tuss","con","cont","stuu","cu","bos","conc"],"rp":["uc","ust","jong","jg","ngs","ngst","onts","jgt","onc","noc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",1249],"trw":["jacob",378],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",143754],"trp":["ur",56772],"tlw":["toen",23218],"trw":["ogen",8241],"lp":["gen","ru","egen","toen","geen","eur","geb","rou","beg","ron","eru","rug","geno","ggen"],"rp":["ur","nge","ngen","uur","onge","ogen"]},"93":{"input":[1,3,4,5,7],"tlw":["gegaan",1465],"trw":["naartoe",554],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["stond",8649],"trw":["onder",8950],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["worden",11389],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",171979],"trw":["l",236],"lp":[],"rp":["li","ll","lo","il","ol","oi","ooi","loo","ill","lli","ili","oll","io","oli","ool","ilo","olo","illi","llo","oil"]},"97":{"input":[1,6,7],"tlp":["al",225980],"trp":["la",129950],"tlw":["zo",26684],"trw":["la",525],"lp":["al","zo","all","aal","zal","zoa","zoal","ali","zoo","zoi"],"rp":["la","laa","oal","oz","lla","olla","ola","ial","laz","lia"]},"98":{"input":[2,6,7],"tlp":["sl",31416],"trp":["ls",78404],"tlw":["slok",358],"trw":["ook",30107],"lp":["sl","slo","sli","sloo"],"rp":["ls","ko","ok","ook","kl","lk","lik","lso","klo","okk","los","lis","olk","loos","kli","koo"]},"99":{"input":[1,2,6,7],"tlp":["als",67283],"trp":["lka",8548],"tlw":["als",51537],"trw":["las",791],"lp":["als","wil","sla","also","will","slaa","wal","wol","alis","zow"],"rp":["lka","lkaa","kla","oals","las","lak","klaa","lw","kal","klas"]},"100":{"input":[3,6,7],"tlp":["el",334993],"trp":["le",209513],"tlw":["el",147],"trw":["leo",319],"lp":["el","eli","ele","eel","ell","elle","elo","eil","eloo"],"rp":["le","lle","lee","lie","oel","lei","iel","llee","ille","loe","oei"]},"101":{"input":[1,3,6,7],"tlp":["alle",39915],"trp":["lez",2818],"tlw":["alle",6909],"trw":["lizzie",74],"lp":["alle","zel","ale","ela","zoe","ezel","ezo","ezoe","zoie","elaa","eal","ziel","ael"],"rp":["lez","oze","leze","laze","iale","oez","lezi"]},"102":{"input":[2,3,6,7],"tlp":["eld",44452],"trp":["ld",72634],"tlw":["elke",2943],"trw":["leek",4071],"lp":["eld","del","elde","elk","deli","els","esl"],"rp":["ld","lde","kel","oek","kle","ild","ilde","les","lles","keli","klei","led","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["wel",21511],"trw":["kale",288],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",141909],"trp":["ig",90099],"tlw":["vol",3408],"trw":["ooit",2846],"lp":["vo","voo","gi","vol","tig","volg","vl","gl","gli"],"rp":["ig","ov","lt","lg","oit","ooit","olg","lig","lti","lot","lit"]},"105":{"input":[1,4,6,7],"tlp":["alt",12700],"trp":["lf",27918],"tlw":["zag",8836],"trw":["laat",4912],"lp":["alt","val","zag","alti","tal","fl","avo","vall","zig","gla","alf","zov","vla","taal","gz"],"rp":["lf","laat","lat","lag","loof"]},"106":{"input":[2,4,6,7],"tlp":["stig",5578],"trp":["lic",9686],"tlw":["stil",1726],"trw":["kost",381],"lp":["stig","slot","stil","col","gis","cl","sig","volk","voc","gist","tok","stok"],"rp":["lic","kig","kkig","okt","lots","kost","koc","lst"]},"107":{"input":[1,2,4,6,7],"tlw":["alsof",6162],"trw":["last",650],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["voor",79011],"trp":["ove",54444],"tlw":["voor",54531],"trw":["over",27647],"lp":["voor","gel","rl","tel","gev","vro","voe","erl","veel","rli","voel","eig","vroe","evo","eige"],"rp":["ove","over","ige","lev","leve"]},"109":{"input":[1,3,4,6,7],"tlw":["zelf",5574],"trw":["later",4901],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voelde",4707],"trw":["kreeg",3295],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["elkaar",7935],"trw":["laatste",4077],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",114860],"trw":["hun",16526],"lp":[],"rp":["ui","ho","hu","hoo","lu","ul","hui","hou","hun","lin","nl","nooi","lui","nli","ull","hon","lon","ulli","hul","uin"]},"113":{"input":[1,5,6,7],"tlp":["zou",30976],"trp":["lan",39246],"tlw":["zou",25914],"trw":["hal",496],"lp":["zou","zon","zu","zul","zull","zoon","anui"],"rp":["lan","hal","onz","haal","uz","lau","uiz","nal","uzi","nla","nlan","llan","laan"]},"114":{"input":[2,5,6,7],"trp":["lij",77650],"trw":["kon",15534],"lp":[],"rp":["lij","lijk","uis","uk","kon","ku","kun","huis","kunn","jl","ijl","nlij","onk","uik","luk","ukk","jul","luis","jull","link"]},"115":{"input":[1,2,5,6,7],"tlw":["zus",901],"trw":["hals",521],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",11125],"trp":["len",43428],"tlw":["ellen",353],"trw":["hoe",13915],"lp":["elen","eho","elu","enl","elin","enli"],"rp":["len","hoe","llen","hel","hele","leen","heel","ieu","nieu","nel","lein","leu","hiel","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["alleen",11766],"trw":["onze",5956],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["snel",4364],"trw":["kunnen",11536],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["zouden",4749],"trw":["nieuwe",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",35668],"trp":["ing",72541],"tlw":["ging",11015],"trw":["uit",32730],"lp":["bl","gin","ging","bli","von","bov","bui","buit","ting","blo","tui","ving","gh"],"rp":["ing","uit","ling","nig","ning","htig","hoog"]},"121":{"input":[1,4,5,6,7],"tlw":["vanuit",1383],"trw":["lang",5446],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["toch",11105],"trw":["kunt",2792],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["blijft",1361],"trw":["langs",3708],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["eigen",5173],"trw":["leven",7694],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zeggen",6400],"trw":["laten",6557],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vond",4220],"trw":["krijgen",3495],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["altijd",8787],"trw":["hoofd",7271],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",12540],"trw":["p",961],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",30480],"trp":["pa",44369],"tlw":["aap",260],"trw":["papa",882],"lp":["ap","app","aap","apa","appa"],"rp":["pa","paa","pap","ppa","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",30385],"trp":["ps",2263],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3276],"trp":["pas",6100],"trw":["pas",3162],"lp":["spa","wap","asp","spaa","aps","wsp","wapp"],"rp":["pas","pass","pw","pasp","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",32631],"trp":["pe",64915],"trw":["'",114697],"lp":["ep","epe","eep","epp","eppe","e'","ee'"],"rp":["pe","ppe","pee","'e","'ee","''","pep","pepe","'p"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",4414],"trp":["'a",772],"trw":["px",303],"lp":["appe","ape","epa","epaa","a'","xp","exp","xpe","expe","apa'"],"rp":["'a","px","pape","pa'"]},"134":{"input":[2,3,8],"tlp":["spe",7419],"trp":["'s",4942],"trw":["'s",2281],"lp":["spe","esp","spee","dp","espe","sep","d'","dep","eps","dpe","d's","epse"],"rp":["'s","'d","pd","'de","pes","pese","pse","ped"]},"135":{"input":[1,2,3,8],"tlp":["wape",918],"trp":["'w",3268],"tlw":["da's",142],"trw":["'we",656],"lp":["wape","a's","aspe","espa","dap","dapp","epas","dpa","da'","ewap"],"rp":["'w","'wa","'da","pad","'we","'waa","pda","padd","'daa","'wee"]},"136":{"input":[4,8],"tlp":["tp",294],"trp":["pt",17059],"trw":["pt",3175],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",4643],"trp":["pat",1164],"trw":["pat",62],"lp":["tap","apt","tapt","tapp","aapt","tpa","tpaa","fp","afp","aafp"],"rp":["pat","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",813],"trp":["pst",986],"lp":["tsp"],"rp":["pst","psc"]},"139":{"input":[1,2,4,8],"tlp":["stap",4318],"trp":["past",1080],"tlw":["stap",923],"trw":["past",219],"lp":["stap","fsp","afsp","tspa","cap","capa","apst","spac","spat"],"rp":["past","psta","pac","pats"]},"140":{"input":[3,4,8],"tlp":["rp",6434],"trp":["pr",39150],"trw":["'t",3159],"lp":["rp","erp","reep","ept","rpe","erpe","rep","epr","epte","repe","eper"],"rp":["pr","per","pre","pte","'t","pet","pper","pete","pree"]},"141":{"input":[1,3,4,8],"tlp":["rap",4098],"trp":["pra",9631],"tlw":["trap",1366],"trw":["paar",6885],"lp":["rap","apte","trap","rapp","tape","rapt","apar","epar","epra"],"rp":["pra","paar","par","prat","praa","part","ppar","para","perf","pera","patr"]},"142":{"input":[2,3,4,8],"tlp":["spr",12727],"trp":["pers",3101],"tlw":["respect",322],"trw":["pers",244],"lp":["spr","spre","espr","spec","rsp","rspr","sper","ersp","cep","cept","tspr","sept"],"rp":["pers","prec","pec","pect","pres","pdr","perd","pste"]},"143":{"input":[1,2,3,4,8],"tlw":["stapte",1114],"trw":["'dat",1386],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",11785],"trw":["m",364],"lp":[],"rp":["mm","mp","nm","pn","pm","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",70985],"trp":["ma",173379],"trw":["man",11151],"lp":["am","aam","amp","ama","amm"],"rp":["ma","maa","man","nam","pan","naam","mann","maan","nap","pann","nma","mam","nmaa","mma","mama"]},"146":{"input":[2,5,8],"tlp":["sm",4193],"trp":["ms",12782],"trw":["ms",164],"lp":["sm","sms"],"rp":["ms","jp","pj","nsp","mpj","nsm","jsm","jm","mps"]},"147":{"input":[1,2,5,8],"tlp":["wam",13717],"trp":["jam",1619],"tlw":["span",501],"trw":["massa",211],"lp":["wam","sam","span","sma","ams","snap","apj","smaa","aams","asm"],"rp":["jam","mas","jasp","jamm","mans","maj","mw","panj","jap","mass"]},"148":{"input":[3,5,8],"tlp":["em",102948],"trp":["me",272103],"tlw":["em",708],"trw":["me",29423],"lp":["em","eme","emen","eem","epen","enm","emm"],"rp":["me","men","mee","pen","'n","mme","ppen","nem","neme","mpe","mene","meen","neem"]},"149":{"input":[1,3,5,8],"tlp":["ema",26711],"trp":["name",3318],"tlw":["aannemen",185],"trw":["mannen",3680],"lp":["ema","ame","emaa","eman","amen","apen","enma","amme","ampe","eam","eema","emma","enam","eaam"],"rp":["name","'ma","'maa","max","pame","'na"]},"150":{"input":[2,3,5,8],"tlp":["emd",5986],"trp":["md",17766],"tlw":["sms'je",55],"trw":["mensen",8143],"lp":["emd","emde","dem","eemd","sme"],"rp":["md","mens","mde","mees","'j","pje","med","mes","pend","jpe","jpen","'je","mede","mend","mden"]},"151":{"input":[1,2,3,5,8],"tlw":["samen",3346],"trw":["maanden",1720],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3132],"trp":["mt",9354],"trw":["mt",93],"lp":["tm","bm"],"rp":["mt","mb","ntm","mpt","pb","mbt","ntp"]},"153":{"input":[1,4,5,8],"tlp":["fam",4992],"trp":["mat",3403],"tlw":["tam",57],"trw":["maat",316],"lp":["fam","tam","amb","tma","fm","tmaa","amt","aamt","ambt","afm","amat"],"rp":["mat","maat","mant","napt","mba","mf","matt","mfa","mfan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",234],"trp":["mst",4009],"tlw":["cm",234],"lp":["cm","stm"],"rp":["mst","jpt","ntsp","msc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stam",199],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",26544],"trp":["met",89793],"tlw":["ermee",749],"trw":["met",82919],"lp":["rm","rme","erm","tem","rmee","rmen","reem","bep","erme","temm","emt"],"rp":["met","mer","meer","ment","mete","mmer","mte","mbe","mber"]},"157":{"input":[1,3,4,5,8],"tlw":["armen",1959],"trw":["maar",65784],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stem",3280],"trw":["meeste",1332],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["waarmee",1313],"trw":["jasper",582],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",15794],"lp":[],"rp":["pi","ip","ipp","ppi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2645],"trp":["pz",1834],"trw":["pizza",62],"lp":["api","appi"],"rp":["pz","papi","pzi","pai","pia","pza","pzaa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",2906],"trp":["pk",1286],"trw":["pik",322],"lp":["spi"],"rp":["pk","pis","pik","kip","isp","ips","kipp","pikk","kp","ksp","kspi","pki"]},"163":{"input":[1,2,6,8],"tlp":["apk",775],"trp":["pak",6092],"trw":["pak",881],"lp":["apk","aapk","apka","wip"],"rp":["pak","kap","pakk","kapi","pka","pwi","kaps","kapp","ppak","kaap","paki","pkw","pkwa"]},"164":{"input":[3,6,8],"tlp":["epi",821],"trp":["iep",14334],"lp":["epi","eppi"],"rp":["iep","pie","'i","iepe","ippe","ipe","iepi","ppie","pipe","pei","piep","i'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1574],"trp":["'z",1130],"tlw":["appie",556],"trw":["'ze",578],"lp":["apie","z'","zeep","zi'","azi'"],"rp":["'z","'ze","pze","'zi"]},"166":{"input":[2,3,6,8],"tlp":["diep",3859],"trp":["'ik",3806],"tlw":["diep",1774],"trw":["'ik",3806],"lp":["diep","spie","disp","dpi","espi","epk"],"rp":["'ik","'k","'di","'die","'is","pike","ieps","'ki","i's","pke","pkee","peek","piek","iepk"]},"167":{"input":[1,2,3,6,8],"tlw":["zweep",76],"trw":["'wie",183],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",323],"trp":["pit",1634],"tlw":["tip",80],"trw":["pitt",114],"lp":["tip"],"rp":["pit","pv","ipt","pti","pitt","pvi","itp"]},"169":{"input":[1,4,6,8],"tlp":["apit",813],"trp":["pva",678],"lp":["apit","tapi"],"rp":["pva","pati","pvat","pita","itpa"]},"170":{"input":[2,4,6,8],"tlp":["cip",273],"trp":["pitc",623],"tlw":["spits",84],"lp":["cip","stip","spit","scip","tips"],"rp":["pitc","pist","itsp","pisc","ptis","pits","pikt","pic","pick","psti"]},"171":{"input":[1,2,4,6,8],"trw":["pakt",384],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["riep",2691],"trp":["pri",3982],"tlw":["riep",2470],"trw":["piper",395],"lp":["riep","verp","rip","epti","ript"],"rp":["pri","pier","ierp","peri","pite","piet","prei","iper","iept","prie","ipte","perv","ptie","'v","priv"]},"173":{"input":[1,3,4,6,8],"trw":["papier",791],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spreekt",454],"trw":["precies",2555],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",1554],"trw":["pakte",1998],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",99056],"trw":["min",402],"lp":[],"rp":["mi","im","min","nmi","mmi","mh","ph","pni","imm","hip","nmin","pin","imp","inm","inmi","mmin","nip","mini","hm","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",5412],"trp":["hap",4798],"trw":["hap",187],"lp":["ami","zaam","zam","anmi"],"rp":["hap","mani","haam","ham","happ","ima","iam","pha","inam","mai","pani","mah","hamm","hamp","mha","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1232],"trp":["mij",56462],"tlw":["spin",52],"trw":["mijn",42155],"lp":["sim","spij","simp","smi"],"rp":["mij","mijn","mis","miss","pij","ijp","pijn","mins","insp","knip","jim","mik","mmis","jimm","pijp","pijk"]},"179":{"input":[1,2,5,6,8],"tlw":["smaak",381],"trw":["kwam",9677],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",1479],"trp":["hem",38924],"tlw":["eph",104],"trw":["hem",36783],"lp":["emi","eim","enmi","emmi","epin"],"rp":["hem","iem","mei","niem","'h","ime","pnie","'he","imme","heim","heme","hep","mhe","impe","meni"]},"181":{"input":[1,3,5,6,8],"tlw":["z'n",1280],"trw":["maxima",176],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"trw":["meisje",3089],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["zwemmen",284],"trw":["maken",6874],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1065],"trp":["imt",1214],"tlw":["tim",122],"trw":["htm",71],"lp":["tim","tmi","timi"],"rp":["imt","mit","itm","ntim","htm","mbi","nipt","mv","mbin","imit","htp","miti","mith","mbit","mitt"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",79],"trw":["mattia",98],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["schip",1068],"trw":["minst",275],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["tapijt",196],"trw":["maakt",1930],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["evenmin",310],"trw":["'het",1331],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"trw":["manier",3158],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["spreken",1283],"trw":["misschien",7594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikaanse",726],"trw":["maakte",4198],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",166993],"trw":["op",103035],"lp":[],"rp":["op","po","oop","opp","poo","pop","ppo","popp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",574],"trp":["opa",966],"trw":["opa",532],"lp":["apo","appo"],"rp":["opa","oppa"]},"194":{"input":[2,7,8],"tlp":["spo",2653],"trp":["pos",1438],"trw":["poos",89],"lp":["spo","spoo","sop"],"rp":["pos","ops","poos","oops","pso","opsp","pspo"]},"195":{"input":[1,2,7,8],"tlp":["aspo",191],"trp":["opw",535],"trw":["oppas",51],"lp":["aspo"],"rp":["opw","pow"]},"196":{"input":[3,7,8],"tlp":["eop",278],"trp":["ope",17147],"trw":["'o",439],"lp":["eop","eope","eopo"],"rp":["ope","o'","oep","oppe","oepe","opee","poe","'o","-p","'op","-'","oo'","o-p","pope"]},"197":{"input":[1,3,7,8],"trp":["oepa",84],"lp":[],"rp":["oepa","-pa","o-pa"]},"198":{"input":[2,3,7,8],"tlp":["spoe",469],"trp":["o's",1470],"tlw":["soep",218],"trw":["poes",128],"lp":["spoe","dop","soep","so-p","dope","doop"],"rp":["o's","opd","poed","pod","opes","osep","poes","'do","'doe","oesp","'so","-sp"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",4647],"trp":["pg",6426],"tlw":["top",406],"trw":["pot",229],"lp":["top","topt","topp","gp","gop"],"rp":["pg","opg","opt","oopt","pot","pog","pott","poot","poog","pto","ptop","ogop"]},"201":{"input":[1,4,7,8],"tlp":["apot",426],"trp":["pag",1681],"trw":["pag",94],"lp":["apot","apto","gpa","gaap"],"rp":["pag","pga","opga","pgaa"]},"202":{"input":[2,4,7,8],"tlp":["stop",2723],"trp":["opst",808],"tlw":["stop",253],"trw":["post",353],"lp":["stop","spot","coop","sopg","gops","gsp"],"rp":["opst","post","psto","opsc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6839],"trp":["pro",15569],"tlw":["erop",1554],"trw":["poort",291],"lp":["rop","roep","gep","erop","to'","gepr","grep","rope"],"rp":["pro","pge","opge","opte","por","port","orp","poor","oto'","oper","-top","opr"]},"205":{"input":[1,3,4,7,8],"tlw":["gepraat",288],"trw":["page",694],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["dorp",866],"trw":["proces",337],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["waarop",2183],"trw":["professor",384],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",134142],"trw":["om",51031],"lp":[],"rp":["om","mo","moo","mon","pu","mom","um","mu","omm","nom","oom","opn","omp","onm","pun","up","num","muu","umm","numm"]},"209":{"input":[1,5,7,8],"tlp":["amo",374],"trp":["oma",3325],"trw":["oma",579],"lp":["amo","amon","anmo","aup","amu","aom"],"rp":["oma","pano","oman","pau","omaa","omma","opna","mau","opma","moa","onma","napo","naom","mano"]},"210":{"input":[2,5,7,8],"tlp":["som",5660],"trp":["oms",6883],"tlw":["soms",3682],"trw":["joop",104],"lp":["som","soms","somm","spu","sup","smo","spon","spun","sum"],"rp":["oms","mso","opj","mons","mos","mus","joop","nspo","ooms","nopj","pus"]},"211":{"input":[1,2,5,7,8],"trw":["mouw",188],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",3098],"trp":["moe",46854],"trw":["open",4188],"lp":["enom","emo","emoe","epu"],"rp":["moe","ome","omen","open","oem","mome","o'n","noem","nome","omme","oeme","umme","ompe","ume","opme","umen"]},"213":{"input":[1,3,5,7,8],"trw":["opnamen",87],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",313],"trw":["mond",3010],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["samenwonen",65],"trw":["panose-",1128],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2789],"trp":["mog",5827],"tlw":["boom",593],"trw":["punt",1157],"lp":["tom","tmo","bom","ttom","boom"],"rp":["mog","omt","punt","mot","mg","omg","ontm","ntmo","put","pub","nmog","moto","mob","omb","mput"]},"217":{"input":[1,4,5,7,8],"tlw":["tatum",76],"trw":["mag",2733],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stom",368],"trw":["muts",127],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["spontaan",128],"trw":["opstaan",213],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genomen",1400],"trw":["moet",11124],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["roman",605],"trw":["magere",261],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprong",808],"trw":["moest",9460],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["waarom",5384],"trw":["omdat",8221],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22888],"trw":["loop",1091],"lp":[],"rp":["pl","lop","lp","pol","poli","plo","loop","lip","lipp","opl","opi","pli","oplo","pil","lopi","olp","lopp","ipo","pill","ilip"]},"225":{"input":[1,6,7,8],"tlp":["alp",160],"trp":["pla",12933],"trw":["paal",163],"lp":["alp","appl","apl","apol"],"rp":["pla","plaa","lap","laap","opz","paal","opzi","pal","lapp","pzo","opzo","pala","opla","lpla","lpz","lpza"]},"226":{"input":[2,6,7,8],"tlp":["spl",351],"trp":["kop",4373],"tlw":["sloop",153],"trw":["kop",1414],"lp":["spl","slip"],"rp":["kop","klop","koop","posi","plos","opk","pols","kopp","ispl","pko","opko","ikop","kopl","kpl","kopi","pkl","lsp","ilsp"]},"227":{"input":[1,2,6,7,8],"tlw":["slaap",1052],"trw":["klap",617],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",2649],"trp":["liep",7656],"trw":["liep",5744],"lp":["elp","elop","elpe","epl","epel"],"rp":["liep","pel","lope","ple","lpe","peel","pele","ppel","plee","peli","-pi","plei","ielp","ople","pell"]},"229":{"input":[1,3,6,7,8],"tlw":["appel",103],"trw":["'zo",172],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["speelde",689],"trw":["plek",1535],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",172],"trw":["'als",569],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["glip",148],"trp":["plot",2109],"tlw":["volop",111],"trw":["loopt",1197],"lp":["glip","glop","gpl"],"rp":["plot","pig","opv","lopt","pogi","opig","ppig","pvo","opvo","lpt","pvol","oopv","lipt","opti","potl","igp","ligp"]},"233":{"input":[1,4,6,7,8],"tlw":["afloop",252],"trw":["plat",242],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pistool",468],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slaapt",181],"trw":["plaats",3721],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["voorlopig",401],"trw":["politie",1676],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",288],"trw":["plezier",573],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gesprek",1386],"trw":["periode",563],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["collega's",441],"trw":["opgewekt",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",7222],"trw":["mooi",1931],"lp":[],"rp":["mil","lim","ml","mooi","iml","liml","lm","hoop","mili","uim","minu","omh","opni","ommi","lom","mho","omho","mhoo","hop","ulp"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["plan",1394],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",579],"trw":["kom",2728],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["wanhoop",258],"trw":["opzij",767],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["lopen",2578],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["allemaal",4589],"trw":["helemaal",5218],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spelen",1140],"trw":["komen",7764],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["slapen",1278],"trw":["opnieuw",2178],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimp",157],"trw":["omhoog",1619],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",493],"trw":["langzaam",2034],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schuim",127],"trw":["komt",4942],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["glimlach",1179],"trw":["lichaam",2366],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["ruimte",1214],"trw":["minuten",1824],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1891],"trw":["mezelf",1423],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekomen",2342],"trw":["mogelijk",2546],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemaakt",2371],"trw":["mevrouw",2250],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",565178],"tlw":["a",1899],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",31510],"tlw":["s",593],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["wa",249084],"tlw":["was",91211],"lp":["wa","as","was","waa","sa","aas","ass","ssa","ws","wass","assa","sw","aw","saa","swa","swaa","ww","awa","awaa","waas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",595701],"tlw":["e",445],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",9134],"tlw":["x",171],"lp":["ea","ex","ax","ae","xe","xa","eaa","exa","axe","exe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",835524],"tlw":["de",381576],"lp":["de","es","ed","se","ede","dd","dde","ds","eed","ees","sse","dee","eds","eeds","deed","ess","sd","ese","dse","eede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270505],"tlw":["we",27843],"lp":["da","we","ad","wee","daa","ew","ewe","ade","add","adde","eda","wees","ewee","wd","dw","aad","edaa","wde","asse","ada"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",33524],"tlw":["t",381],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",290899],"tlw":["af",9932],"lp":["at","ta","aat","af","ft","taa","fa","ff","taat","taf","att","tat","aaf","aatt","ata","aff","fat","tf","tta","aft"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260352],"tlw":["c",381],"lp":["st","sc","ts","ct","tst","ssc","cc","stt","tsc","tc","sts","stst","sst","stsc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",73946],"tlw":["wat",36195],"lp":["ac","wat","sta","tw","ast","staa","ats","aats","fs","wac","ca","aast","atst","act","afs","tas","fst","twa","fac","tac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",710975],"tlw":["te",105276],"lp":["er","et","te","re","eer","ter","ere","rt","tr","ete","tte","ert","ree","eet","rte","tre","tee","ett","rr","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",396560],"tlw":["extra",700],"lp":["ar","aar","ra","ef","raa","eef","are","ate","eft","eeft","fe","art","tra","era","ater","fr","rat","ara","afe","ffe"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",138895],"tlw":["eerste",6507],"lp":["rd","der","ste","rs","erd","rde","ers","est","dr","ec","erde","dere","ets","rst","eder","erst","eest","eerd","ster","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dat",155858],"tlw":["dat",136467],"lp":["dat","waar","wer","daar","war","fd","ard","weer","ware","werd","rw","erw","twe","twee","dac","aard","dra","fde","weet","ader"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",51105],"trw":["n",1346],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",559245],"trp":["na",127869],"tlw":["aan",55690],"trw":["na",10653],"lp":["an","aan","ann","ana","anna","aann","anaa","aq"],"rp":["na","naa","nna","nan","naan","nnaa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9856],"trp":["jn",169981],"trw":["j",357],"lp":["sn","sj"],"rp":["jn","ns","js","nj","jns"]},"19":{"input":[1,2,5],"tlp":["wan",14017],"trp":["ja",31023],"tlw":["san",173],"trw":["ja",6777],"lp":["wan","ans","wann","aans","anw","sna","san","aanw","anj","aj","asj"],"rp":["ja","jaa","jna","nw","naas","jan","jas","jw","nja"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1522448],"trp":["ne",132761],"tlw":["en",225891],"trw":["nee",4568],"lp":["en","een","ene","enen","enn","enne","enee","ey","eene","eeen"],"rp":["ne","nen","nne","nnen","nee","nnee","neen","ny","nny","yn"]},"21":{"input":[1,3,5],"tlp":["anne",10606],"trp":["ya",413],"tlw":["anne",219],"lp":["anne","ena","ane","enaa","anen","ean","ay","anee","eaan","enan","xan","exan","anny","xy","exy","eq","eena"],"rp":["ya","yan","nane"]},"22":{"input":[2,3,5],"tlp":["den",130605],"trp":["nd",254142],"tlw":["eens",9370],"trw":["je",69369],"lp":["den","ens","end","sen","ende","eden","eens","dden","ssen","ense","sje"],"rp":["nd","nde","je","jd","nden","nse","nsen","jde","jes"]},"23":{"input":[1,2,3,5],"tlp":["and",86982],"trp":["nda",7813],"tlw":["dan",33270],"trw":["new",907],"lp":["and","dan","ande","wen","aand","anda","daan","anse","ands","aden","wens","anwe","wend"],"rp":["nda","nad","ndaa","nwe","nada","nade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",17696],"trp":["nt",98660],"tlw":["b",387],"lp":["bb","bt","tb","tn"],"rp":["nt","nb","ntb","ntt"]},"25":{"input":[1,4,5],"tlp":["ant",32323],"trp":["nat",8926],"tlw":["baan",878],"trw":["nat",410],"lp":["ant","ba","taan","tan","baa","ban","ab","anta","aant","tba","anaf","tant","fan","baan","fant"],"rp":["nat","nta","naf","nf","nba"]},"26":{"input":[2,4,5],"tlp":["tj",16496],"trp":["nst",10582],"lp":["tj","bs","sb","stj","stb","tsn"],"rp":["nst","nc","jt","nts","nsc","ntj","jst","jnt","ntst","ntsn","nct","jntj","ntsc","jb"]},"27":{"input":[1,2,4,5],"tlp":["want",6670],"trp":["jf",10865],"tlw":["want",6458],"trw":["naast",3850],"lp":["want","antw","stan","baas","anc","atj","fj","abs","bas","aatj","anst"],"rp":["jf","ntw","nac","jft","jac","nsta","ntac","nanc","ntas"]},"28":{"input":[3,4,5],"tlp":["be",171694],"trp":["nte",12846],"tlw":["ben",10919],"trw":["net",7100],"lp":["be","ten","ren","eb","ben","br","eren","ent","eten","bbe","bben","ebb","ebbe","rb","bee","rn","tten","bet","ber"],"rp":["nte"]},"29":{"input":[1,3,4,5],"tlp":["aren",23808],"trp":["naar",55710],"tlw":["eraan",1152],"trw":["naar",52688],"lp":["aren","aten","ran","rna","bra","arn","aarn","arna","baar","ante","bar","rba","erba","fran","eran","arb","fen","raan","rant"],"rp":["naar"]},"30":{"input":[2,3,4,5],"tlp":["rden",25498],"trp":["nder",65247],"tlw":["beetje",4094],"lp":["rden","bes","tje","bed","sten","best","etj","etje","eetj","tend","cen","rend","besc","cent","enst","tjes"],"rp":["nder","nste","ntje","ndr"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",17010],"trw":["jaar",7230],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",416],"trw":["i",704],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",217546],"trp":["ia",10521],"tlw":["z",113],"lp":["zi","za","ai","zaa","aai","az","azi","zz","zia","azia","zaai","zzi"],"rp":["ia","iz","iaa","iza","izi","izaa","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",19356],"trp":["ik",185103],"trw":["ik",149098],"lp":["si","ssi","sk","sis","ssis"],"rp":["ik","is","kk","ki","iss","ks","ikk","kki","iks","isi","isk","issi","kis","ikki","isis"]},"35":{"input":[1,2,6],"tlp":["wi",80880],"trp":["ka",52225],"tlw":["zaak",1687],"trw":["kaas",199],"lp":["wi","ak","aak","zw","wis","zwa","akk","zak","zaak","wak","zwaa","wakk","zwi"],"rp":["ka","kw","kwa","kaa","ika","kas","kwaa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",112497],"trp":["ie",427576],"tlw":["ei",126],"trw":["ie",333],"lp":["ei","eie","eei"],"rp":["ie","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",250139],"trp":["ize",3585],"tlw":["ze",116542],"lp":["ze","ez","zei","eze","zie","ezi","ezie","zee","aze","aie","eiz","aaie","eza","eize","xi","axi","eiza"],"rp":["ize","iez","ieze"]},"38":{"input":[2,3,6],"tlp":["di",156986],"trp":["ke",180090],"tlw":["die",84576],"trw":["keek",10339],"lp":["di","ek","die","eke","eek","eid","ekk","ekke"],"rp":["ke","id","kke","kee","ide","keek","ied","idd","iede","iek","ies","idde"]},"39":{"input":[1,2,3,6],"tlp":["ake",15537],"tlw":["deze",10880],"trw":["kwaad",950],"lp":["ake","dez","deze","wie","akke","zek","zeke","aid","wei","aaid","aide","wez","wek","ziek","week","zes","zwe","ewi","zake","adi"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",92155],"trp":["it",127567],"tlw":["tv",365],"trw":["it",435],"lp":["ti","vi","tv","tti","tit","vit","titi","tiv","tivi","viv","tvi","vivi"],"rp":["it","itt","iti","iv","ivi","itv","ivit","itti"]},"41":{"input":[1,4,6],"tlp":["va",224506],"trp":["if",3864],"tlw":["zat",6137],"trw":["if",78],"lp":["va","zit","av","ati","zat","fi","zitt","vaa","tz","fti","ffi","via","tzi","avi","vat","tai"],"rp":["if","ita","itz","ift"]},"42":{"input":[2,4,6],"tlp":["sti",15829],"trp":["ic",74589],"tlw":["vis",333],"trw":["kist",358],"lp":["sti","ci","ck","cti","tis","sit","tisc","vis","tk","tik","sv"],"rp":["ic","kt","ist","issc","ikt","isc","its","ici","kst"]},"43":{"input":[1,2,4,6],"tlp":["zic",46006],"trp":["kat",1851],"tlw":["wist",7236],"trw":["kast",575],"lp":["zic","akt","aakt","wist","vas","vast","twi","wit","vaak","zac","tak","stak","witt","asti","acti","vak","cia","ack"],"rp":["kat","kast"]},"44":{"input":[3,4,6],"tlp":["ve",223463],"trp":["iet",126034],"tlw":["vier",2544],"lp":["ve","ver","ri","ev","vr","eve","tie","rie","eri","vee","rv","vert","erv","vri","rei","vie"],"rp":["iet","ier","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["ari",10534],"trp":["ief",8550],"tlw":["zette",2378],"lp":["ari","zet","rz","vra","eva","rva","atie","vraa","zett","erz","raai","vera","erva","arv","aarv","ave","verz","aari","var"],"rp":["ief"]},"46":{"input":[2,3,4,6],"tlp":["rk",33984],"trp":["iets",24709],"tlw":["dit",13642],"trw":["iets",14243],"lp":["rk","erk","dit","verd","rek","dri","vers","rke","erke","eker","ric","tek","drie"],"rp":["iets","kte","ker","kr","keer","iste","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vader",6824],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",343391],"trw":["in",146093],"lp":[],"rp":["in","hi","ni","inn","nin","nh","ini","nni","hin","hn","nnin","inni","inh","hni","hnn","ih","nhi","inin","inhi"]},"49":{"input":[1,5,6],"tlp":["zin",7282],"trp":["ha",212677],"tlw":["zin",2379],"trw":["hanna",165],"lp":["zin","ani","ah","anz","anni","zinn","anh","zan","aanz"],"rp":["ha","haa","han","nz","hz","ina","nzi","ian","inz","nza","nzin"]},"50":{"input":[2,5,6],"trp":["ij",550946],"trw":["hij",131508],"lp":[],"rp":["ij","ijn","hij","jk","ijk","nk","kin","kij","kijk","ji","kn","ink","jij","nis","ins","nik","ijs","kni","hijn","isj"]},"51":{"input":[1,2,5,6],"tlp":["zij",124236],"trp":["kan",22915],"tlw":["zijn",106271],"trw":["kan",12791],"lp":["zij","zijn","wij","ank","win","wijz","wijn","wijs","anks","aank","zwij","wink"],"rp":["kan","jz","ijz","ijna","kans","haas","kaan","kwij"]},"52":{"input":[3,5,6],"tlp":["ein",21712],"trp":["he",426236],"tlw":["eh",524],"trw":["hen",5498],"lp":["ein","eh","eni","eine","ehe","enin","eini","enh"],"rp":["he","nie","ien","hee","hie","inne","hei","ine","hen","heen","hien","nhe"]},"53":{"input":[1,3,5,6],"tlp":["zien",14842],"trp":["nze",8382],"tlw":["zien",8781],"trw":["inzien",116],"lp":["zien","zen","eha","ezen","anie","enz","azen","ezin","ehan","aien","anze","ehaa","enza","eenz","enzi"],"rp":["nze","hze","izen","nzen","hae"]},"54":{"input":[2,3,5,6],"tlp":["eken",22412],"trp":["ken",85243],"tlw":["denk",3418],"trw":["kijken",4068],"lp":["eken","enk","din","denk","enke"],"rp":["ken","ind","ijd","nke","jke","ijke","inde","kken","heid","kind","iend","ndi","nken","kend","ijde"]},"55":{"input":[1,2,3,5,6],"tlw":["weken",1635],"trw":["had",55453],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59526],"trp":["ht",123626],"tlw":["bh",81],"lp":["bi","th","vin","bin","binn","tin","ttin"],"rp":["ht","hti","int","nti","nv","htt","htin","inti","htb","hit","ntv","ib","nth"]},"57":{"input":[1,4,5,6],"tlp":["van",189387],"trp":["hat",1531],"tlw":["van",171860],"trw":["haat",432],"lp":["van","vana","anti","tha","anv","aanv","anva","fin","ath","anav","abi","fh"],"rp":["hat","nva","nati","htba","inf","nav","hav","haat"]},"58":{"input":[2,4,5,6],"tlp":["ch",268567],"trp":["ich",66755],"tlw":["bij",29299],"trw":["kijkt",1607],"lp":["ch","cht","sch","bij","tij","chi","schi","chti","ssch","vij","bijn","chij"],"rp":["ich","icht","jv","ijv","isch","jkt","ijkt","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["zich",32148],"trw":["kant",2963],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",53110],"trp":["het",230522],"tlw":["even",9723],"trw":["het",226716],"lp":["ven","even","rin","rh","erh","erin","rien","the","verb"],"rp":["het","niet","hte","heb","hter","hebb","her","hten","hier","hr","iten"]},"61":{"input":[1,3,4,5,6],"tlw":["zitten",5880],"trw":["haar",73072],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tijd",8288],"trw":["niets",8728],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["achter",7426],"trw":["hard",1821],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",285058],"trw":["o",2376],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",407],"trp":["oa",7486],"lp":["ao"],"rp":["oa","ooa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",27187],"trp":["os",19065],"tlw":["so",132],"lp":["so","soo","sso"],"rp":["os","oos","oss","oso","osoo"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",53022],"trp":["ow",2105],"lp":["wo","woo","aso","aos","sow","woa"],"rp":["ow","owa","osa","owaa","ossa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2682],"trp":["oe",232725],"trw":["-",7439],"lp":["eo","e-","eoo","eoe"],"rp":["oe","o-","-o","-oo"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",189],"trp":["-a",938],"lp":["xo","exo","a-","x-","ex-"],"rp":["-a","o-a","ox","oea"]},"70":{"input":[2,3,7],"tlp":["do",77681],"trp":["oed",31676],"tlw":["dood",3509],"lp":["do","doo","doe","dood","edo","so-","edoe","dod","dode","se-"],"rp":["oed","od","oes","oede","ood","ode","-s","ods","ose","oods"]},"71":{"input":[1,2,3,7],"tlp":["ewo",10898],"trp":["oda",3201],"tlw":["woede",613],"lp":["ewo","ewoo","woe","woed","dwo","woes","edwo","ado","so-a","d-a","dow","ados","wod"],"rp":["oda","oew","oewe","owe","-w","-we","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",114612],"trp":["og",71340],"tlw":["tot",16339],"trw":["oog",1205],"lp":["to","go","tot","gt","gg","tg","too","goo","tto","toot","got"],"rp":["og","ot","oot","oog","ott","oto","otto","ogt","oogt"]},"73":{"input":[1,4,7],"tlp":["ag",68842],"trp":["of",61079],"tlw":["gaat",6123],"trw":["of",29931],"lp":["ag","ga","gaa","fo","aag","gaat","gaf","fg","afg","foo","fot","foto","gat","tof","agt","aagt"],"rp":["of","oof","off","oga"]},"74":{"input":[2,4,7],"tlp":["sto",24832],"trp":["oc",27927],"tlw":["stoot",131],"trw":["oogst",77],"lp":["sto","co","toc","gs","gst","sg","stoo","gc","sgc","soc","cto"],"rp":["oc","ots","ost","oots","otst","oost","ogs","oogs","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sof",6578],"trp":["oca",652],"tlw":["stof",570],"lp":["sof","two","twoo","gas","wag","gast","stof","woog","wsg","gw","aco","ags","wog","astg","sag","ssag","twag"],"rp":["oca","ocaa","osof"]},"76":{"input":[3,4,7],"tlp":["ge",441497],"trp":["or",220309],"tlw":["toe",7828],"trw":["oor",713],"lp":["ge","ro","eg","ege","gr","toe","rg","gee","roe","gro","ger","teg","tege","rge","erg"],"rp":["or","oor","oet","oge","oeg"]},"77":{"input":[1,3,4,7],"tlp":["age",21589],"trp":["-f",7172],"tlw":["graag",2369],"lp":["age","aro","aaro","raag","gra","rag","rage","t-f","t-fa","ega","fge","afge","for","graa","arg"],"rp":["-f","-fa","oef","ora","-fo"]},"78":{"input":[2,3,4,7],"tlp":["door",33484],"trp":["ord",50515],"tlw":["door",27762],"lp":["door","gd","ges","goed","ged","gde","egd","dro","gest","rdo","gesc","god","egde"],"rp":["ord","orde","oord","oest","ordt","ors","orst"]},"79":{"input":[1,2,3,4,7],"tlw":["weg",9038],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",217953],"trw":["nu",18377],"lp":[],"rp":["on","ou","no","un","nu","uu","oon","unn","noo","nou","onn","non","ono","nno","nuu","oun","onno","uno","nnu","oonn"]},"81":{"input":[1,5,7],"tlp":["au",17538],"trp":["nau",2224],"tlw":["qua",92],"trw":["oan",54],"lp":["au","ano","anu","qu","qua","anon","anua","aou"],"rp":["nau","ua","ona","onaa","oan","nua","uan","onna","oq","oqu","nao","noa"]},"82":{"input":[2,5,7],"tlp":["su",4221],"trp":["us",37357],"tlw":["suus",122],"trw":["ons",10726],"lp":["su","soon","son","sno"],"rp":["us","jo","ons","ju","jon","uss","jou","nos","ous","joo","uns","usj","jos","oj","osj","jus"]},"83":{"input":[1,2,5,7],"tlp":["woon",7683],"trp":["uw",53486],"tlw":["wou",586],"trw":["uw",2686],"lp":["woon","auw","won","wu","wus","anos","wou","aus","wonn"],"rp":["uw","ouw","nauw","uws","jouw","nwo","nwoo","onw","nuw","uwa","nuwa"]},"84":{"input":[3,5,7],"tlp":["eu",50132],"trp":["oen",39532],"trw":["you",472],"lp":["eu","eno","enoe","eeu","eun","enu","enoo"],"rp":["oen","unne","noe","one","onne","oene","neu","ue","n-","onen","yo","onee","you"]},"85":{"input":[1,3,5,7],"tlp":["eau",2046],"trp":["ux",203],"lp":["eau","que","e-na","equ","eque","enau","xon","an-","ean-","quen","ena-"],"rp":["ux","uxe","-na","oya","-an","o-an","na-","oyaa"]},"86":{"input":[2,3,5,7],"tlp":["du",25835],"trp":["ond",80377],"tlw":["doen",9594],"trw":["oude",3893],"lp":["du","doen","dus","deu","don","eus","edu"],"rp":["ond","onde","ud","oud","ude","oude","uden","usse","nod","udd","udde","oden","oond"]},"87":{"input":[1,2,3,5,7],"tlw":["wonen",867],"trw":["ouwe",411],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",35213],"trp":["ng",141175],"tlw":["boog",1018],"trw":["nog",33780],"lp":["bo","tu","ton","bu","tuu","gon","boo","gu","bou"],"rp":["ng","nog","ont","ong","ut","ug","ob","unt","uto","ub","out"]},"89":{"input":[1,4,5,7],"tlp":["ang",42251],"trp":["natu",6022],"tlw":["gaan",11291],"trw":["nota",126],"lp":["ang","gaan","fon","font","atu","atuu","gan","aut","auto","aang","gang","foon","bang","anto","tua"],"rp":["natu","uf","onta","uff","noga"]},"90":{"input":[2,4,5,7],"tlp":["ston",12659],"trp":["uc",9757],"tlw":["boos",682],"trw":["jong",894],"lp":["ston","stu","tus","tuss","con","cont","stuu","cu","bos","conc"],"rp":["uc","ust","jong","jg","ngs","ngst","onts","jgt","onc","noc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",1249],"trw":["jacob",378],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",143754],"trp":["ur",56772],"tlw":["toen",23218],"trw":["ogen",8241],"lp":["gen","ru","egen","toen","geen","eur","geb","rou","beg","ron","eru","rug","geno","ggen"],"rp":["ur","nge","ngen","uur","onge","ogen"]},"93":{"input":[1,3,4,5,7],"tlw":["gegaan",1465],"trw":["naartoe",554],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["stond",8649],"trw":["onder",8950],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["worden",11389],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",171979],"trw":["l",236],"lp":[],"rp":["li","ll","lo","il","ol","oi","ooi","loo","ill","lli","ili","oll","io","oli","ool","ilo","olo","illi","llo","oil"]},"97":{"input":[1,6,7],"tlp":["al",225980],"trp":["la",129950],"tlw":["zo",26684],"trw":["la",525],"lp":["al","zo","all","aal","zal","zoa","zoal","ali","zoo","zoi"],"rp":["la","laa","oal","oz","lla","olla","ola","ial","laz","lia"]},"98":{"input":[2,6,7],"tlp":["sl",31416],"trp":["ls",78404],"tlw":["slok",358],"trw":["ook",30107],"lp":["sl","slo","sli","sloo"],"rp":["ls","ko","ok","ook","kl","lk","lik","lso","klo","okk","los","lis","olk","loos","kli","koo"]},"99":{"input":[1,2,6,7],"tlp":["als",67283],"trp":["lka",8548],"tlw":["als",51537],"trw":["las",791],"lp":["als","wil","sla","also","will","slaa","wal","wol","alis","zow"],"rp":["lka","lkaa","kla","oals","las","lak","klaa","lw","kal","klas"]},"100":{"input":[3,6,7],"tlp":["el",334993],"trp":["le",209513],"tlw":["el",147],"trw":["leo",319],"lp":["el","eli","ele","eel","ell","elle","elo","eil","eloo"],"rp":["le","lle","lee","lie","oel","lei","iel","llee","ille","loe","oei"]},"101":{"input":[1,3,6,7],"tlp":["alle",39915],"trp":["lez",2818],"tlw":["alle",6909],"trw":["lizzie",74],"lp":["alle","zel","ale","ela","zoe","ezel","ezo","ezoe","zoie","elaa","eal","ziel","ael"],"rp":["lez","oze","leze","laze","iale","oez","lezi"]},"102":{"input":[2,3,6,7],"tlp":["eld",44452],"trp":["ld",72634],"tlw":["elke",2943],"trw":["leek",4071],"lp":["eld","del","elde","elk","deli","els","esl"],"rp":["ld","lde","kel","oek","kle","ild","ilde","les","lles","keli","klei","led","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["wel",21511],"trw":["kale",288],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",141909],"trp":["ig",90099],"tlw":["vol",3408],"trw":["ooit",2846],"lp":["vo","voo","gi","vol","tig","volg","vl","gl","gli"],"rp":["ig","ov","lt","lg","oit","ooit","olg","lig","lti","lot","lit"]},"105":{"input":[1,4,6,7],"tlp":["alt",12700],"trp":["lf",27918],"tlw":["zag",8836],"trw":["laat",4912],"lp":["alt","val","zag","alti","tal","fl","avo","vall","zig","gla","alf","zov","vla","taal","gz"],"rp":["lf","laat","lat","lag","loof"]},"106":{"input":[2,4,6,7],"tlp":["stig",5578],"trp":["lic",9686],"tlw":["stil",1726],"trw":["kost",381],"lp":["stig","slot","stil","col","gis","cl","sig","volk","voc","gist","tok","stok"],"rp":["lic","kig","kkig","okt","lots","kost","koc","lst"]},"107":{"input":[1,2,4,6,7],"tlw":["alsof",6162],"trw":["last",650],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["voor",79011],"trp":["ove",54444],"tlw":["voor",54531],"trw":["over",27647],"lp":["voor","gel","rl","tel","gev","vro","voe","erl","veel","rli","voel","eig","vroe","evo","eige"],"rp":["ove","over","ige","lev","leve"]},"109":{"input":[1,3,4,6,7],"tlw":["zelf",5574],"trw":["later",4901],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voelde",4707],"trw":["kreeg",3295],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["elkaar",7935],"trw":["laatste",4077],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",114860],"trw":["hun",16526],"lp":[],"rp":["ui","ho","hu","hoo","lu","ul","hui","hou","hun","lin","nl","nooi","lui","nli","ull","hon","lon","ulli","hul","uin"]},"113":{"input":[1,5,6,7],"tlp":["zou",30976],"trp":["lan",39246],"tlw":["zou",25914],"trw":["hal",496],"lp":["zou","zon","zu","zul","zull","zoon","anui"],"rp":["lan","hal","onz","haal","uz","lau","uiz","nal","uzi","nla","nlan","llan","laan"]},"114":{"input":[2,5,6,7],"trp":["lij",77650],"trw":["kon",15534],"lp":[],"rp":["lij","lijk","uis","uk","kon","ku","kun","huis","kunn","jl","ijl","nlij","onk","uik","luk","ukk","jul","luis","jull","link"]},"115":{"input":[1,2,5,6,7],"tlw":["zus",901],"trw":["hals",521],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",11125],"trp":["len",43428],"tlw":["ellen",353],"trw":["hoe",13915],"lp":["elen","eho","elu","enl","elin","enli"],"rp":["len","hoe","llen","hel","hele","leen","heel","ieu","nieu","nel","lein","leu","hiel","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["alleen",11766],"trw":["onze",5956],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["snel",4364],"trw":["kunnen",11536],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["zouden",4749],"trw":["nieuwe",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",35668],"trp":["ing",72541],"tlw":["ging",11015],"trw":["uit",32730],"lp":["bl","gin","ging","bli","von","bov","bui","buit","ting","blo","tui","ving","gh"],"rp":["ing","uit","ling","nig","ning","htig","hoog"]},"121":{"input":[1,4,5,6,7],"tlw":["vanuit",1383],"trw":["lang",5446],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["toch",11105],"trw":["kunt",2792],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["blijft",1361],"trw":["langs",3708],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["eigen",5173],"trw":["leven",7694],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zeggen",6400],"trw":["laten",6557],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vond",4220],"trw":["krijgen",3495],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["altijd",8787],"trw":["hoofd",7271],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",12540],"trw":["p",961],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",30480],"trp":["pa",44369],"tlw":["aap",260],"trw":["papa",882],"lp":["ap","app","aap","apa","appa"],"rp":["pa","paa","pap","ppa","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",30385],"trp":["ps",2263],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3276],"trp":["pas",6100],"trw":["pas",3162],"lp":["spa","wap","asp","spaa","aps","wsp","wapp"],"rp":["pas","pass","pw","pasp","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",32631],"trp":["pe",64915],"trw":["'",114697],"lp":["ep","epe","eep","epp","eppe","e'","ee'"],"rp":["pe","ppe","pee","'e","'ee","''","pep","pepe","'p"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",4414],"trp":["'a",772],"trw":["px",303],"lp":["appe","ape","epa","epaa","a'","xp","exp","xpe","expe","apa'"],"rp":["'a","px","pape","pa'"]},"134":{"input":[2,3,8],"tlp":["spe",7419],"trp":["'s",4942],"trw":["'s",2281],"lp":["spe","esp","spee","dp","espe","sep","d'","dep","eps","dpe","d's","epse"],"rp":["'s","'d","pd","'de","pes","pese","pse","ped"]},"135":{"input":[1,2,3,8],"tlp":["wape",918],"trp":["'w",3268],"tlw":["da's",142],"trw":["'we",656],"lp":["wape","a's","aspe","espa","dap","dapp","epas","dpa","da'","ewap"],"rp":["'w","'wa","'da","pad","'we","'waa","pda","padd","'daa","'wee"]},"136":{"input":[4,8],"tlp":["tp",294],"trp":["pt",17059],"trw":["pt",3175],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",4643],"trp":["pat",1164],"trw":["pat",62],"lp":["tap","apt","tapt","tapp","aapt","tpa","tpaa","fp","afp","aafp"],"rp":["pat","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",813],"trp":["pst",986],"lp":["tsp"],"rp":["pst","psc"]},"139":{"input":[1,2,4,8],"tlp":["stap",4318],"trp":["past",1080],"tlw":["stap",923],"trw":["past",219],"lp":["stap","fsp","afsp","tspa","cap","capa","apst","spac","spat"],"rp":["past","psta","pac","pats"]},"140":{"input":[3,4,8],"tlp":["rp",6434],"trp":["pr",39150],"trw":["'t",3159],"lp":["rp","erp","reep","ept","rpe","erpe","rep","epr","epte","repe","eper"],"rp":["pr","per","pre","pte","'t","pet","pper","pete","pree"]},"141":{"input":[1,3,4,8],"tlp":["rap",4098],"trp":["pra",9631],"tlw":["trap",1366],"trw":["paar",6885],"lp":["rap","apte","trap","rapp","tape","rapt","apar","epar","epra"],"rp":["pra","paar","par","prat","praa","part","ppar","para","perf","pera","patr"]},"142":{"input":[2,3,4,8],"tlp":["spr",12727],"trp":["pers",3101],"tlw":["respect",322],"trw":["pers",244],"lp":["spr","spre","espr","spec","rsp","rspr","sper","ersp","cep","cept","tspr","sept"],"rp":["pers","prec","pec","pect","pres","pdr","perd","pste"]},"143":{"input":[1,2,3,4,8],"tlw":["stapte",1114],"trw":["'dat",1386],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",11785],"trw":["m",364],"lp":[],"rp":["mm","mp","nm","pn","pm","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",70985],"trp":["ma",173379],"trw":["man",11151],"lp":["am","aam","amp","ama","amm"],"rp":["ma","maa","man","nam","pan","naam","mann","maan","nap","pann","nma","mam","nmaa","mma","mama"]},"146":{"input":[2,5,8],"tlp":["sm",4193],"trp":["ms",12782],"trw":["ms",164],"lp":["sm","sms"],"rp":["ms","jp","pj","nsp","mpj","nsm","jsm","jm","mps"]},"147":{"input":[1,2,5,8],"tlp":["wam",13717],"trp":["jam",1619],"tlw":["span",501],"trw":["massa",211],"lp":["wam","sam","span","sma","ams","snap","apj","smaa","aams","asm"],"rp":["jam","mas","jasp","jamm","mans","maj","mw","panj","jap","mass"]},"148":{"input":[3,5,8],"tlp":["em",102948],"trp":["me",272103],"tlw":["em",708],"trw":["me",29423],"lp":["em","eme","emen","eem","epen","enm","emm"],"rp":["me","men","mee","pen","'n","mme","ppen","nem","neme","mpe","mene","meen","neem"]},"149":{"input":[1,3,5,8],"tlp":["ema",26711],"trp":["name",3318],"tlw":["aannemen",185],"trw":["mannen",3680],"lp":["ema","ame","emaa","eman","amen","apen","enma","amme","ampe","eam","eema","emma","enam","eaam"],"rp":["name","'ma","'maa","max","pame","'na"]},"150":{"input":[2,3,5,8],"tlp":["emd",5986],"trp":["md",17766],"tlw":["sms'je",55],"trw":["mensen",8143],"lp":["emd","emde","dem","eemd","sme"],"rp":["md","mens","mde","mees","'j","pje","med","mes","pend","jpe","jpen","'je","mede","mend","mden"]},"151":{"input":[1,2,3,5,8],"tlw":["samen",3346],"trw":["maanden",1720],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3132],"trp":["mt",9354],"trw":["mt",93],"lp":["tm","bm"],"rp":["mt","mb","ntm","mpt","pb","mbt","ntp"]},"153":{"input":[1,4,5,8],"tlp":["fam",4992],"trp":["mat",3403],"tlw":["tam",57],"trw":["maat",316],"lp":["fam","tam","amb","tma","fm","tmaa","amt","aamt","ambt","afm","amat"],"rp":["mat","maat","mant","napt","mba","mf","matt","mfa","mfan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",234],"trp":["mst",4009],"tlw":["cm",234],"lp":["cm","stm"],"rp":["mst","jpt","ntsp","msc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stam",199],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",26544],"trp":["met",89793],"tlw":["ermee",749],"trw":["met",82919],"lp":["rm","rme","erm","tem","rmee","rmen","reem","bep","erme","temm","emt"],"rp":["met","mer","meer","ment","mete","mmer","mte","mbe","mber"]},"157":{"input":[1,3,4,5,8],"tlw":["armen",1959],"trw":["maar",65784],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stem",3280],"trw":["meeste",1332],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["waarmee",1313],"trw":["jasper",582],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",15794],"lp":[],"rp":["pi","ip","ipp","ppi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2645],"trp":["pz",1834],"trw":["pizza",62],"lp":["api","appi"],"rp":["pz","papi","pzi","pai","pia","pza","pzaa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",2906],"trp":["pk",1286],"trw":["pik",322],"lp":["spi"],"rp":["pk","pis","pik","kip","isp","ips","kipp","pikk","kp","ksp","kspi","pki"]},"163":{"input":[1,2,6,8],"tlp":["apk",775],"trp":["pak",6092],"trw":["pak",881],"lp":["apk","aapk","apka","wip"],"rp":["pak","kap","pakk","kapi","pka","pwi","kaps","kapp","ppak","kaap","paki","pkw","pkwa"]},"164":{"input":[3,6,8],"tlp":["epi",821],"trp":["iep",14334],"lp":["epi","eppi"],"rp":["iep","pie","'i","iepe","ippe","ipe","iepi","ppie","pipe","pei","piep","i'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1574],"trp":["'z",1130],"tlw":["appie",556],"trw":["'ze",578],"lp":["apie","z'","zeep","zi'","azi'"],"rp":["'z","'ze","pze","'zi"]},"166":{"input":[2,3,6,8],"tlp":["diep",3859],"trp":["'ik",3806],"tlw":["diep",1774],"trw":["'ik",3806],"lp":["diep","spie","disp","dpi","espi","epk"],"rp":["'ik","'k","'di","'die","'is","pike","ieps","'ki","i's","pke","pkee","peek","piek","iepk"]},"167":{"input":[1,2,3,6,8],"tlw":["zweep",76],"trw":["'wie",183],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",323],"trp":["pit",1634],"tlw":["tip",80],"trw":["pitt",114],"lp":["tip"],"rp":["pit","pv","ipt","pti","pitt","pvi","itp"]},"169":{"input":[1,4,6,8],"tlp":["apit",813],"trp":["pva",678],"lp":["apit","tapi"],"rp":["pva","pati","pvat","pita","itpa"]},"170":{"input":[2,4,6,8],"tlp":["cip",273],"trp":["pitc",623],"tlw":["spits",84],"lp":["cip","stip","spit","scip","tips"],"rp":["pitc","pist","itsp","pisc","ptis","pits","pikt","pic","pick","psti"]},"171":{"input":[1,2,4,6,8],"trw":["pakt",384],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["riep",2691],"trp":["pri",3982],"tlw":["riep",2470],"trw":["piper",395],"lp":["riep","verp","rip","epti","ript"],"rp":["pri","pier","ierp","peri","pite","piet","prei","iper","iept","prie","ipte","perv","ptie","'v","priv"]},"173":{"input":[1,3,4,6,8],"trw":["papier",791],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spreekt",454],"trw":["precies",2555],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",1554],"trw":["pakte",1998],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",99056],"trw":["min",402],"lp":[],"rp":["mi","im","min","nmi","mmi","mh","ph","pni","imm","hip","nmin","pin","imp","inm","inmi","mmin","nip","mini","hm","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",5412],"trp":["hap",4798],"trw":["hap",187],"lp":["ami","zaam","zam","anmi"],"rp":["hap","mani","haam","ham","happ","ima","iam","pha","inam","mai","pani","mah","hamm","hamp","mha","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1232],"trp":["mij",56462],"tlw":["spin",52],"trw":["mijn",42155],"lp":["sim","spij","simp","smi"],"rp":["mij","mijn","mis","miss","pij","ijp","pijn","mins","insp","knip","jim","mik","mmis","jimm","pijp","pijk"]},"179":{"input":[1,2,5,6,8],"tlw":["smaak",381],"trw":["kwam",9677],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",1479],"trp":["hem",38924],"tlw":["eph",104],"trw":["hem",36783],"lp":["emi","eim","enmi","emmi","epin"],"rp":["hem","iem","mei","niem","'h","ime","pnie","'he","imme","heim","heme","hep","mhe","impe","meni"]},"181":{"input":[1,3,5,6,8],"tlw":["z'n",1280],"trw":["maxima",176],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"trw":["meisje",3089],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["zwemmen",284],"trw":["maken",6874],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1065],"trp":["imt",1214],"tlw":["tim",122],"trw":["htm",71],"lp":["tim","tmi","timi"],"rp":["imt","mit","itm","ntim","htm","mbi","nipt","mv","mbin","imit","htp","miti","mith","mbit","mitt"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",79],"trw":["mattia",98],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["schip",1068],"trw":["minst",275],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["tapijt",196],"trw":["maakt",1930],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["evenmin",310],"trw":["'het",1331],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"trw":["manier",3158],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["spreken",1283],"trw":["misschien",7594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikaanse",726],"trw":["maakte",4198],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",166993],"trw":["op",103035],"lp":[],"rp":["op","po","oop","opp","poo","pop","ppo","popp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",574],"trp":["opa",966],"trw":["opa",532],"lp":["apo","appo"],"rp":["opa","oppa"]},"194":{"input":[2,7,8],"tlp":["spo",2653],"trp":["pos",1438],"trw":["poos",89],"lp":["spo","spoo","sop"],"rp":["pos","ops","poos","oops","pso","opsp","pspo"]},"195":{"input":[1,2,7,8],"tlp":["aspo",191],"trp":["opw",535],"trw":["oppas",51],"lp":["aspo"],"rp":["opw","pow"]},"196":{"input":[3,7,8],"tlp":["eop",278],"trp":["ope",17147],"trw":["'o",439],"lp":["eop","eope","eopo"],"rp":["ope","o'","oep","oppe","oepe","opee","poe","'o","-p","'op","-'","oo'","o-p","pope"]},"197":{"input":[1,3,7,8],"trp":["oepa",84],"lp":[],"rp":["oepa","-pa","o-pa"]},"198":{"input":[2,3,7,8],"tlp":["spoe",469],"trp":["o's",1470],"tlw":["soep",218],"trw":["poes",128],"lp":["spoe","dop","soep","so-p","dope","doop"],"rp":["o's","opd","poed","pod","opes","osep","poes","'do","'doe","oesp","'so","-sp"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",4647],"trp":["pg",6426],"tlw":["top",406],"trw":["pot",229],"lp":["top","topt","topp","gp","gop"],"rp":["pg","opg","opt","oopt","pot","pog","pott","poot","poog","pto","ptop","ogop"]},"201":{"input":[1,4,7,8],"tlp":["apot",426],"trp":["pag",1681],"trw":["pag",94],"lp":["apot","apto","gpa","gaap"],"rp":["pag","pga","opga","pgaa"]},"202":{"input":[2,4,7,8],"tlp":["stop",2723],"trp":["opst",808],"tlw":["stop",253],"trw":["post",353],"lp":["stop","spot","coop","sopg","gops","gsp"],"rp":["opst","post","psto","opsc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6839],"trp":["pro",15569],"tlw":["erop",1554],"trw":["poort",291],"lp":["rop","roep","gep","erop","to'","gepr","grep","rope"],"rp":["pro","pge","opge","opte","por","port","orp","poor","oto'","oper","-top","opr"]},"205":{"input":[1,3,4,7,8],"tlw":["gepraat",288],"trw":["page",694],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["dorp",866],"trw":["proces",337],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["waarop",2183],"trw":["professor",384],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",134142],"trw":["om",51031],"lp":[],"rp":["om","mo","moo","mon","pu","mom","um","mu","omm","nom","oom","opn","omp","onm","pun","up","num","muu","umm","numm"]},"209":{"input":[1,5,7,8],"tlp":["amo",374],"trp":["oma",3325],"trw":["oma",579],"lp":["amo","amon","anmo","aup","amu","aom"],"rp":["oma","pano","oman","pau","omaa","omma","opna","mau","opma","moa","onma","napo","naom","mano"]},"210":{"input":[2,5,7,8],"tlp":["som",5660],"trp":["oms",6883],"tlw":["soms",3682],"trw":["joop",104],"lp":["som","soms","somm","spu","sup","smo","spon","spun","sum"],"rp":["oms","mso","opj","mons","mos","mus","joop","nspo","ooms","nopj","pus"]},"211":{"input":[1,2,5,7,8],"trw":["mouw",188],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",3098],"trp":["moe",46854],"trw":["open",4188],"lp":["enom","emo","emoe","epu"],"rp":["moe","ome","omen","open","oem","mome","o'n","noem","nome","omme","oeme","umme","ompe","ume","opme","umen"]},"213":{"input":[1,3,5,7,8],"trw":["opnamen",87],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",313],"trw":["mond",3010],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["samenwonen",65],"trw":["panose-",1128],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2789],"trp":["mog",5827],"tlw":["boom",593],"trw":["punt",1157],"lp":["tom","tmo","bom","ttom","boom"],"rp":["mog","omt","punt","mot","mg","omg","ontm","ntmo","put","pub","nmog","moto","mob","omb","mput"]},"217":{"input":[1,4,5,7,8],"tlw":["tatum",76],"trw":["mag",2733],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stom",368],"trw":["muts",127],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["spontaan",128],"trw":["opstaan",213],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genomen",1400],"trw":["moet",11124],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["roman",605],"trw":["magere",261],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprong",808],"trw":["moest",9460],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["waarom",5384],"trw":["omdat",8221],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22888],"trw":["loop",1091],"lp":[],"rp":["pl","lop","lp","pol","poli","plo","loop","lip","lipp","opl","opi","pli","oplo","pil","lopi","olp","lopp","ipo","pill","ilip"]},"225":{"input":[1,6,7,8],"tlp":["alp",160],"trp":["pla",12933],"trw":["paal",163],"lp":["alp","appl","apl","apol"],"rp":["pla","plaa","lap","laap","opz","paal","opzi","pal","lapp","pzo","opzo","pala","opla","lpla","lpz","lpza"]},"226":{"input":[2,6,7,8],"tlp":["spl",351],"trp":["kop",4373],"tlw":["sloop",153],"trw":["kop",1414],"lp":["spl","slip"],"rp":["kop","klop","koop","posi","plos","opk","pols","kopp","ispl","pko","opko","ikop","kopl","kpl","kopi","pkl","lsp","ilsp"]},"227":{"input":[1,2,6,7,8],"tlw":["slaap",1052],"trw":["klap",617],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",2649],"trp":["liep",7656],"trw":["liep",5744],"lp":["elp","elop","elpe","epl","epel"],"rp":["liep","pel","lope","ple","lpe","peel","pele","ppel","plee","peli","-pi","plei","ielp","ople","pell"]},"229":{"input":[1,3,6,7,8],"tlw":["appel",103],"trw":["'zo",172],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["speelde",689],"trw":["plek",1535],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",172],"trw":["'als",569],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["glip",148],"trp":["plot",2109],"tlw":["volop",111],"trw":["loopt",1197],"lp":["glip","glop","gpl"],"rp":["plot","pig","opv","lopt","pogi","opig","ppig","pvo","opvo","lpt","pvol","oopv","lipt","opti","potl","igp","ligp"]},"233":{"input":[1,4,6,7,8],"tlw":["afloop",252],"trw":["plat",242],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pistool",468],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slaapt",181],"trw":["plaats",3721],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["voorlopig",401],"trw":["politie",1676],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",288],"trw":["plezier",573],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gesprek",1386],"trw":["periode",563],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["collega's",441],"trw":["opgewekt",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",7222],"trw":["mooi",1931],"lp":[],"rp":["mil","lim","ml","mooi","iml","liml","lm","hoop","mili","uim","minu","omh","opni","ommi","lom","mho","omho","mhoo","hop","ulp"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["plan",1394],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",579],"trw":["kom",2728],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["wanhoop",258],"trw":["opzij",767],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["lopen",2578],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["allemaal",4589],"trw":["helemaal",5218],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spelen",1140],"trw":["komen",7764],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["slapen",1278],"trw":["opnieuw",2178],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimp",157],"trw":["omhoog",1619],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",493],"trw":["langzaam",2034],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schuim",127],"trw":["komt",4942],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["glimlach",1179],"trw":["lichaam",2366],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["ruimte",1214],"trw":["minuten",1824],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1891],"trw":["mezelf",1423],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekomen",2342],"trw":["mogelijk",2546],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemaakt",2371],"trw":["mevrouw",2250],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json index 55ab69fca8..7425e7d790 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json @@ -2827,4 +2827,4 @@ "base": "SPACE", "baseshift": "" } -} \ No newline at end of file +} diff --git a/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json index a326e75806..a0b915911e 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",112911],"tlw":["a",7695],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",10806],"tlw":["s",577],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",77058],"tlw":["saa",19034],"lp":["sa","saa","as","aas","ass","ssa","wa","saas","asa","waa","ssaa","asaa","saaa","assa","aasa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6166],"tlw":["e",308],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",70925],"tlw":["ex",147],"lp":["ae","aae","ea","ax","ex","aee","xe","exe","xa","exa","axe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",411497],"tlw":["de",31445],"lp":["de","ed","se","es","ede","dd","dde","ds","des","sse","edes","dse","eds","see","ess","ese","edd","esse","edde","sed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",41689],"tlw":["da",17989],"lp":["da","ad","add","adde","ade","aad","aes","aed","sae","aade","aede","ada","daa","dda","sad","asse","aese","saad","aada","ads"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",41039],"tlw":["t",37],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",83084],"tlw":["at",55917],"lp":["at","ta","fa","af","ft","att","aat","faa","taa","aatt","ff","aft","fat","tat","tta","aff","fatt","tf","tatt","ata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",98189],"tlw":["st",132],"lp":["st","ts","sst","sc","tst","ct","tc","cc","tts","tss"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",12336],"tlw":["sat",1574],"lp":["sta","ast","sat","staa","satt","tsa","ca","fas","fast","tsaa","fs","afs","ac","stat","fst","afst","ats","tats","tsat","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",261904],"tlw":["er",33906],"lp":["er","et","te","re","rt","ere","tte","ter","tr","ett","ette","ret","rte","rr","ert","tter","tet","rre","err","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",123529],"tlw":["fra",10890],"lp":["ar","ra","fr","aer","fra","aar","aere","fte","are","ef","atte","art","tra","eft","fter","efte","rae","fe","fre","tae"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",95805],"tlw":["det",77200],"lp":["det","der","ste","dt","rd","dr","rs","est","dre","rde","este","rst","res","red","dett","str","dte","ser","ers","erd"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",3773],"tlw":["satte",1224],"lp":["ard","aest","stra","aerd","dra","ader","saet","derf","aste","rda","tad","rad","raad","stae","aard","stad","raed","fred","rsta","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",37980],"trw":["n",328],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",164272],"trp":["na",33880],"tlw":["anna",1134],"trw":["na",964],"lp":["an","ann","aan","anna","ana"],"rp":["na","naa","nna","nan","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",5809],"trp":["ns",30049],"trw":["j",102],"lp":["sn","sj","ssn"],"rp":["ns","nj","jn","js","nns","nss","nsn"]},"19":{"input":[1,2,5],"tlp":["ans",16881],"trp":["ja",19604],"tlw":["sja",654],"trw":["ja",6049],"lp":["ans","sna","san","sja","aj","ansa","sjaa","sann","asj","aja","ssan","asn"],"rp":["ja","jaa","nja","nsa","nas","jan","njaa","nasj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",321311],"trp":["ne",82848],"tlw":["en",38749],"trw":["nye",777],"lp":["en","enn","enne","ene","een","enen","ey"],"rp":["ne","nne","yn","nen","ny","ye","yne","nnen","nene","yen","nye","nny","nee"]},"21":{"input":[1,3,5],"tlp":["aen",13038],"trp":["nae",5436],"tlw":["annen",219],"trw":["naae",45],"lp":["aen","anne","ane","aaen","enna","anny","anen","aane","aene","ena","any","aany","enan","xan","exan"],"rp":["nae","naae","yna","ya","naee"]},"22":{"input":[2,3,5],"tlp":["den",74661],"trp":["nd",121952],"tlw":["den",37787],"trw":["ned",3945],"lp":["den","end","ende","sen","ens","denn","sy","syn","dn"],"rp":["nd","je","nde","jen","nden","nes","ned","ys","yd","nnes","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",33662],"trp":["jae",5122],"tlw":["anden",2420],"trw":["naade",166],"lp":["and","ande","dan","aend","aand","adan","sand","anse","enda","ands","aden","dans","dann","anda","sjae"],"rp":["jae","nda","naes","nand","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",2343],"trp":["nt",20514],"tlw":["b",230],"trw":["nb",169],"lp":["tn","bt","bn","bb","tb","ttn"],"rp":["nt","nb","nnt","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",17182],"trp":["nat",3688],"tlw":["fann",272],"trw":["nat",367],"lp":["ba","tan","ab","ant","fan","aab","baa","ban","abt","fann","abn","aabn","tab","aabt","anta","fant"],"rp":["nat","nf","natt","nta"]},"26":{"input":[2,4,5],"tlp":["bj",1597],"trp":["nst",1389],"lp":["bj","tj","sb","stn","bs","sbn","stj","sbj","stb","tsb","tsj","bst"],"rp":["nst","jst","jt","nc","jtn","nsc","nnst","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",2679],"trp":["nsta",211],"tlw":["sant",289],"trw":["jf",31],"lp":["stan","fj","tans","sant","tja","bas","abs","anst","anc","fja","asb","asbj","stba","bja","tanc"],"rp":["nsta","jac","nast","jtna","ntas"]},"28":{"input":[3,4,5],"tlp":["be",28242],"trp":["nte",10150],"tlw":["berre",1003],"trw":["nyt",327],"lp":["be","ten","ren","rn","br","ent","rne","ern","erne","ty","ry","ber","ente","eb","rb","eren"],"rp":["nte","ner","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bar",6004],"trp":["nar",6320],"tlw":["bare",3028],"trw":["naar",5355],"lp":["bar","ran","taen","bare","fy","bra","arn","fyr","aren","ften","abe","barn","raen","arb","bae"],"rp":["nar","naar","naer","nnar","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",6428],"trp":["nder",11117],"tlw":["syntes",1260],"lp":["sten","bes","endt","rden","bed","sty","best","rend","dern","synt"],"rp":["nder","ndt","ndr","ndre","jer","ndet","ndte","yst","nest","jern"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",3868],"trw":["naesten",1049],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1106],"trw":["i",62852],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",969],"trp":["ia",2946],"tlw":["ai",51],"lp":["ai","aai","za"],"rp":["ia","iaa"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",57626],"trp":["kk",58266],"tlw":["si",1195],"trw":["k",1220],"lp":["si","sk","ski","sik","sikk","skik","sis"],"rp":["kk","ik","ikk","is","ki","ks","iss","isk","kik","iks","kki","ikki","kikk"]},"35":{"input":[1,2,6],"tlp":["ak",14837],"trp":["ka",36672],"tlw":["saki",383],"trw":["ka",36],"lp":["ak","ska","akk","ask","aks","sak","aka","aask","akka","aki","saki","sia","aak","skaa"],"rp":["ka","kas","kka","isa","kaa","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",46211],"trp":["ie",12197],"tlw":["ei",2621],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",72],"trp":["iae",68],"tlw":["xi",27],"trw":["ix",27],"lp":["xi","aei","eia","xii","xiii"],"rp":["iae","ix"]},"38":{"input":[2,3,6],"tlp":["di",22778],"trp":["ke",75425],"tlw":["dei",9926],"trw":["ikke",27380],"lp":["di","ske","dei","ek","sid","ekk","side","esk","eis","eske","dis","eid"],"rp":["ke","kke","id","ikke","ide","ids","ise","isse"]},"39":{"input":[1,2,3,6],"tlp":["akke",3114],"trp":["ida",2239],"tlw":["skade",227],"trw":["kasse",30],"lp":["akke","aek","aekk","ake","aske","sida","adi","daek","ekka","skad","adsk","akse","eska","dska"],"rp":["ida","idda","isae","kad","kade","kae"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",75549],"trp":["it",21023],"tlw":["vi",9397],"trw":["iv",58],"lp":["ti","vi","tv","vit","vt","tti","tvi","viv","tviv","vii","tiv","vitt","tit"],"rp":["it","iv","itt","iti","ivi","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",86367],"trp":["if",2566],"tlw":["av",10474],"lp":["va","av","fi","vaa","ava","avt","avi","fti","tia","atti","aav","vat","ati","vita","aavi"],"rp":["if","ift","ita","iva","iaf"]},"42":{"input":[2,4,6],"tlp":["vis",9768],"trp":["kt",8569],"tlw":["sit",3082],"trw":["kvit",106],"lp":["vis","sv","sti","sit","viss","vist","sitt","vs","ci","ck","vst"],"rp":["kt","ist","kv","kvi","isst","ic","ikt","isti","kst"]},"43":{"input":[1,2,4,6],"tlp":["sva",5726],"trp":["kva",3206],"tlw":["fik",2530],"trw":["kva",1095],"lp":["sva","tak","fik","takk","akt","vak","stak","stia","fis","fisk","taka","vakk","fikk"],"rp":["kva","kast","kaf","ica","kaff","ista","kat"]},"44":{"input":[3,4,6],"tlp":["ve",84601],"trp":["ir",9659],"tlw":["eit",2100],"lp":["ve","ri","ver","ev","eve","vet","rei","eit","vei","rti","rv","rev","eri","eir","eier"],"rp":["ir","ive","ier","ite","iver"]},"45":{"input":[1,3,4,6],"tlp":["var",53426],"trp":["ifte",820],"tlw":["var",42028],"lp":["var","vae","vaer","ave","vart","vera","vare","fri","eva","aev","vara","arv","ari","rav","aeve","arve","fie","evae","fir"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13498],"trp":["kr",10422],"tlw":["ved",10508],"trw":["idet",890],"lp":["ved","vd","rk","vde","tid","rke","dri","vid","erk","skr","rdi"],"rp":["kr","ker","ket","idt","kri","kte","kker","iste","idst"]},"47":{"input":[1,2,3,4,6],"tlw":["fekk",1380],"trw":["kvar",593],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",88711],"trw":["inn",1636],"lp":[],"rp":["in","ni","hi","nin","inn","nh","hin","nhi","ih","nni","iin","nnin","hn","inni","ini","inin","nnh","hii","hiin","nnhi"]},"49":{"input":[1,5,6],"tlp":["ani",619],"trp":["ha",134263],"tlw":["ah",106],"trw":["han",52972],"lp":["ani","ania","ah","ain","anni"],"rp":["ha","han","haa","haan","ina","ian","inan","hina","nia","hann","iani","inna","nha","iana","nz"]},"50":{"input":[2,5,6],"tlp":["sin",12978],"trp":["kj",25013],"tlw":["sin",8225],"trw":["nik",27],"lp":["sin","skj","skin","sni","sh"],"rp":["kj","nk","kkj","ikkj","hj","nsk","kn","nsi","kin","ink","ins","his","nkj","kni","inkj"]},"51":{"input":[1,2,5,6],"tlp":["ansk",3797],"trp":["kan",11435],"tlw":["sank",208],"trw":["hans",8898],"lp":["ansk","ank","ansi","snak","skja","sank","ash","akn"],"rp":["kan","hans","kja","nak","nakk","hja","kans","hak","kann","kna","nska","has"]},"52":{"input":[3,5,6],"tlp":["ein",9181],"trp":["he",52514],"tlw":["ein",5538],"trw":["henne",2515],"lp":["ein","eh","enh","eni","eine","eien","enin","enhe"],"rp":["he","hen","ine","henn","hei","nei","ien","inne","hy","inen","nhe","ihe"]},"53":{"input":[1,3,5,6],"tlp":["eha",758],"trp":["hae",2400],"tlw":["einannan",141],"trw":["hena",63],"lp":["eha","enha","eina","ehan","anie","enia","enz","aine","anei","ahy","ehaa","aein","einz"],"rp":["hae","haen","iane","nhae","hena","hea","hax"]},"54":{"input":[2,3,5,6],"tlp":["enk",5100],"trp":["ind",19969],"tlw":["sine",3555],"trw":["ikkje",7483],"lp":["enk","sine","din"],"rp":["ind","kje","hend","inde","kkje","yk","ken","hed","nke","iden","ykk","hje","nske","ykke","ky","kjen","nesk"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",654],"trw":["hadde",11705],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",4628],"trp":["hv",25602],"tlw":["thi",1736],"trw":["hit",287],"lp":["vin","th","bi","tin","vn","thi","tni","tnin","vint","bin","vinn"],"rp":["hv","hvi","int","ib","nti","nhv","nv","ntin","hvit"]},"57":{"input":[1,4,5,6],"tlp":["van",4044],"trp":["hav",15474],"tlw":["fin",261],"trw":["navn",696],"lp":["van","fin","avn","finn","tian","vant","anv","fint","vann"],"rp":["hav","hva","nav","navn","hava","hat","havt","haab","hatt","havn","nhav"]},"58":{"input":[2,4,5,6],"tlp":["ch",2454],"trp":["nkt",2442],"tlw":["sint",142],"trw":["hvis",1991],"lp":["ch","stin","sch","svin","skib","bis","tkj","stni"],"rp":["nkt","hvis","kvin","nic","hist","istn","ich","kib","isb","isbn","kniv","inst"]},"59":{"input":[1,2,4,5,6],"tlw":["bak",310],"trw":["kant",169],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",10891],"trp":["her",10731],"tlw":["ven",661],"trw":["her",6657],"lp":["ven","rin","rh","vent","even","vne","beh","bei","bev","evn","erh","the"],"rp":["her","hve","hver","inte","hev","herr","hr","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",333],"trw":["har",14412],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["verden",958],"trw":["kjendte",636],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["vand",853],"trw":["havde",9987],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",42],"trw":["o",923],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",34],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",62776],"trp":["os",14215],"tlw":["so",6443],"trw":["os",3796],"lp":["so","sos","sso","soso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",147],"trp":["ow",102],"trw":["ossaa",45],"lp":["wo","aso","aaso","asso"],"rp":["ow","ossa","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",687],"trp":["oe",3728],"trw":["-",3322],"lp":["eo","e-"],"rp":["oe","-o","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",49],"trp":["ox",122],"lp":["a-","e-a","e-aa"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",13375],"trp":["od",32172],"tlw":["dod",621],"trw":["odd",219],"lp":["do","dod","eso","dode","edo","sod","dso","esso","doe"],"rp":["od","ode","odd","ose","ods","odde","oed","oede","osse","odse","odes"]},"71":{"input":[1,2,3,7],"tlp":["adso",64],"trp":["odsa",186],"lp":["adso","de-a"],"rp":["odsa","oda","odda","-aas"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",34309],"trp":["og",149705],"tlw":["to",2884],"trw":["og",122759],"lp":["to","gt","go","gg","tog","tg","tot","tott","gto","tto","gtt","got","gtto","ttog"],"rp":["og","ot","ott","ogt","ogg","otto"]},"73":{"input":[1,4,7],"tlp":["fo",74135],"trp":["of",3896],"tlw":["gaa",1786],"lp":["fo","ag","ga","agt","gaa","tag","aag","gat","aga","tfo","tga","fot","gf","fag","gaat"],"rp":["of","oft","ofa","off","otta"]},"74":{"input":[2,4,7],"tlp":["sto",16012],"trp":["ogs",5245],"tlw":["stott",99],"trw":["oc",346],"lp":["sto","gs","sog","gst","sg","gso","sost","co","sogt","stot","toc","stoc","tso","sot"],"rp":["ogs","ost","oc","ogso","osto","oct"]},"75":{"input":[1,2,4,7],"tlp":["sag",7523],"trp":["ogsa",5006],"tlw":["sagt",1463],"trw":["ogsaa",3774],"lp":["sag","gsa","gsaa","sagt","ags","sof","saag","sga","asg","asto","sofa","sgaa","aco","fos","sfo","stof","soga","gsta"],"rp":["ogsa","ofas"]},"76":{"input":[3,4,7],"tlp":["ge",87205],"trp":["or",142919],"tlw":["eg",8868],"trw":["or",301],"lp":["ge","eg","ro","tor","get","ger","gr","ege","rg","gte","gge","tro","eget"],"rp":["or","ort","ore","oge","orte","org","oget"]},"77":{"input":[1,3,4,7],"tlp":["for",64883],"trp":["ora",3045],"tlw":["for",32016],"trw":["ofte",1064],"lp":["for","age","fort","aeg","tage","rag","gar","rfo","rfor","gra","fore","gaar","fora","agte","erfo","aegg"],"rp":["ora","ofte","orta","orf"]},"78":{"input":[2,3,4,7],"tlp":["stor",7850],"trp":["ord",13774],"tlw":["seg",6090],"trw":["ord",1982],"lp":["stor","god","seg","gd","tod","stod","gde","ges","dog","godt","rod","deg","dor","rso","sor"],"rp":["ord","ors","orst","orde","odt"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",3425],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",57145],"trw":["nu",8186],"lp":[],"rp":["un","no","on","nu","unn","ono","onn","nno","ou","uu","nun","uun","onno","non","nnu","uo","uno","oun"]},"81":{"input":[1,5,7],"tlp":["au",4958],"trp":["unna",1842],"tlw":["au",141],"trw":["unna",94],"lp":["au","ano","anu","anua","anno"],"rp":["unna","ona","ua","onna","nau","nua","una"]},"82":{"input":[2,5,7],"tlp":["su",3824],"trp":["jo",23891],"tlw":["son",930],"trw":["jo",3859],"lp":["su","son","sjo","snu","sun","sno","sson","sonn"],"rp":["jo","us","ju","jon","oj","ons","jonn","jus","ojn","uss","jos","uns"]},"83":{"input":[1,2,5,7],"tlp":["aus",1274],"trp":["jona",341],"tlw":["sau",28],"trw":["jau",154],"lp":["aus","ajo","asjo","sau","anus","wu","snau","sua"],"rp":["jona","jau","ussa","onas","janu","usa","onsa"]},"84":{"input":[3,5,7],"tlp":["eno",822],"trp":["ue",3657],"tlw":["enno",276],"trw":["noe",486],"lp":["eno","eu","enno","eon","eun","enu"],"rp":["ue","one","uen","unne","oy","onne","oen","noe","onen","une","noen","yo","oyo","oye"]},"85":{"input":[1,3,5,7],"tlp":["eona",156],"trp":["oxn",30],"lp":["eona","anoe","aue","auen"],"rp":["oxn","oxne","ux","oux","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",19662],"trp":["und",23222],"tlw":["du",17772],"trw":["ud",4343],"lp":["du","dnu"],"rp":["und","ud","unde","ude","uden","ndnu","use","ond","uds","ndo","udd","udse","udde","oje","nod","ndu","onde","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["daud",104],"trw":["unda",243],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",11738],"trp":["ng",56304],"tlw":["gong",545],"trw":["ut",3855],"lp":["bo","gu","tu","gn","bu","tun","gun","gunn","gut","gon"],"rp":["ng","ut","nog","ug","ung","ngt","ong","ob","utt","ont"]},"89":{"input":[1,4,5,7],"tlp":["ang",17346],"trp":["nga",2499],"tlw":["gang",1862],"trw":["utan",212],"lp":["ang","gan","gang","fu","bag","angt","atu","aug","agn","fun","aut","fang"],"rp":["nga","natu","ngan","uf","nfo","uft","uta","utga"]},"90":{"input":[2,4,5,7],"tlp":["gj",23821],"trp":["ngs",2173],"tlw":["song",96],"trw":["just",538],"lp":["gj","gjo","stu","bjo","stun","tus","ggj","gus","stno"],"rp":["ngs","ust","ngst","jont","just","uc","ngso","job","jot","unst","ugus"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",405],"trw":["jacob",143],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",22078],"trp":["nge",25467],"tlw":["bort",1232],"trw":["noget",4415],"lp":["gen","ru","eng","bor","enge","beg","run","tur","egen","gy"],"rp":["nge","ur","ngen","noge","yg","nger","oren","orn","ogen","nor"]},"93":{"input":[1,3,4,5,7],"tlw":["gunnar",1603],"trw":["naturen",307],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",2339],"trw":["jeg",29616],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",1077],"trw":["udenfor",448],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",83974],"trw":["lo",890],"lp":[],"rp":["il","li","ll","ol","lo","ill","oi","lli","oli","io","illi","lil","ili","lill","oll","llo","illo","lio","loi","iil"]},"97":{"input":[1,6,7],"tlp":["al",58249],"trp":["la",46808],"tlw":["al",993],"trw":["la",2277],"lp":["al","all","aal","ala","alli","ali","alla","aala","alo"],"rp":["la","laa","lla","ola","illa","ial","lai","olai","lia","ila","oia"]},"98":{"input":[2,6,7],"tlp":["sl",12627],"trp":["ko",30079],"tlw":["slik",1363],"trw":["los",291],"lp":["sl","sli","slik","sol","slo"],"rp":["ko","ok","ls","lik","lk","kl","olk","lsk","ils","oko","kol","oks","ilk","okk","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",8407],"trp":["kal",10316],"tlw":["skal",8110],"trw":["kalla",209],"lp":["skal","sla","saal","ako","als","sal","slaa","alsk","alk","asl"],"rp":["kal","kla","las","lska","lass","kall","lsa","lask","lak","isla"]},"100":{"input":[3,6,7],"tlp":["el",77241],"trp":["le",79550],"tlw":["elle",34],"trw":["lille",1039],"lp":["el","ell","elle","eli","ele","eil","elli","eel","eile"],"rp":["le","lle","ille","ole","oie","lei","ile","lie","iel","lel","olle"]},"101":{"input":[1,3,6,7],"tlp":["ale",7840],"trp":["lae",9587],"tlw":["alle",5666],"trw":["lea",237],"lp":["ale","alle","ael","aale","aell","ella","aele","ela","alae","alie","alei","eal","eale","aael","alex"],"rp":["lae","laae","lea","iael","lex"]},"102":{"input":[2,3,6,7],"tlp":["els",10495],"trp":["ld",45157],"tlw":["del",665],"trw":["lod",1164],"lp":["els","del","sel","eld","else","deli","elsk","dl","elde"],"rp":["ld","lde","ild","ilde","old","lse","kel","led","lid","lede","keli"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",1295],"trw":["lad",661],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",52776],"trp":["ig",98658],"tlw":["til",41443],"trw":["liv",1338],"lp":["til","vil","vo","gi","gl","tig","till","tl","gti"],"rp":["ig","lig","ov","lt","lv","igt","liv","lg","lit","ligt","lov"]},"105":{"input":[1,4,6,7],"tlp":["alt",10974],"trp":["lag",4727],"tlw":["alt",4399],"trw":["olav",641],"lp":["alt","fol","tal","fl","gav","fal","gla","alv","talt","folg","alti","flo","fla","tilf","gif"],"rp":["lag","lf","lav","lat","ilf"]},"106":{"input":[2,4,6,7],"tlp":["sig",27397],"trp":["lst",1344],"tlw":["sig",21706],"lp":["sig","gik","tok","stil","sigt","tils","vilk","stol","slig","sov","gvis","slog","gikk","stig"],"rp":["lst","lts","kog","likt","okt","kto"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",2816],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",14150],"trp":["ige",17385],"tlw":["eller",6110],"trw":["over",7437],"lp":["vor","elig","rl","vel","elv","rig","rli","rlig","elt","erl"],"rp":["ige","ove","ler","over","ller","lige","lev","lte","let","live"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1360],"trw":["laegge",464],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["vilde",7016],"trw":["lidt",2153],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",2153],"trw":["idag",668],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",30354],"trw":["hun",21044],"lp":[],"rp":["ho","hu","hun","ul","lu","hol","lin","hon","hono","nl","hoi","uli","ull","oin","nli","hil","llin","oh","oni","nhil"]},"113":{"input":[1,5,6,7],"tlp":["anl",884],"trp":["lan",10243],"tlw":["alonzo",24],"trw":["hall",138],"lp":["anl","anli","ahl"],"rp":["lan","hal","lau","hall","nla","oha","ohan","nal","onal","nnla","nlau","llan","hau","onla","ula","nlan","ulia"]},"114":{"input":[2,5,6,7],"tlp":["sku",10170],"trp":["ku",23180],"tlw":["sjol",372],"trw":["nok",3367],"lp":["sku","skul","skjo","slu"],"rp":["ku","kun","kul","nok","kon","kjo","uk","hos","hus","ukk","noko","kjon","kunn","jol","lj","jul"]},"115":{"input":[1,2,5,6,7],"trw":["hakon",849],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",965],"trp":["hel",9131],"trw":["hele",2760],"lp":["eho","elen","enl","ehol"],"rp":["hel","len","ly","yl","hele","hell","oine","lene","olen","ule","ulle","hoie","hoy","heil","uly","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",964],"trw":["nella",82],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",7929],"trw":["kunde",7993],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",299],"trw":["land",975],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",22281],"trp":["ing",20917],"tlw":["bli",1395],"trw":["hoit",425],"lp":["bl","bli","ting","gh","bliv","tilb","blo"],"rp":["ing","hvo","ning","lb","igh","ilb","hov","ling","ligh","hvil","lut","ntl","ntli"]},"121":{"input":[1,4,5,6,7],"tlw":["gunnlaug",319],"trw":["langt",1662],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",491],"trw":["och",329],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",724],"trw":["langs",495],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",6367],"trw":["hvor",4988],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1441],"trw":["laenge",1067],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["gjekk",2117],"trw":["igjen",3313],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1701],"trw":["landet",659],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",6585],"trw":["p",102],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",4962],"trp":["pa",49694],"trw":["paa",26138],"lp":["ap","app","aap","apa","appa","aapa"],"rp":["pa","paa","pap","ppa","ppaa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",8870],"trp":["ps",217],"trw":["ps",26],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",590],"trp":["pas",1229],"tlw":["saapas",42],"trw":["pas",58],"lp":["spa","saap","apas","asp"],"rp":["pas","pass","paas","psa","pspa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1790],"trp":["pe",12061],"trw":["'",36],"lp":["ep","epp","eppe","epe","e'"],"rp":["pe","ppe","pee","'e","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",605],"trp":["pae",444],"trw":["'a",44],"lp":["appe","ape","a'","epa","aape","eppa"],"rp":["pae","paee","'a","pea"]},"134":{"input":[2,3,8],"tlp":["spe",488],"trp":["pd",356],"lp":["spe","dp","esp","espe","sep","dsp","edp","s'","d'","d'e","es'","des'","ed'","dep"],"rp":["pd","ped","pede","pped","pes","ppes"]},"135":{"input":[1,2,3,8],"tlp":["spae",291],"trp":["pda",290],"tlw":["sa'",71],"trw":["passe",167],"lp":["spae","dpa","dpaa","sa'","edpa","aspe","depa"],"rp":["pda","pad","paed"]},"136":{"input":[4,8],"tlp":["tp",173],"trp":["pt",1987],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",508],"trp":["pf",337],"tlw":["tapt",32],"lp":["apt","tpa","tap","tapt","tpaa"],"rp":["pf","pta","paaf","pfa","pfat","ptat","pat","ppat","patt"]},"138":{"input":[2,4,8],"trp":["pst",23],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["cap",53],"trp":["past",196],"trw":["paastaa",25],"lp":["cap","capp"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["rp",1719],"trp":["pr",6671],"tlw":["teppet",51],"trw":["per",998],"lp":["rp","erp","rep","repe","t'","et'","ept","tep"],"rp":["pr","per","pet","pre","pte","pper","ppet","petr","pete","ptr","pere","peer"]},"141":{"input":[1,3,4,8],"tlp":["rpa",1174],"trp":["pra",2577],"tlw":["rapp",178],"trw":["par",1236],"lp":["rpa","rpaa","erpa","rap","arp","rapp","trap","apte","apet","repa","arpe","apr","rape"],"rp":["pra","par","prae","part","prat","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1897],"trp":["pres",895],"tlw":["drepe",95],"trw":["prest",134],"lp":["spr","derp","drep","set'","sept","spre","sper","resp","step","rdsp","spec","d'er","dtp","rdp"],"rp":["pres","pers","pred","pdr","pec","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",639],"trw":["passer",132],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",21715],"trw":["m",266],"lp":[],"rp":["mm","mp","mn","pn","nm","np","pm","nnp"]},"145":{"input":[1,5,8],"tlp":["am",30376],"trp":["ma",44872],"trw":["man",6961],"lp":["am","amm","ama","amp","aam","apn","aman","amn","ampa"],"rp":["ma","man","maa","mann","pan","mma","nap","nma","maan","npa","mpa"]},"146":{"input":[2,5,8],"tlp":["sm",7709],"trp":["ms",1313],"lp":["sm","spj"],"rp":["ms","nsm","mj","pj","nsp","mps","mss","msp"]},"147":{"input":[1,2,5,8],"tlp":["sam",7924],"trp":["maj",624],"tlw":["smaa",580],"trw":["jaampa",181],"lp":["sam","samm","sma","smaa","sman","asm","aasm","sama","saam","ams"],"rp":["maj","maas","mas","jam","jaam","nsma","mja","mass","jamn","jamm"]},"148":{"input":[3,5,8],"tlp":["em",29102],"trp":["me",119265],"trw":["men",24935],"lp":["em","emm","emme","emn","eme"],"rp":["me","men","mme","mmen","menn","nem","pen","nnem","my","mpe","mene","ppen","mee","nep","'n"]},"149":{"input":[1,3,5,8],"tlp":["amme",6974],"trp":["mae",3374],"tlw":["apne",60],"trw":["mannen",490],"lp":["amme","ame","amen","ema","ampe","aem","apne","enpa","aame","emae","aemp","apen","emna","xem"],"rp":["mae","maen","maae","paen","mane","pmae"]},"150":{"input":[2,3,5,8],"tlp":["dem",8585],"trp":["med",39755],"tlw":["dem",8538],"trw":["med",36341],"lp":["dem","sme","dm","esm","sem","emnd","emd","emde"],"rp":["med","jem","mes","mede","mens","jemm","mmed","mend","mmes","md","mde","mnd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",2157],"trw":["mand",2119],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",528],"trp":["mt",5699],"lp":["tm","bm","ttm"],"rp":["mt","mb","mtm","mnt"]},"153":{"input":[1,4,5,8],"tlp":["amt",1276],"trp":["maat",2873],"tlw":["amt",30],"trw":["mat",345],"lp":["amt","amf","amta","fam","tma","tman","amtm","tam","tamm","amb"],"rp":["maat","mat","matt","mf","mta","mtma","napt","mant","manf","mata"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",72],"trp":["mst",812],"lp":["stm"],"rp":["mst"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",265],"trw":["jamt",42],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",7650],"trp":["mer",11185],"trw":["mere",2630],"lp":["rm","rme","rem","tem","erm","emt","erme","temm","rmen","remm","emte","temt","rmer"],"rp":["mer","mmer","mere","met","mte","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",2232],"trw":["maatte",2413],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["dermed",460],"trw":["mest",1195],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",427],"trw":["praesten",521],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3962],"lp":[],"rp":["pi","ip","ipp","ppi","pip","pii","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",565],"trp":["papi",297],"trw":["pipa",30],"lp":["api","apii","aapi"],"rp":["papi","ipa","pia","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",1562],"trp":["pis",688],"tlw":["skip",130],"lp":["spi","spis","skip"],"rp":["pis","kip","pik","isp","kipp","kp","pk","psk","pski","psi","kipi","ips","kips"]},"163":{"input":[1,2,6,8],"tlp":["skap",1414],"trp":["kap",2212],"tlw":["skipa",35],"trw":["kap",53],"lp":["skap","spak"],"rp":["kap","pak","kapi","kapp","pakk","kasp","kipa","kapa"]},"164":{"input":[3,6,8],"tlp":["epi",51],"trp":["ippe",579],"lp":["epi"],"rp":["ippe","ipe","pei","i'","pipe"]},"165":{"input":[1,3,6,8],"trp":["paei",34],"lp":[],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",160],"trp":["pise",465],"tlw":["spise",213],"trw":["pike",73],"lp":["spid","spek","spei","espi","dpi","edpi"],"rp":["pise","kipe","pid","pike","pek","pids","ispe","'k","peis","idsp"]},"167":{"input":[1,2,3,6,8],"tlw":["skape",20],"trw":["pakke",59],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vp",22],"trp":["pit",244],"lp":["vp"],"rp":["pit","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",244],"trp":["pita",83],"lp":["apit","vap","vaap","vpa"],"rp":["pita","pav","paav"]},"170":{"input":[2,4,6,8],"tlp":["cip",35],"trp":["pist",223],"tlw":["spist",76],"lp":["cip"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"tlw":["skapt",72],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",118],"trp":["pri",1351],"lp":["rip","ript","ripe","tepi"],"rp":["pri","pir","pire","ipet","peri","ptei","pite","ptri","priv","piir","ipte","peti","prii","prei"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",31],"trw":["parti",114],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skipet",189],"trw":["pris",147],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpe",106],"trw":["paris",116],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",30489],"trw":["min",5651],"lp":[],"rp":["mi","min","im","imi","ph","him","imm","mh","himm","imp","hm","minn","pin","mni","mnin","inm","phi","phin","nim","pni"]},"177":{"input":[1,5,6,8],"tlp":["ami",591],"trp":["ham",10774],"trw":["ham",10248],"lp":["ami","aim","aima","apni","amin","aham"],"rp":["ham","hamm","mai","ima","iman","inma","hama","maim","hamp","hma","hman","mina","hap","pian"]},"178":{"input":[2,5,6,8],"tlp":["smi",1350],"trp":["mk",1125],"trw":["km",55],"lp":["smi","sim","simp","skim","simi"],"rp":["mk","mis","km","msi","kim","ism","mins","mkj","misk","mik","ksim","insp","mpsk","ims","imss"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",220],"trw":["kamp",171],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["eim",1710],"trp":["ime",2104],"trw":["mine",1626],"lp":["eim","eime","emni","enim"],"rp":["ime","mine","mei","heim","imme","meni","mein","hem","mhe","phe","hemm","impe","menh","imen","pine","hemn"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",122],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["deim",320],"trw":["hjem",1228],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["aminda",55],"trw":["maaske",483],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1156],"trp":["mit",1962],"trw":["mit",1634],"lp":["tim","timm","tmi","tmin","vm","vim"],"rp":["mit","mti","mv","ntim","mitt","imt","pib","mvi","mvit","mith","mint","pint","imit"]},"185":{"input":[1,4,5,6,8],"tlw":["vapni",74],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["bisp",71],"trw":["minst",66],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["knapt",173],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",369],"trw":["meir",910],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",418],"trw":["marthe",201],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"trw":["mindre",926],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["skarphedin",261],"trw":["maerke",210],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",14625],"trw":["op",5953],"lp":[],"rp":["op","po","opp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",23],"trp":["opa",359],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1607],"trp":["pos",227],"lp":["spo"],"rp":["pos","ops","osp","poss","pso","opso","opsp"]},"195":{"input":[1,2,7,8],"trp":["ospa",68],"lp":[],"rp":["ospa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1803],"trw":["oppe",861],"lp":[],"rp":["oppe","ope","-p","-pe","poe","o'","'o"]},"197":{"input":[1,3,7,8],"trp":["opae",89],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dop",25],"trp":["opd",356],"trw":["posse",49],"lp":["dop","dope"],"rp":["opd","poes","pose"]},"199":{"input":[1,2,3,7,8],"trw":["opad",95],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1476],"trp":["opt",955],"tlw":["top",86],"trw":["pot",131],"lp":["top","topp","ttop"],"rp":["opt","pot","pg","opg","pog","pott","pto","opto","ptog"]},"201":{"input":[1,4,7,8],"trp":["opf",337],"trw":["optat",55],"lp":[],"rp":["opf","opta","pfo","opfo","ptag","pga","opga","opfa","pag","pagt"]},"202":{"input":[2,4,7,8],"tlp":["stop",159],"trp":["post",133],"tlw":["spog",66],"trw":["post",83],"lp":["stop","spog","spot"],"rp":["post","psog","opst","psto"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1406],"trp":["por",1635],"tlw":["ropte",390],"trw":["potter",86],"lp":["rop","etop","ropp","ropt","erop","grep","t-p","t-pe"],"rp":["por","pro","porg","opte","opr","orp","prog","port","optr","pote","opro","pror"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",47],"trw":["praeg",79],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",486],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",149],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",89943],"trw":["om",15683],"lp":[],"rp":["om","mo","omm","um","mu","pu","nom","onom","up","mun","upp","pun","mon","umm","umu","mum","omn","opm","munn","mom"]},"209":{"input":[1,5,7,8],"tlp":["amu",199],"trp":["oma",845],"trw":["opnaa",33],"lp":["amu","amun","amum","aum","anmo","aup"],"rp":["oma","uma","omma","pau","opma","oman","opna","uppa","manu","umaa","mau","upa","napo"]},"210":{"input":[2,5,7,8],"tlp":["som",43671],"trp":["oms",911],"tlw":["som",39317],"trw":["mons",44],"lp":["som","spu","smu","somm","smo","smun","sum","sup","supp","spjo"],"rp":["oms","osm","jom","mus","jop","nsom","pus","mons","mos","pjo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",54],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",392],"trp":["omme",9224],"trw":["munnen",129],"lp":["enom","emo","epu"],"rp":["omme","umme","uppe","ome","omne","omen","ume","moe","mue","opme","upe","ompe","mome","umen","muen","moen","omy"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",370],"trw":["mod",2528],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["aasmund",396],"trw":["pause",88],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",707],"trp":["mot",4043],"tlw":["tom",164],"trw":["mot",2107],"lp":["tom","tum","tomm","gm","gom","tomt","gmu","gmun","tup"],"rp":["mot","omt","mott","munt","mg","pub","omb","mbo","ombo","mob","omg"]},"217":{"input":[1,4,5,7,8],"tlw":["bagom",48],"trw":["magt",486],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["spjot",59],"trw":["pust",52],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",190],"trw":["magnus",34],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"trw":["meget",2988],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",273],"trw":["mange",2669],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gjennem",1415],"trw":["moder",464],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",713],"trw":["majoren",426],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3409],"trw":["lop",55],"lp":[],"rp":["pl","lp","pil","pill","lip","lipp","opl","pol","poli","pli","plo","opi","lop","oppi","polo","lpi","oplo"]},"225":{"input":[1,6,7,8],"tlp":["alp",182],"trp":["pla",1343],"trw":["paal",37],"lp":["alp","apol"],"rp":["pla","lap","lapp","lpa","paal","pal","opla","pall"]},"226":{"input":[2,6,7,8],"tlp":["spil",667],"trp":["kop",224],"tlw":["spil",91],"trw":["kop",63],"lp":["spil","slip","skop","spl","spok"],"rp":["kop","klip","pok","pokk","okp","kopp","opk","pko","opko","opsi","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",263],"trw":["plass",85],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1444],"trp":["pel",799],"trw":["pleie",43],"lp":["elp","elpe","elpi"],"rp":["pel","ple","lpe","plei","pell","lep","ople","lepp","peil","li'","ielp","ppel","pele","le'","peli","pile"]},"229":{"input":[1,3,6,7,8],"trw":["la'",34],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["slippe",195],"trw":["pleiede",91],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["selskap",63],"trw":["plads",500],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"trp":["pig",957],"trw":["pligt",151],"lp":[],"rp":["pig","pov","opov","plig","pilt","lpt","pgi","opgi","pgiv","pitl","opig","ppig","lvp","plog"]},"233":{"input":[1,4,6,7,8],"trw":["opgav",46],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["spilt",21],"trw":["opkog",50],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slapt",29],"trw":["kapital",22],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",436],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",106],"trw":["opgave",88],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",93],"trw":["krop",146],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["sprak-",207],"trw":["kapitel",109],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",5031],"trw":["honom",2975],"lp":[],"rp":["ml","imo","mil","lm","mul","lom","muli","plu","mli","mill","llom","lmi","lmin","hop","omh","umul","mili","uml","iml","oph"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alm",22],"trw":["maal",213],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",397],"trw":["kom",8732],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smal",74],"trw":["koma",530],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["emil",46],"trw":["mellem",1590],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amalie",193],"trw":["lampen",95],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smukke",238],"trw":["komme",2169],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["allesammen",166],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glum",116],"trw":["mig",10638],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamal",73],"trw":["opfatning",67],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",152],"trw":["punkt",134],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["stockmann",328],"trw":["langsomt",378],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["temmelig",368],"trw":["nemlig",491],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",2534],"trw":["maelte",821],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["smilte",389],"trw":["kommer",2127],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bokselskap",856],"trw":["litteraturselskap",207],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",112911],"tlw":["a",7695],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",10806],"tlw":["s",577],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",77058],"tlw":["saa",19034],"lp":["sa","saa","as","aas","ass","ssa","wa","saas","asa","waa","ssaa","asaa","saaa","assa","aasa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6166],"tlw":["e",308],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",70925],"tlw":["ex",147],"lp":["ae","aae","ea","ax","ex","aee","xe","exe","xa","exa","axe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",411497],"tlw":["de",31445],"lp":["de","ed","se","es","ede","dd","dde","ds","des","sse","edes","dse","eds","see","ess","ese","edd","esse","edde","sed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",41689],"tlw":["da",17989],"lp":["da","ad","add","adde","ade","aad","aes","aed","sae","aade","aede","ada","daa","dda","sad","asse","aese","saad","aada","ads"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",41039],"tlw":["t",37],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",83084],"tlw":["at",55917],"lp":["at","ta","fa","af","ft","att","aat","faa","taa","aatt","ff","aft","fat","tat","tta","aff","fatt","tf","tatt","ata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",98189],"tlw":["st",132],"lp":["st","ts","sst","sc","tst","ct","tc","cc","tts","tss"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",12336],"tlw":["sat",1574],"lp":["sta","ast","sat","staa","satt","tsa","ca","fas","fast","tsaa","fs","afs","ac","stat","fst","afst","ats","tats","tsat","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",261904],"tlw":["er",33906],"lp":["er","et","te","re","rt","ere","tte","ter","tr","ett","ette","ret","rte","rr","ert","tter","tet","rre","err","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",123529],"tlw":["fra",10890],"lp":["ar","ra","fr","aer","fra","aar","aere","fte","are","ef","atte","art","tra","eft","fter","efte","rae","fe","fre","tae"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",95805],"tlw":["det",77200],"lp":["det","der","ste","dt","rd","dr","rs","est","dre","rde","este","rst","res","red","dett","str","dte","ser","ers","erd"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",3773],"tlw":["satte",1224],"lp":["ard","aest","stra","aerd","dra","ader","saet","derf","aste","rda","tad","rad","raad","stae","aard","stad","raed","fred","rsta","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",37980],"trw":["n",328],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",164272],"trp":["na",33880],"tlw":["anna",1134],"trw":["na",964],"lp":["an","ann","aan","anna","ana"],"rp":["na","naa","nna","nan","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",5809],"trp":["ns",30049],"trw":["j",102],"lp":["sn","sj","ssn"],"rp":["ns","nj","jn","js","nns","nss","nsn"]},"19":{"input":[1,2,5],"tlp":["ans",16881],"trp":["ja",19604],"tlw":["sja",654],"trw":["ja",6049],"lp":["ans","sna","san","sja","aj","ansa","sjaa","sann","asj","aja","ssan","asn"],"rp":["ja","jaa","nja","nsa","nas","jan","njaa","nasj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",321311],"trp":["ne",82848],"tlw":["en",38749],"trw":["nye",777],"lp":["en","enn","enne","ene","een","enen","ey"],"rp":["ne","nne","yn","nen","ny","ye","yne","nnen","nene","yen","nye","nny","nee"]},"21":{"input":[1,3,5],"tlp":["aen",13038],"trp":["nae",5436],"tlw":["annen",219],"trw":["naae",45],"lp":["aen","anne","ane","aaen","enna","anny","anen","aane","aene","ena","any","aany","enan","xan","exan"],"rp":["nae","naae","yna","ya","naee"]},"22":{"input":[2,3,5],"tlp":["den",74661],"trp":["nd",121952],"tlw":["den",37787],"trw":["ned",3945],"lp":["den","end","ende","sen","ens","denn","sy","syn","dn"],"rp":["nd","je","nde","jen","nden","nes","ned","ys","yd","nnes","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",33662],"trp":["jae",5122],"tlw":["anden",2420],"trw":["naade",166],"lp":["and","ande","dan","aend","aand","adan","sand","anse","enda","ands","aden","dans","dann","anda","sjae"],"rp":["jae","nda","naes","nand","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",2343],"trp":["nt",20514],"tlw":["b",230],"trw":["nb",169],"lp":["tn","bt","bn","bb","tb","ttn"],"rp":["nt","nb","nnt","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",17182],"trp":["nat",3688],"tlw":["fann",272],"trw":["nat",367],"lp":["ba","tan","ab","ant","fan","aab","baa","ban","abt","fann","abn","aabn","tab","aabt","anta","fant"],"rp":["nat","nf","natt","nta"]},"26":{"input":[2,4,5],"tlp":["bj",1597],"trp":["nst",1389],"lp":["bj","tj","sb","stn","bs","sbn","stj","sbj","stb","tsb","tsj","bst"],"rp":["nst","jst","jt","nc","jtn","nsc","nnst","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",2679],"trp":["nsta",211],"tlw":["sant",289],"trw":["jf",31],"lp":["stan","fj","tans","sant","tja","bas","abs","anst","anc","fja","asb","asbj","stba","bja","tanc"],"rp":["nsta","jac","nast","jtna","ntas"]},"28":{"input":[3,4,5],"tlp":["be",28242],"trp":["nte",10150],"tlw":["berre",1003],"trw":["nyt",327],"lp":["be","ten","ren","rn","br","ent","rne","ern","erne","ty","ry","ber","ente","eb","rb","eren"],"rp":["nte","ner","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bar",6004],"trp":["nar",6320],"tlw":["bare",3028],"trw":["naar",5355],"lp":["bar","ran","taen","bare","fy","bra","arn","fyr","aren","ften","abe","barn","raen","arb","bae"],"rp":["nar","naar","naer","nnar","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",6428],"trp":["nder",11117],"tlw":["syntes",1260],"lp":["sten","bes","endt","rden","bed","sty","best","rend","dern","synt"],"rp":["nder","ndt","ndr","ndre","jer","ndet","ndte","yst","nest","jern"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",3868],"trw":["naesten",1049],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1106],"trw":["i",62852],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",969],"trp":["ia",2946],"tlw":["ai",51],"lp":["ai","aai","za"],"rp":["ia","iaa"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",57626],"trp":["kk",58266],"tlw":["si",1195],"trw":["k",1220],"lp":["si","sk","ski","sik","sikk","skik","sis"],"rp":["kk","ik","ikk","is","ki","ks","iss","isk","kik","iks","kki","ikki","kikk"]},"35":{"input":[1,2,6],"tlp":["ak",14837],"trp":["ka",36672],"tlw":["saki",383],"trw":["ka",36],"lp":["ak","ska","akk","ask","aks","sak","aka","aask","akka","aki","saki","sia","aak","skaa"],"rp":["ka","kas","kka","isa","kaa","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",46211],"trp":["ie",12197],"tlw":["ei",2621],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",72],"trp":["iae",68],"tlw":["xi",27],"trw":["ix",27],"lp":["xi","aei","eia","xii","xiii"],"rp":["iae","ix"]},"38":{"input":[2,3,6],"tlp":["di",22778],"trp":["ke",75425],"tlw":["dei",9926],"trw":["ikke",27380],"lp":["di","ske","dei","ek","sid","ekk","side","esk","eis","eske","dis","eid"],"rp":["ke","kke","id","ikke","ide","ids","ise","isse"]},"39":{"input":[1,2,3,6],"tlp":["akke",3114],"trp":["ida",2239],"tlw":["skade",227],"trw":["kasse",30],"lp":["akke","aek","aekk","ake","aske","sida","adi","daek","ekka","skad","adsk","akse","eska","dska"],"rp":["ida","idda","isae","kad","kade","kae"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",75549],"trp":["it",21023],"tlw":["vi",9397],"trw":["iv",58],"lp":["ti","vi","tv","vit","vt","tti","tvi","viv","tviv","vii","tiv","vitt","tit"],"rp":["it","iv","itt","iti","ivi","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",86367],"trp":["if",2566],"tlw":["av",10474],"lp":["va","av","fi","vaa","ava","avt","avi","fti","tia","atti","aav","vat","ati","vita","aavi"],"rp":["if","ift","ita","iva","iaf"]},"42":{"input":[2,4,6],"tlp":["vis",9768],"trp":["kt",8569],"tlw":["sit",3082],"trw":["kvit",106],"lp":["vis","sv","sti","sit","viss","vist","sitt","vs","ci","ck","vst"],"rp":["kt","ist","kv","kvi","isst","ic","ikt","isti","kst"]},"43":{"input":[1,2,4,6],"tlp":["sva",5726],"trp":["kva",3206],"tlw":["fik",2530],"trw":["kva",1095],"lp":["sva","tak","fik","takk","akt","vak","stak","stia","fis","fisk","taka","vakk","fikk"],"rp":["kva","kast","kaf","ica","kaff","ista","kat"]},"44":{"input":[3,4,6],"tlp":["ve",84601],"trp":["ir",9659],"tlw":["eit",2100],"lp":["ve","ri","ver","ev","eve","vet","rei","eit","vei","rti","rv","rev","eri","eir","eier"],"rp":["ir","ive","ier","ite","iver"]},"45":{"input":[1,3,4,6],"tlp":["var",53426],"trp":["ifte",820],"tlw":["var",42028],"lp":["var","vae","vaer","ave","vart","vera","vare","fri","eva","aev","vara","arv","ari","rav","aeve","arve","fie","evae","fir"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13498],"trp":["kr",10422],"tlw":["ved",10508],"trw":["idet",890],"lp":["ved","vd","rk","vde","tid","rke","dri","vid","erk","skr","rdi"],"rp":["kr","ker","ket","idt","kri","kte","kker","iste","idst"]},"47":{"input":[1,2,3,4,6],"tlw":["fekk",1380],"trw":["kvar",593],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",88711],"trw":["inn",1636],"lp":[],"rp":["in","ni","hi","nin","inn","nh","hin","nhi","ih","nni","iin","nnin","hn","inni","ini","inin","nnh","hii","hiin","nnhi"]},"49":{"input":[1,5,6],"tlp":["ani",619],"trp":["ha",134263],"tlw":["ah",106],"trw":["han",52972],"lp":["ani","ania","ah","ain","anni"],"rp":["ha","han","haa","haan","ina","ian","inan","hina","nia","hann","iani","inna","nha","iana","nz"]},"50":{"input":[2,5,6],"tlp":["sin",12978],"trp":["kj",25013],"tlw":["sin",8225],"trw":["nik",27],"lp":["sin","skj","skin","sni","sh"],"rp":["kj","nk","kkj","ikkj","hj","nsk","kn","nsi","kin","ink","ins","his","nkj","kni","inkj"]},"51":{"input":[1,2,5,6],"tlp":["ansk",3797],"trp":["kan",11435],"tlw":["sank",208],"trw":["hans",8898],"lp":["ansk","ank","ansi","snak","skja","sank","ash","akn"],"rp":["kan","hans","kja","nak","nakk","hja","kans","hak","kann","kna","nska","has"]},"52":{"input":[3,5,6],"tlp":["ein",9181],"trp":["he",52514],"tlw":["ein",5538],"trw":["henne",2515],"lp":["ein","eh","enh","eni","eine","eien","enin","enhe"],"rp":["he","hen","ine","henn","hei","nei","ien","inne","hy","inen","nhe","ihe"]},"53":{"input":[1,3,5,6],"tlp":["eha",758],"trp":["hae",2400],"tlw":["einannan",141],"trw":["hena",63],"lp":["eha","enha","eina","ehan","anie","enia","enz","aine","anei","ahy","ehaa","aein","einz"],"rp":["hae","haen","iane","nhae","hena","hea","hax"]},"54":{"input":[2,3,5,6],"tlp":["enk",5100],"trp":["ind",19969],"tlw":["sine",3555],"trw":["ikkje",7483],"lp":["enk","sine","din"],"rp":["ind","kje","hend","inde","kkje","yk","ken","hed","nke","iden","ykk","hje","nske","ykke","ky","kjen","nesk"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",654],"trw":["hadde",11705],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",4628],"trp":["hv",25602],"tlw":["thi",1736],"trw":["hit",287],"lp":["vin","th","bi","tin","vn","thi","tni","tnin","vint","bin","vinn"],"rp":["hv","hvi","int","ib","nti","nhv","nv","ntin","hvit"]},"57":{"input":[1,4,5,6],"tlp":["van",4044],"trp":["hav",15474],"tlw":["fin",261],"trw":["navn",696],"lp":["van","fin","avn","finn","tian","vant","anv","fint","vann"],"rp":["hav","hva","nav","navn","hava","hat","havt","haab","hatt","havn","nhav"]},"58":{"input":[2,4,5,6],"tlp":["ch",2454],"trp":["nkt",2442],"tlw":["sint",142],"trw":["hvis",1991],"lp":["ch","stin","sch","svin","skib","bis","tkj","stni"],"rp":["nkt","hvis","kvin","nic","hist","istn","ich","kib","isb","isbn","kniv","inst"]},"59":{"input":[1,2,4,5,6],"tlw":["bak",310],"trw":["kant",169],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",10891],"trp":["her",10731],"tlw":["ven",661],"trw":["her",6657],"lp":["ven","rin","rh","vent","even","vne","beh","bei","bev","evn","erh","the"],"rp":["her","hve","hver","inte","hev","herr","hr","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",333],"trw":["har",14412],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["verden",958],"trw":["kjendte",636],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["vand",853],"trw":["havde",9987],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",42],"trw":["o",923],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",34],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",62776],"trp":["os",14215],"tlw":["so",6443],"trw":["os",3796],"lp":["so","sos","sso","soso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",147],"trp":["ow",102],"trw":["ossaa",45],"lp":["wo","aso","aaso","asso"],"rp":["ow","ossa","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",687],"trp":["oe",3728],"trw":["-",3322],"lp":["eo","e-"],"rp":["oe","-o","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",49],"trp":["ox",122],"lp":["a-","e-a","e-aa"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",13375],"trp":["od",32172],"tlw":["dod",621],"trw":["odd",219],"lp":["do","dod","eso","dode","edo","sod","dso","esso","doe"],"rp":["od","ode","odd","ose","ods","odde","oed","oede","osse","odse","odes"]},"71":{"input":[1,2,3,7],"tlp":["adso",64],"trp":["odsa",186],"lp":["adso","de-a"],"rp":["odsa","oda","odda","-aas"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",34309],"trp":["og",149705],"tlw":["to",2884],"trw":["og",122759],"lp":["to","gt","go","gg","tog","tg","tot","tott","gto","tto","gtt","got","gtto","ttog"],"rp":["og","ot","ott","ogt","ogg","otto"]},"73":{"input":[1,4,7],"tlp":["fo",74135],"trp":["of",3896],"tlw":["gaa",1786],"lp":["fo","ag","ga","agt","gaa","tag","aag","gat","aga","tfo","tga","fot","gf","fag","gaat"],"rp":["of","oft","ofa","off","otta"]},"74":{"input":[2,4,7],"tlp":["sto",16012],"trp":["ogs",5245],"tlw":["stott",99],"trw":["oc",346],"lp":["sto","gs","sog","gst","sg","gso","sost","co","sogt","stot","toc","stoc","tso","sot"],"rp":["ogs","ost","oc","ogso","osto","oct"]},"75":{"input":[1,2,4,7],"tlp":["sag",7523],"trp":["ogsa",5006],"tlw":["sagt",1463],"trw":["ogsaa",3774],"lp":["sag","gsa","gsaa","sagt","ags","sof","saag","sga","asg","asto","sofa","sgaa","aco","fos","sfo","stof","soga","gsta"],"rp":["ogsa","ofas"]},"76":{"input":[3,4,7],"tlp":["ge",87205],"trp":["or",142919],"tlw":["eg",8868],"trw":["or",301],"lp":["ge","eg","ro","tor","get","ger","gr","ege","rg","gte","gge","tro","eget"],"rp":["or","ort","ore","oge","orte","org","oget"]},"77":{"input":[1,3,4,7],"tlp":["for",64883],"trp":["ora",3045],"tlw":["for",32016],"trw":["ofte",1064],"lp":["for","age","fort","aeg","tage","rag","gar","rfo","rfor","gra","fore","gaar","fora","agte","erfo","aegg"],"rp":["ora","ofte","orta","orf"]},"78":{"input":[2,3,4,7],"tlp":["stor",7850],"trp":["ord",13774],"tlw":["seg",6090],"trw":["ord",1982],"lp":["stor","god","seg","gd","tod","stod","gde","ges","dog","godt","rod","deg","dor","rso","sor"],"rp":["ord","ors","orst","orde","odt"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",3425],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",57145],"trw":["nu",8186],"lp":[],"rp":["un","no","on","nu","unn","ono","onn","nno","ou","uu","nun","uun","onno","non","nnu","uo","uno","oun"]},"81":{"input":[1,5,7],"tlp":["au",4958],"trp":["unna",1842],"tlw":["au",141],"trw":["unna",94],"lp":["au","ano","anu","anua","anno"],"rp":["unna","ona","ua","onna","nau","nua","una"]},"82":{"input":[2,5,7],"tlp":["su",3824],"trp":["jo",23891],"tlw":["son",930],"trw":["jo",3859],"lp":["su","son","sjo","snu","sun","sno","sson","sonn"],"rp":["jo","us","ju","jon","oj","ons","jonn","jus","ojn","uss","jos","uns"]},"83":{"input":[1,2,5,7],"tlp":["aus",1274],"trp":["jona",341],"tlw":["sau",28],"trw":["jau",154],"lp":["aus","ajo","asjo","sau","anus","wu","snau","sua"],"rp":["jona","jau","ussa","onas","janu","usa","onsa"]},"84":{"input":[3,5,7],"tlp":["eno",822],"trp":["ue",3657],"tlw":["enno",276],"trw":["noe",486],"lp":["eno","eu","enno","eon","eun","enu"],"rp":["ue","one","uen","unne","oy","onne","oen","noe","onen","une","noen","yo","oyo","oye"]},"85":{"input":[1,3,5,7],"tlp":["eona",156],"trp":["oxn",30],"lp":["eona","anoe","aue","auen"],"rp":["oxn","oxne","ux","oux","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",19662],"trp":["und",23222],"tlw":["du",17772],"trw":["ud",4343],"lp":["du","dnu"],"rp":["und","ud","unde","ude","uden","ndnu","use","ond","uds","ndo","udd","udse","udde","oje","nod","ndu","onde","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["daud",104],"trw":["unda",243],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",11738],"trp":["ng",56304],"tlw":["gong",545],"trw":["ut",3855],"lp":["bo","gu","tu","gn","bu","tun","gun","gunn","gut","gon"],"rp":["ng","ut","nog","ug","ung","ngt","ong","ob","utt","ont"]},"89":{"input":[1,4,5,7],"tlp":["ang",17346],"trp":["nga",2499],"tlw":["gang",1862],"trw":["utan",212],"lp":["ang","gan","gang","fu","bag","angt","atu","aug","agn","fun","aut","fang"],"rp":["nga","natu","ngan","uf","nfo","uft","uta","utga"]},"90":{"input":[2,4,5,7],"tlp":["gj",23821],"trp":["ngs",2173],"tlw":["song",96],"trw":["just",538],"lp":["gj","gjo","stu","bjo","stun","tus","ggj","gus","stno"],"rp":["ngs","ust","ngst","jont","just","uc","ngso","job","jot","unst","ugus"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",405],"trw":["jacob",143],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",22078],"trp":["nge",25467],"tlw":["bort",1232],"trw":["noget",4415],"lp":["gen","ru","eng","bor","enge","beg","run","tur","egen","gy"],"rp":["nge","ur","ngen","noge","yg","nger","oren","orn","ogen","nor"]},"93":{"input":[1,3,4,5,7],"tlw":["gunnar",1603],"trw":["naturen",307],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",2339],"trw":["jeg",29616],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",1077],"trw":["udenfor",448],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",83974],"trw":["lo",890],"lp":[],"rp":["il","li","ll","ol","lo","ill","oi","lli","oli","io","illi","lil","ili","lill","oll","llo","illo","lio","loi","iil"]},"97":{"input":[1,6,7],"tlp":["al",58249],"trp":["la",46808],"tlw":["al",993],"trw":["la",2277],"lp":["al","all","aal","ala","alli","ali","alla","aala","alo"],"rp":["la","laa","lla","ola","illa","ial","lai","olai","lia","ila","oia"]},"98":{"input":[2,6,7],"tlp":["sl",12627],"trp":["ko",30079],"tlw":["slik",1363],"trw":["los",291],"lp":["sl","sli","slik","sol","slo"],"rp":["ko","ok","ls","lik","lk","kl","olk","lsk","ils","oko","kol","oks","ilk","okk","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",8407],"trp":["kal",10316],"tlw":["skal",8110],"trw":["kalla",209],"lp":["skal","sla","saal","ako","als","sal","slaa","alsk","alk","asl"],"rp":["kal","kla","las","lska","lass","kall","lsa","lask","lak","isla"]},"100":{"input":[3,6,7],"tlp":["el",77241],"trp":["le",79550],"tlw":["elle",34],"trw":["lille",1039],"lp":["el","ell","elle","eli","ele","eil","elli","eel","eile"],"rp":["le","lle","ille","ole","oie","lei","ile","lie","iel","lel","olle"]},"101":{"input":[1,3,6,7],"tlp":["ale",7840],"trp":["lae",9587],"tlw":["alle",5666],"trw":["lea",237],"lp":["ale","alle","ael","aale","aell","ella","aele","ela","alae","alie","alei","eal","eale","aael","alex"],"rp":["lae","laae","lea","iael","lex"]},"102":{"input":[2,3,6,7],"tlp":["els",10495],"trp":["ld",45157],"tlw":["del",665],"trw":["lod",1164],"lp":["els","del","sel","eld","else","deli","elsk","dl","elde"],"rp":["ld","lde","ild","ilde","old","lse","kel","led","lid","lede","keli"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",1295],"trw":["lad",661],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",52776],"trp":["ig",98658],"tlw":["til",41443],"trw":["liv",1338],"lp":["til","vil","vo","gi","gl","tig","till","tl","gti"],"rp":["ig","lig","ov","lt","lv","igt","liv","lg","lit","ligt","lov"]},"105":{"input":[1,4,6,7],"tlp":["alt",10974],"trp":["lag",4727],"tlw":["alt",4399],"trw":["olav",641],"lp":["alt","fol","tal","fl","gav","fal","gla","alv","talt","folg","alti","flo","fla","tilf","gif"],"rp":["lag","lf","lav","lat","ilf"]},"106":{"input":[2,4,6,7],"tlp":["sig",27397],"trp":["lst",1344],"tlw":["sig",21706],"lp":["sig","gik","tok","stil","sigt","tils","vilk","stol","slig","sov","gvis","slog","gikk","stig"],"rp":["lst","lts","kog","likt","okt","kto"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",2816],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",14150],"trp":["ige",17385],"tlw":["eller",6110],"trw":["over",7437],"lp":["vor","elig","rl","vel","elv","rig","rli","rlig","elt","erl"],"rp":["ige","ove","ler","over","ller","lige","lev","lte","let","live"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1360],"trw":["laegge",464],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["vilde",7016],"trw":["lidt",2153],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",2153],"trw":["idag",668],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",30354],"trw":["hun",21044],"lp":[],"rp":["ho","hu","hun","ul","lu","hol","lin","hon","hono","nl","hoi","uli","ull","oin","nli","hil","llin","oh","oni","nhil"]},"113":{"input":[1,5,6,7],"tlp":["anl",884],"trp":["lan",10243],"tlw":["alonzo",24],"trw":["hall",138],"lp":["anl","anli","ahl"],"rp":["lan","hal","lau","hall","nla","oha","ohan","nal","onal","nnla","nlau","llan","hau","onla","ula","nlan","ulia"]},"114":{"input":[2,5,6,7],"tlp":["sku",10170],"trp":["ku",23180],"tlw":["sjol",372],"trw":["nok",3367],"lp":["sku","skul","skjo","slu"],"rp":["ku","kun","kul","nok","kon","kjo","uk","hos","hus","ukk","noko","kjon","kunn","jol","lj","jul"]},"115":{"input":[1,2,5,6,7],"trw":["hakon",849],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",965],"trp":["hel",9131],"trw":["hele",2760],"lp":["eho","elen","enl","ehol"],"rp":["hel","len","ly","yl","hele","hell","oine","lene","olen","ule","ulle","hoie","hoy","heil","uly","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",964],"trw":["nella",82],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",7929],"trw":["kunde",7993],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",299],"trw":["land",975],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",22281],"trp":["ing",20917],"tlw":["bli",1395],"trw":["hoit",425],"lp":["bl","bli","ting","gh","bliv","tilb","blo"],"rp":["ing","hvo","ning","lb","igh","ilb","hov","ling","ligh","hvil","lut","ntl","ntli"]},"121":{"input":[1,4,5,6,7],"tlw":["gunnlaug",319],"trw":["langt",1662],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",491],"trw":["och",329],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",724],"trw":["langs",495],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",6367],"trw":["hvor",4988],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1441],"trw":["laenge",1067],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["gjekk",2117],"trw":["igjen",3313],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1701],"trw":["landet",659],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",6585],"trw":["p",102],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",4962],"trp":["pa",49694],"trw":["paa",26138],"lp":["ap","app","aap","apa","appa","aapa"],"rp":["pa","paa","pap","ppa","ppaa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",8870],"trp":["ps",217],"trw":["ps",26],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",590],"trp":["pas",1229],"tlw":["saapas",42],"trw":["pas",58],"lp":["spa","saap","apas","asp"],"rp":["pas","pass","paas","psa","pspa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1790],"trp":["pe",12061],"trw":["'",36],"lp":["ep","epp","eppe","epe","e'"],"rp":["pe","ppe","pee","'e","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",605],"trp":["pae",444],"trw":["'a",44],"lp":["appe","ape","a'","epa","aape","eppa"],"rp":["pae","paee","'a","pea"]},"134":{"input":[2,3,8],"tlp":["spe",488],"trp":["pd",356],"lp":["spe","dp","esp","espe","sep","dsp","edp","s'","d'","d'e","es'","des'","ed'","dep"],"rp":["pd","ped","pede","pped","pes","ppes"]},"135":{"input":[1,2,3,8],"tlp":["spae",291],"trp":["pda",290],"tlw":["sa'",71],"trw":["passe",167],"lp":["spae","dpa","dpaa","sa'","edpa","aspe","depa"],"rp":["pda","pad","paed"]},"136":{"input":[4,8],"tlp":["tp",173],"trp":["pt",1987],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",508],"trp":["pf",337],"tlw":["tapt",32],"lp":["apt","tpa","tap","tapt","tpaa"],"rp":["pf","pta","paaf","pfa","pfat","ptat","pat","ppat","patt"]},"138":{"input":[2,4,8],"trp":["pst",23],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["cap",53],"trp":["past",196],"trw":["paastaa",25],"lp":["cap","capp"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["rp",1719],"trp":["pr",6671],"tlw":["teppet",51],"trw":["per",998],"lp":["rp","erp","rep","repe","t'","et'","ept","tep"],"rp":["pr","per","pet","pre","pte","pper","ppet","petr","pete","ptr","pere","peer"]},"141":{"input":[1,3,4,8],"tlp":["rpa",1174],"trp":["pra",2577],"tlw":["rapp",178],"trw":["par",1236],"lp":["rpa","rpaa","erpa","rap","arp","rapp","trap","apte","apet","repa","arpe","apr","rape"],"rp":["pra","par","prae","part","prat","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1897],"trp":["pres",895],"tlw":["drepe",95],"trw":["prest",134],"lp":["spr","derp","drep","set'","sept","spre","sper","resp","step","rdsp","spec","d'er","dtp","rdp"],"rp":["pres","pers","pred","pdr","pec","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",639],"trw":["passer",132],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",21715],"trw":["m",266],"lp":[],"rp":["mm","mp","mn","pn","nm","np","pm","nnp"]},"145":{"input":[1,5,8],"tlp":["am",30376],"trp":["ma",44872],"trw":["man",6961],"lp":["am","amm","ama","amp","aam","apn","aman","amn","ampa"],"rp":["ma","man","maa","mann","pan","mma","nap","nma","maan","npa","mpa"]},"146":{"input":[2,5,8],"tlp":["sm",7709],"trp":["ms",1313],"lp":["sm","spj"],"rp":["ms","nsm","mj","pj","nsp","mps","mss","msp"]},"147":{"input":[1,2,5,8],"tlp":["sam",7924],"trp":["maj",624],"tlw":["smaa",580],"trw":["jaampa",181],"lp":["sam","samm","sma","smaa","sman","asm","aasm","sama","saam","ams"],"rp":["maj","maas","mas","jam","jaam","nsma","mja","mass","jamn","jamm"]},"148":{"input":[3,5,8],"tlp":["em",29102],"trp":["me",119265],"trw":["men",24935],"lp":["em","emm","emme","emn","eme"],"rp":["me","men","mme","mmen","menn","nem","pen","nnem","my","mpe","mene","ppen","mee","nep","'n"]},"149":{"input":[1,3,5,8],"tlp":["amme",6974],"trp":["mae",3374],"tlw":["apne",60],"trw":["mannen",490],"lp":["amme","ame","amen","ema","ampe","aem","apne","enpa","aame","emae","aemp","apen","emna","xem"],"rp":["mae","maen","maae","paen","mane","pmae"]},"150":{"input":[2,3,5,8],"tlp":["dem",8585],"trp":["med",39755],"tlw":["dem",8538],"trw":["med",36341],"lp":["dem","sme","dm","esm","sem","emnd","emd","emde"],"rp":["med","jem","mes","mede","mens","jemm","mmed","mend","mmes","md","mde","mnd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",2157],"trw":["mand",2119],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",528],"trp":["mt",5699],"lp":["tm","bm","ttm"],"rp":["mt","mb","mtm","mnt"]},"153":{"input":[1,4,5,8],"tlp":["amt",1276],"trp":["maat",2873],"tlw":["amt",30],"trw":["mat",345],"lp":["amt","amf","amta","fam","tma","tman","amtm","tam","tamm","amb"],"rp":["maat","mat","matt","mf","mta","mtma","napt","mant","manf","mata"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",72],"trp":["mst",812],"lp":["stm"],"rp":["mst"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",265],"trw":["jamt",42],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",7650],"trp":["mer",11185],"trw":["mere",2630],"lp":["rm","rme","rem","tem","erm","emt","erme","temm","rmen","remm","emte","temt","rmer"],"rp":["mer","mmer","mere","met","mte","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",2232],"trw":["maatte",2413],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["dermed",460],"trw":["mest",1195],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",427],"trw":["praesten",521],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3962],"lp":[],"rp":["pi","ip","ipp","ppi","pip","pii","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",565],"trp":["papi",297],"trw":["pipa",30],"lp":["api","apii","aapi"],"rp":["papi","ipa","pia","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",1562],"trp":["pis",688],"tlw":["skip",130],"lp":["spi","spis","skip"],"rp":["pis","kip","pik","isp","kipp","kp","pk","psk","pski","psi","kipi","ips","kips"]},"163":{"input":[1,2,6,8],"tlp":["skap",1414],"trp":["kap",2212],"tlw":["skipa",35],"trw":["kap",53],"lp":["skap","spak"],"rp":["kap","pak","kapi","kapp","pakk","kasp","kipa","kapa"]},"164":{"input":[3,6,8],"tlp":["epi",51],"trp":["ippe",579],"lp":["epi"],"rp":["ippe","ipe","pei","i'","pipe"]},"165":{"input":[1,3,6,8],"trp":["paei",34],"lp":[],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",160],"trp":["pise",465],"tlw":["spise",213],"trw":["pike",73],"lp":["spid","spek","spei","espi","dpi","edpi"],"rp":["pise","kipe","pid","pike","pek","pids","ispe","'k","peis","idsp"]},"167":{"input":[1,2,3,6,8],"tlw":["skape",20],"trw":["pakke",59],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vp",22],"trp":["pit",244],"lp":["vp"],"rp":["pit","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",244],"trp":["pita",83],"lp":["apit","vap","vaap","vpa"],"rp":["pita","pav","paav"]},"170":{"input":[2,4,6,8],"tlp":["cip",35],"trp":["pist",223],"tlw":["spist",76],"lp":["cip"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"tlw":["skapt",72],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",118],"trp":["pri",1351],"lp":["rip","ript","ripe","tepi"],"rp":["pri","pir","pire","ipet","peri","ptei","pite","ptri","priv","piir","ipte","peti","prii","prei"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",31],"trw":["parti",114],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skipet",189],"trw":["pris",147],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpe",106],"trw":["paris",116],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",30489],"trw":["min",5651],"lp":[],"rp":["mi","min","im","imi","ph","him","imm","mh","himm","imp","hm","minn","pin","mni","mnin","inm","phi","phin","nim","pni"]},"177":{"input":[1,5,6,8],"tlp":["ami",591],"trp":["ham",10774],"trw":["ham",10248],"lp":["ami","aim","aima","apni","amin","aham"],"rp":["ham","hamm","mai","ima","iman","inma","hama","maim","hamp","hma","hman","mina","hap","pian"]},"178":{"input":[2,5,6,8],"tlp":["smi",1350],"trp":["mk",1125],"trw":["km",55],"lp":["smi","sim","simp","skim","simi"],"rp":["mk","mis","km","msi","kim","ism","mins","mkj","misk","mik","ksim","insp","mpsk","ims","imss"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",220],"trw":["kamp",171],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["eim",1710],"trp":["ime",2104],"trw":["mine",1626],"lp":["eim","eime","emni","enim"],"rp":["ime","mine","mei","heim","imme","meni","mein","hem","mhe","phe","hemm","impe","menh","imen","pine","hemn"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",122],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["deim",320],"trw":["hjem",1228],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["aminda",55],"trw":["maaske",483],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1156],"trp":["mit",1962],"trw":["mit",1634],"lp":["tim","timm","tmi","tmin","vm","vim"],"rp":["mit","mti","mv","ntim","mitt","imt","pib","mvi","mvit","mith","mint","pint","imit"]},"185":{"input":[1,4,5,6,8],"tlw":["vapni",74],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["bisp",71],"trw":["minst",66],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["knapt",173],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",369],"trw":["meir",910],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",418],"trw":["marthe",201],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"trw":["mindre",926],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["skarphedin",261],"trw":["maerke",210],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",14625],"trw":["op",5953],"lp":[],"rp":["op","po","opp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",23],"trp":["opa",359],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1607],"trp":["pos",227],"lp":["spo"],"rp":["pos","ops","osp","poss","pso","opso","opsp"]},"195":{"input":[1,2,7,8],"trp":["ospa",68],"lp":[],"rp":["ospa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1803],"trw":["oppe",861],"lp":[],"rp":["oppe","ope","-p","-pe","poe","o'","'o"]},"197":{"input":[1,3,7,8],"trp":["opae",89],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dop",25],"trp":["opd",356],"trw":["posse",49],"lp":["dop","dope"],"rp":["opd","poes","pose"]},"199":{"input":[1,2,3,7,8],"trw":["opad",95],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1476],"trp":["opt",955],"tlw":["top",86],"trw":["pot",131],"lp":["top","topp","ttop"],"rp":["opt","pot","pg","opg","pog","pott","pto","opto","ptog"]},"201":{"input":[1,4,7,8],"trp":["opf",337],"trw":["optat",55],"lp":[],"rp":["opf","opta","pfo","opfo","ptag","pga","opga","opfa","pag","pagt"]},"202":{"input":[2,4,7,8],"tlp":["stop",159],"trp":["post",133],"tlw":["spog",66],"trw":["post",83],"lp":["stop","spog","spot"],"rp":["post","psog","opst","psto"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1406],"trp":["por",1635],"tlw":["ropte",390],"trw":["potter",86],"lp":["rop","etop","ropp","ropt","erop","grep","t-p","t-pe"],"rp":["por","pro","porg","opte","opr","orp","prog","port","optr","pote","opro","pror"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",47],"trw":["praeg",79],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",486],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",149],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",89943],"trw":["om",15683],"lp":[],"rp":["om","mo","omm","um","mu","pu","nom","onom","up","mun","upp","pun","mon","umm","umu","mum","omn","opm","munn","mom"]},"209":{"input":[1,5,7,8],"tlp":["amu",199],"trp":["oma",845],"trw":["opnaa",33],"lp":["amu","amun","amum","aum","anmo","aup"],"rp":["oma","uma","omma","pau","opma","oman","opna","uppa","manu","umaa","mau","upa","napo"]},"210":{"input":[2,5,7,8],"tlp":["som",43671],"trp":["oms",911],"tlw":["som",39317],"trw":["mons",44],"lp":["som","spu","smu","somm","smo","smun","sum","sup","supp","spjo"],"rp":["oms","osm","jom","mus","jop","nsom","pus","mons","mos","pjo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",54],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",392],"trp":["omme",9224],"trw":["munnen",129],"lp":["enom","emo","epu"],"rp":["omme","umme","uppe","ome","omne","omen","ume","moe","mue","opme","upe","ompe","mome","umen","muen","moen","omy"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",370],"trw":["mod",2528],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["aasmund",396],"trw":["pause",88],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",707],"trp":["mot",4043],"tlw":["tom",164],"trw":["mot",2107],"lp":["tom","tum","tomm","gm","gom","tomt","gmu","gmun","tup"],"rp":["mot","omt","mott","munt","mg","pub","omb","mbo","ombo","mob","omg"]},"217":{"input":[1,4,5,7,8],"tlw":["bagom",48],"trw":["magt",486],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["spjot",59],"trw":["pust",52],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",190],"trw":["magnus",34],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"trw":["meget",2988],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",273],"trw":["mange",2669],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gjennem",1415],"trw":["moder",464],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",713],"trw":["majoren",426],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3409],"trw":["lop",55],"lp":[],"rp":["pl","lp","pil","pill","lip","lipp","opl","pol","poli","pli","plo","opi","lop","oppi","polo","lpi","oplo"]},"225":{"input":[1,6,7,8],"tlp":["alp",182],"trp":["pla",1343],"trw":["paal",37],"lp":["alp","apol"],"rp":["pla","lap","lapp","lpa","paal","pal","opla","pall"]},"226":{"input":[2,6,7,8],"tlp":["spil",667],"trp":["kop",224],"tlw":["spil",91],"trw":["kop",63],"lp":["spil","slip","skop","spl","spok"],"rp":["kop","klip","pok","pokk","okp","kopp","opk","pko","opko","opsi","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",263],"trw":["plass",85],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1444],"trp":["pel",799],"trw":["pleie",43],"lp":["elp","elpe","elpi"],"rp":["pel","ple","lpe","plei","pell","lep","ople","lepp","peil","li'","ielp","ppel","pele","le'","peli","pile"]},"229":{"input":[1,3,6,7,8],"trw":["la'",34],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["slippe",195],"trw":["pleiede",91],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["selskap",63],"trw":["plads",500],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"trp":["pig",957],"trw":["pligt",151],"lp":[],"rp":["pig","pov","opov","plig","pilt","lpt","pgi","opgi","pgiv","pitl","opig","ppig","lvp","plog"]},"233":{"input":[1,4,6,7,8],"trw":["opgav",46],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["spilt",21],"trw":["opkog",50],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slapt",29],"trw":["kapital",22],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",436],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",106],"trw":["opgave",88],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",93],"trw":["krop",146],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["sprak-",207],"trw":["kapitel",109],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",5031],"trw":["honom",2975],"lp":[],"rp":["ml","imo","mil","lm","mul","lom","muli","plu","mli","mill","llom","lmi","lmin","hop","omh","umul","mili","uml","iml","oph"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alm",22],"trw":["maal",213],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",397],"trw":["kom",8732],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smal",74],"trw":["koma",530],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["emil",46],"trw":["mellem",1590],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amalie",193],"trw":["lampen",95],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smukke",238],"trw":["komme",2169],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["allesammen",166],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glum",116],"trw":["mig",10638],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamal",73],"trw":["opfatning",67],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",152],"trw":["punkt",134],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["stockmann",328],"trw":["langsomt",378],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["temmelig",368],"trw":["nemlig",491],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",2534],"trw":["maelte",821],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["smilte",389],"trw":["kommer",2127],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bokselskap",856],"trw":["litteraturselskap",207],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json index 63735a422d..b5c56571c0 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",468],"tlw":["a",8903],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",175],"tlw":["s",502],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",42610],"tlw":["w",22418],"lp":["as","wa","aw","ws","sw","sa","awa","aws","was","asa","wsw","swa","asw","waw","ww","sas","wsa","wawa","wwa","awas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",518],"tlw":["e",106],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ax",1780],"tlw":["x",92],"lp":["ax","ea","xa","axa","ex"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",52602],"tlw":["d",228],"lp":["es","ed","de","se","ede","dd","ds","des","sed","dde","eds","ese","ess","see","sede","eed","dese","ded","dede","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",35569],"tlw":["dwa",1359],"lp":["ad","da","we","ew","dw","ada","wd","awe","daw","awd","ewa","swe","dwa","dawa","ase","ade","eda","sad","ews","wes"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",560],"tlw":["t",88],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",68848],"tlw":["ta",2431],"lp":["ta","at","ata","tat","fa","af","ft","aft","ff","tta","att","fat","tata","atta","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",75161],"tlw":["c",338],"lp":["st","sc","tc","ts","stc","ct","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",50494],"tlw":["stas",540],"lp":["ac","sta","ca","tw","wc","wt","ast","twa","tac","stw","wac","stac","stat","aca","wst","tas","taw","staw","asta","asc"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["te",45936],"tlw":["te",3281],"lp":["te","er","tr","re","et","ter","etr","ret","rt","ere","ete","tre","rte","tere","tet","ert","ett","rete","rr","erte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",55331],"tlw":["ar",328],"lp":["ra","ar","era","tar","atr","ara","tra","ate","tera","are","eta","art","rat","fe","tare","raf","tara","traf","fr","ef"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ec",48514],"tlw":["rece",1133],"lp":["ec","ce","est","dr","str","esc","rs","ste","rd","rc","erc","ece","res","este","sr","ser","rec","serc","dc","rce"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["raw",8030],"tlw":["serca",563],"lp":["raw","wr","rac","rw","war","ard","star","erw","wet","awet","dac","rawd","twar","wte","rad","stra","rws","erws","rwa","wra"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",7406],"trw":["n",208],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",48964],"trp":["na",112653],"tlw":["anna",723],"trw":["na",21439],"lp":["an","ana","ann","anna"],"rp":["na","nan","nna","nana","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",7535],"trp":["js",5713],"trw":["j",184],"lp":["sn","sj"],"rp":["js","ns","jn","jj"]},"19":{"input":[1,2,5],"tlp":["aj",20342],"trp":["ja",55861],"tlw":["aja",432],"trw":["ja",8216],"lp":["aj","wn","aja","asn","wan","awn","wna","wj","sna","ans","ajw"],"rp":["ja","nas","naj","naw","jan","jas","jw","jasn","najw"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",30498],"trp":["ne",25369],"trw":["ne",747],"lp":["en","enn","ey","ene","enny","eye","enne","een","eny"],"rp":["ne","ny","yn","nny","nne","yny","ye","yne","ynn","yy","nee"]},"21":{"input":[1,3,5],"tlp":["any",2470],"trp":["yna",3436],"tlw":["aye",124],"lp":["any","ane","ena","ay","anny","aye","ean","anne","enna"],"rp":["yna","nany","nane","ynan","yea","nex","ya","yya"]},"22":{"input":[2,3,5],"tlp":["ej",45590],"trp":["je",68792],"tlw":["syn",389],"trw":["jej",5718],"lp":["ej","dy","dn","edn","edy","sy","ejs","dne","den"],"rp":["je","ys","jes","jed","jedn","jej","nd","yj","yd","jd","nej"]},"23":{"input":[1,2,3,5],"tlp":["wy",23292],"trp":["nad",7353],"tlw":["and",2280],"trw":["nad",3785],"lp":["wy","dna","edna","aje","and","ewn","wys","wne","daj","adn","dan","wyd","wej","wyda"],"rp":["nad","yw","nawe","ywa","yja","yda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",4086],"trp":["nt",3555],"tlw":["b",226],"lp":["tn","bn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",16398],"trp":["nat",3728],"tlw":["ant",708],"lp":["ba","ab","tan","atn","tatn","ant","tana","aba","bab","tna","bna","ban","fn","baba","fab","bat"],"rp":["nat","nta","nf","nab"]},"26":{"input":[2,4,5],"tlp":["cj",4424],"trp":["nc",4520],"tlw":["tj",127],"lp":["cj","cn","bc","bs","stn","cb","bj","sb","tj"],"rp":["nc","jsc","jc","nst","jst","jb","jt","ncj","nts"]},"27":{"input":[1,2,4,5],"tlp":["stan",3867],"trp":["jac",5445],"tlw":["stan",180],"trw":["jac",97],"lp":["stan","ajac","taj","acj","bac","baw","anc","staj","cja","caj","wnat"],"rp":["jac","nac","nast","nca","nstw","jsca","jca","nasc","jat"]},"28":{"input":[3,4,5],"tlp":["by",46129],"trp":["yt",8428],"tlw":["ten",4023],"trw":["net",73],"lp":["by","ty","ry","be","eb","br","ten","rn","eby","ety","ent","ern","byt","tyn","ber"],"rp":["yt","yb","yby","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bra",4962],"trp":["yta",3398],"tlw":["aby",2523],"trw":["nate",242],"lp":["bra","bar","ary","aby","aty","eba","ran","arn","tary","rna","abr","aryn","ryna","brat"],"rp":["yta","nar","naty","yra","yba","ynar"]},"30":{"input":[2,3,4,5],"tlp":["cy",8269],"trp":["yc",28802],"tlw":["byc",2943],"trw":["jest",9582],"lp":["cy","bed","tyc","tej","ryc","byc","ejsc","dyt","edyt","dyb","dyby","rej","cej","ecej","sty"],"rp":["yc","jest","yst","nyc","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["stary",943],"trw":["nawet",3158],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2169],"trw":["i",28082],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",76007],"trp":["ia",68340],"tlw":["z",15934],"trw":["iz",305],"lp":["za","zi","az","zia","ai","aza","azi","zz","zaz","zza","zzi","zaza","zai"],"rp":["ia","iz","iaz","iza","iaza","izz","iazi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",90184],"trp":["ki",45823],"tlw":["si",39],"trw":["is",1279],"lp":["si","sk","ski","sis","sks"],"rp":["ki","is","ik","ks","isk","ksi","kis","iki","isi","kk","iski","kki","kik","iss"]},"35":{"input":[1,2,6],"tlp":["wi",87989],"trp":["ka",38575],"tlw":["zas",2170],"trw":["ka",698],"lp":["wi","sz","ak","wsz","zas","wia","aki","zw","sza","asz","zk","swi","sia","awi","wz","ska","zis"],"rp":["ka","iw","kaz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1323],"trp":["ie",368657],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",125561],"trp":["iez",5190],"tlw":["ze",12240],"trw":["ize",38],"lp":["ze","zie","ez","zez","aze","eza","eze","azie","ezi","ziez","ezie","ziei","xi","zeze"],"rp":["iez","iaze","ize","ieza","iezi","ieze"]},"38":{"input":[2,3,6],"tlp":["sie",75832],"trp":["kie",18740],"tlw":["sie",65236],"trw":["ide",164],"lp":["sie","ek","dk","eki","esi","sied","eks","skie","esie","eke"],"rp":["kie","ied","ies","iek","id","kied","ke","iesi","ieks","ieki"]},"39":{"input":[1,2,3,6],"tlp":["dz",71993],"trp":["iedz",11935],"tlw":["dzis",2729],"trw":["kad",1125],"lp":["dz","dzi","wie","dzie","edz","sze","esz","edzi","zes","zd","dzia","zed","wied","zek","wid","wiek","adz","eka"],"rp":["iedz","iew"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",1632],"trp":["it",10113],"tlw":["v",123],"trw":["it",677],"lp":["ti","vi","vii","tv","tvi","tti","tiv","viii"],"rp":["it","iv","iti","itt","itiv"]},"41":{"input":[1,4,6],"tlp":["zt",5011],"trp":["iat",4655],"tlw":["tai",754],"trw":["if",169],"lp":["zt","fi","zat","zta","tai","av","fia","afi","va","tav","vaa","vaaa","tia","azat","ait","fit"],"rp":["iat","ita","iata","if"]},"42":{"input":[2,4,6],"tlp":["ci",62579],"trp":["ic",34576],"tlw":["ci",3112],"trw":["isc",445],"lp":["ci","sci","tk","stk","tki","stki","cic","ck","tkic","cis","vis","scic"],"rp":["ic","kt","kic","ist","isc","ikt","isci","ici"]},"43":{"input":[1,2,4,6],"tlp":["cz",84284],"trp":["iast",2879],"tlw":["tak",10183],"trw":["itak",560],"lp":["cz","tak","cza","zc","cia","szc","zcz","szcz","acz","zac","czas","wiat","taki","aci","wcz","scia","zacz","wic"],"rp":["iast","iac"]},"44":{"input":[3,4,6],"tlp":["ri",3494],"trp":["ier",13295],"tlw":["tie",65],"trw":["ir",2637],"lp":["ri","ve","rie","ev","vie","ver","rii","eve","ever","eri","tri","eir","rei"],"rp":["ier","iet","ir","ite","ietr","iete","iter"]},"45":{"input":[1,3,4,6],"tlp":["rz",90643],"trp":["ierz",2732],"tlw":["teraz",3005],"trw":["iteraz",110],"lp":["rz","rze","raz","trz","rzez","rza","arz","trze","zar","zr","eraz","erz","atrz","tez","zer","raze","trza","zara","zet"],"rp":["ierz"]},"46":{"input":[2,3,4,6],"tlp":["cie",23265],"trp":["iec",26434],"tlw":["cie",2111],"trw":["itd",184],"lp":["cie","eci","esci","scie","rek","ecie","rsk","rski","tkie","siec","rk"],"rp":["iec","kr","ieci","kre","iesc","kret","iece","ice","ierc"]},"47":{"input":[1,2,3,4,6],"tlw":["wiec",3828],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["ni",174405],"trw":["in",1322],"lp":[],"rp":["ni","in","inn","ini","hi","hn","nni","hin","inni","hni","nii","nin","iin","iinn","inii","nh"]},"49":{"input":[1,5,6],"tlp":["zn",27628],"trp":["nia",13186],"tlw":["ani",2778],"trw":["niz",2084],"lp":["zn","ani","zna","zni","ania","zan","zin","azn","zani","azni","znan"],"rp":["nia","ha","ina","niz","ian","naz","nani","han","hna"]},"50":{"input":[2,5,6],"tlp":["sni",3453],"trp":["nik",4194],"tlw":["sni",32],"trw":["his",454],"lp":["sni","sh"],"rp":["nik","kn","nk","ij","ji","nis","his","kni","jni","jsk","nisk","nsk","nki","nski","kin","ins","jis","isn"]},"51":{"input":[1,2,5,6],"tlp":["wni",5839],"trp":["jak",28350],"tlw":["wina",268],"trw":["jak",14792],"lp":["wni","win","zaj","wini","znaj","asni","szn","zj","wnia"],"rp":["jak","nak","jaki","hw","hwi","nasz","ija","kna","kan","jaka","iwn"]},"52":{"input":[3,5,6],"tlp":["eni",11343],"trp":["nie",115708],"trw":["nie",47473],"lp":["eni","enie"],"rp":["nie","he","ien","ieni","yni","inie","hy","inny","nien","inne","ynie","ine","iny","hen","nnie","hey","ienn","hnie"]},"53":{"input":[1,3,5,6],"tlp":["zy",86799],"trp":["yz",4726],"tlw":["zenie",780],"trw":["nanie",104],"lp":["zy","anie","zen","zeni","znie","zyn","enia","zyz","azy","zien","ezy","zne","zny","zyni","zyna","zyzn","ezn"],"rp":["yz","niez","yzn"]},"54":{"input":[2,3,5,6],"tlp":["dni",6393],"trp":["iej",15859],"tlw":["she",1219],"trw":["kiedy",2587],"lp":["dni","snie","dnie","she","esni","ekn"],"rp":["iej","niej","yk","iedy","iejs","kiej","nies","ysi","ieje","iekn","niek","nied","ije","ysie"]},"55":{"input":[1,2,3,5,6],"tlw":["dzien",1087],"trw":["jednak",3118],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",21105],"trp":["ib",902],"tlw":["bi",50],"lp":["bi","th","tni","thi","bni","thin","bit","bin","bh","tin"],"rp":["ib","ht","nib","ith","int","itn","hb","nit","niti","hit"]},"57":{"input":[1,4,5,6],"tlp":["zb",4172],"trp":["hat",1109],"tlw":["that",591],"trw":["izba",42],"lp":["zb","tani","bia","zab","atni","abi","tha","that","zabi","zbi","zba","tnia","ath","bani"],"rp":["hat","itan","izb","inf","hta","hav"]},"58":{"input":[2,4,5,6],"tlp":["ch",74579],"trp":["ich",14715],"tlw":["bci",274],"trw":["ich",4866],"lp":["ch","chc","chci","bic","cji","chn","cich","bk"],"rp":["ich","nic","hc","kich","kb","hci","nich","icj","inic","nicj","nikt","jci"]},"59":{"input":[1,2,4,5,6],"tlw":["znich",449],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",13336],"trp":["ieb",5068],"tlw":["the",3042],"trw":["her",1605],"lp":["bie","ebi","the","ebie","tnie","biet","rni","bnie"],"rp":["ieb","iebi","her","hr","nieb","nier","iety","hyb","iby","hry","iern","niby"]},"61":{"input":[1,3,4,5,6],"tlw":["bez",2806],"trw":["nieraz",449],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tych",1735],"trw":["niech",1470],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["czy",5191],"trw":["jeszcze",5354],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",763],"trw":["o",6106],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",782],"trp":["oa",209],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",12921],"trp":["os",50523],"tlw":["so",247],"lp":["so","sos","soo"],"rp":["os","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",32063],"trp":["ow",64725],"tlw":["wo",109],"trw":["ow",544],"lp":["wo","swo","awo","sow","wos","wow","aso","asow","wso","wswo","aswo","awos"],"rp":["ow","owa","owo","ows","osa","osw","osow","owos"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["-o",242],"trw":["-",43777],"lp":["eo"],"rp":["-o","oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"trp":["-a",577],"trw":["-a",43],"lp":["xo","axo","a-"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",46979],"trp":["od",49479],"tlw":["do",12671],"trw":["od",4136],"lp":["do","dos","dod","eso","dodo","doo","edo","doe","does"],"rp":["od","odo","ode","odd","ose","ods","-d","odde","odos","oes","-do"]},"71":{"input":[1,2,3,7],"tlp":["wod",4591],"trp":["owe",3290],"tlw":["woda",528],"trw":["owe",142],"lp":["wod","dow","ado","dwo","ewo","dowo","wdo","dowa","ados","woda","doda","wode","awdo","dosw"],"rp":["owe","oda","owod","odda","owad","odw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",72862],"trp":["ot",22422],"tlw":["to",23311],"trw":["oto",1109],"lp":["to","go","got","goto","tot","too","goo"],"rp":["ot","og","oto","ogo","ott","oog"]},"73":{"input":[1,4,7],"tlp":["ag",8439],"trp":["oga",3404],"tlw":["ato",208],"trw":["of",1252],"lp":["ag","ga","fo","ato","aga","ago","gat","tota","fot","tof","gf","gata"],"rp":["oga","of","ota","off","ogat","otta","ofa"]},"74":{"input":[2,4,7],"tlp":["co",15974],"trp":["oc",26832],"tlw":["co",5162],"lp":["co","sto","cos","gos","tos","cot","gosc","stos","stot","tosc","coto","toc","cott","sco"],"rp":["oc","osc","ost","osto","otc","ogos"]},"75":{"input":[1,2,4,7],"tlp":["two",4901],"trp":["osta",7294],"tlw":["gotow",216],"trw":["owoc",43],"lp":["two","tow","stwo","towa","woc","cow","wag","gw","wosc","gow","wg","wowc"],"rp":["osta","otw","owc","owac","otow","oca","owt","ogow"]},"76":{"input":[3,4,7],"tlp":["ro",57299],"trp":["or",45488],"tlw":["tego",4358],"trw":["-to",452],"lp":["ro","eg","ego","tor","tore","teg","tego","tro","gr","ge","rog","gor","gro","reg","ero","rego"],"rp":["or","ore","ote","otr"]},"77":{"input":[1,3,4,7],"tlp":["tora",3418],"trp":["ora",7565],"tlw":["for",554],"trw":["-ato",55],"lp":["tora","for","aro","rag","ateg","ega","gra","roga","gar","age","gora","arg","arto","areg","fro","taro"],"rp":["ora","otra","-ta","ogar"]},"78":{"input":[2,3,4,7],"tlp":["gd",17099],"trp":["ors",3173],"tlw":["dosc",813],"trw":["odtego",117],"lp":["gd","rod","roc","ros","dro","stro","god","tors","sro","srod","drog","rost","dot","dosc","cor","dost"],"rp":["ors","odc","odr","ostr"]},"79":{"input":[1,2,3,4,7],"tlw":["wsrod",1050],"trw":["otwarte",152],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",34225],"trw":["on",3987],"lp":[],"rp":["on","no","un","nu","ou","ono","uo","onu","nuo","nno","uno","oun","oon","onn","unu","onno","non","unon","nou"]},"81":{"input":[1,5,7],"tlp":["au",3651],"trp":["ona",5686],"tlw":["aon",234],"trw":["ona",1285],"lp":["au","ano","anu","aon","aona","anno","aun","auna","qu"],"rp":["ona","nau","una","nao","ua","onan","nano","oan","oann","nona","uau"]},"82":{"input":[2,5,7],"tlp":["su",4815],"trp":["oj",23708],"tlw":["su",735],"trw":["jo",359],"lp":["su","sno","sun","sus","snu"],"rp":["oj","us","ju","nos","uj","jo","jus","ojn","oju","osn","ojs","osu","nso","ojo","osno"]},"83":{"input":[1,2,5,7],"tlp":["woj",7645],"trp":["now",8001],"tlw":["swoja",803],"trw":["jau",356],"lp":["woj","swoj","wu","anow","wno","asu","aju","woja","wojn","won","sown"],"rp":["now","own","oja","uw","uwa","owu","nowu","uja","onow"]},"84":{"input":[3,5,7],"tlp":["eu",1045],"trp":["ony",3245],"trw":["you",832],"lp":["eu","eon","eno","eun","enu"],"rp":["ony","one","-n","yo","you","neu","yno","une","ynu","-no","ynno","uny","ynuo","-nu","-on"]},"85":{"input":[1,3,5,7],"tlp":["aux",164],"trp":["ux",164],"lp":["aux","eona","eanu","eau"],"rp":["ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7756],"trp":["ud",11878],"tlw":["synu",166],"trw":["jedno",549],"lp":["du","dno","dus","don","edno","ejo","dnos"],"rp":["ud","oje","odn","uje","ody","ojej","odu","udn","osy","ude","yso","udy","-j"]},"87":{"input":[1,2,3,5,7],"tlw":["swoje",1014],"trw":["nowe",458],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",17356],"trp":["ob",32371],"tlw":["tu",4701],"trw":["obu",290],"lp":["bo","tu","bu","gn","bog","gu","tob","tut","but","bot"],"rp":["ob","ug","ut","ub","obo","obn","nog","ugo","ogn","ng"]},"89":{"input":[1,4,5,7],"tlp":["gna",1454],"trp":["oba",4176],"tlw":["boga",442],"trw":["nato",715],"lp":["gna","agn","atu","tano","agna","boga","tuta","agu","toba","abo","gan"],"rp":["oba","nag","nato","uta","uga","noga","natu","nfo","obna"]},"90":{"input":[2,4,5,7],"tlp":["sob",8597],"trp":["uc",9675],"tlw":["boju",171],"trw":["noc",701],"lp":["sob","cu","stu","cju","cjus","boj","bos","scu","cno"],"rp":["uc","ust","nosc","onc","osob","noc","ojc","ncu","oncu","ocn","just"]},"91":{"input":[1,2,4,5,7],"tlw":["soba",912],"trw":["usta",582],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10352],"trp":["ory",10533],"tlw":["gory",402],"trw":["nero",306],"lp":["ru","tory","ron","rob","tron","bro","rug","tru","rony"],"rp":["ory","ur","obr","neg","nego","yto","oty","ytor","yg","oby","obe"]},"93":{"input":[1,3,4,5,7],"tlw":["rano",301],"trw":["natury",131],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gdy",6483],"trw":["jego",6471],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dobra",471],"trw":["justyna",463],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",50381],"trw":["li",307],"lp":[],"rp":["lo","li","il","ol","io","oi","oli","olo","ilo","ili","ll","iol","lil","llo","ill","lli","lio","ilio","oil","loo"]},"97":{"input":[1,6,7],"tlp":["al",107956],"trp":["la",64546],"tlw":["zal",356],"trw":["la",391],"lp":["al","zo","ala","zl","zal","zial","alo","zlo","ali","zil","zla","zli","azal"],"rp":["la","oz","ial","ola","iala","ila","lal"]},"98":{"input":[2,6,7],"tlp":["sl",22280],"trp":["ko",47506],"tlw":["sil",387],"trw":["okolo",573],"lp":["sl","sli","slo","sil","sko"],"rp":["ko","ok","lk","kl","lko","los","oko","kol","lki","osi","ilk","kil","oki","kilk","okol"]},"99":{"input":[1,2,6,7],"tlp":["wal",9697],"trp":["owi",22633],"tlw":["slowa",956],"trw":["kilka",1527],"lp":["wal","wil","wol","wl","ako","szl","zos","wla","sla","wlas","slow"],"rp":["owi","low","las","lowi","kla","osz","lka","lowa","kow"]},"100":{"input":[3,6,7],"tlp":["el",23557],"trp":["le",60091],"trw":["ile",574],"lp":["el","eli","ele","elo","ell","ello","elli"],"rp":["le","iel","ole","ile","ieli","iele","iell","ielo","lie","lei","olei","lle","iole"]},"101":{"input":[1,3,6,7],"tlp":["ale",25698],"trp":["oze",6806],"tlw":["ale",11823],"trw":["lezal",224],"lp":["ale","zel","ela","alez","zle","ziel","zeli","zela","zale","ezal","ezel","ezl"],"rp":["oze","lez","iale","leza","iela","lale","ozle","loze"]},"102":{"input":[2,3,6,7],"tlp":["dl",18350],"trp":["lek",3460],"tlw":["sile",224],"trw":["like",346],"lp":["dl","ekl","elk","edl","esl","esli","dok","elki","eko","dol","dlo"],"rp":["lek","ielk","lod","ld","lkie","osie","led","ido","okie"]},"103":{"input":[1,2,3,6,7],"tlw":["dla",5302],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gl",20525],"trp":["ogl",5611],"tlw":["gi",147],"trw":["ito",358],"lp":["gl","gi","glo","tol","tl","vo","gol"],"rp":["ogl","ig","ogi","lit","ito","lot","lig","igi","itol","ligi","lt","iot","oglo"]},"105":{"input":[1,4,6,7],"tlp":["tal",9006],"trp":["lat",3663],"tlw":["zato",341],"trw":["lat",1084],"lp":["tal","gla","zg","agl","tala","talo","zgo","agi","zlot","gal","atl","zgl","alt","toz"],"rp":["lat","iag","ogla","ofi","iatl","ofia"]},"106":{"input":[2,4,6,7],"tlp":["cil",3725],"trp":["kto",24526],"tlw":["glos",1013],"trw":["kto",1969],"lp":["cil","glos","tko","stko","stol"],"rp":["kto","osci","oci","lic","losc","lc","ocil","otk","oic","okt","okto","kosc","koc","isto","olic"]},"107":{"input":[1,2,4,6,7],"tlw":["glowa",1247],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["gle",3643],"trp":["ieg",7405],"tlw":["teorii",136],"trw":["ligie",262],"lp":["gle","gie","rol","rl","egl","rogi","tel","egi","role","giel"],"rp":["ieg","iego","leg","iero","lite","ori","lego","ior","ogie","legl"]},"109":{"input":[1,3,4,6,7],"tlw":["zeto",514],"trw":["oraz",543],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["drogi",663],"trw":["ktore",3303],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["gdzie",3077],"trw":["lecz",4127],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["lu",22354],"trw":["oni",779],"lp":[],"rp":["lu","ho","oni","ln","iu","lni","lon","ul","oln","niu","hl","nio","hlo","olni","hu","uni","ion","nil","lno","olu"]},"113":{"input":[1,5,6,7],"tlp":["zu",11610],"trp":["uz",13328],"tlw":["znalazl",366],"trw":["uz",245],"lp":["zu","zno","znal","zon","zul","azu","alan"],"rp":["uz","nal","ozn","ozna","lan","ozu","luz","hal","ozni","lna","nala","lani","nial"]},"114":{"input":[2,5,6,7],"tlp":["slu",3167],"trp":["ku",13470],"tlw":["skoku",179],"trw":["ku",734],"lp":["slu","slon","sku"],"rp":["ku","kon","uk","usi","koj","okoj","koni","oku","unk","nios","kun","lus","ius","nius","nku","nosi","niko"]},"115":{"input":[1,2,5,6,7],"tlw":["znowu",1380],"trw":["juz",8066],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",2354],"trp":["yl",37140],"trw":["-nie",970],"lp":["eln","elu","elni","eniu"],"rp":["yl","ly","ylo","onie","lnie","yli","yly","yle","nel","ily","-ni","-nie","lny","lne","len","ielu"]},"117":{"input":[1,3,5,6,7],"tlw":["zony",234],"trw":["lzy",407],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sily",637],"trw":["jesli",2399],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dalej",1297],"trw":["ludzi",1877],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",4510],"trp":["obi",10397],"tlw":["buvo",526],"trw":["lub",2322],"lp":["bl","gni","bli","bil","tlu","bol","tobi"],"rp":["obi","lb","ugi","lug","lub","lbo","nig","lugo","ogni","lugi","obil","obl","uv"]},"121":{"input":[1,4,5,6,7],"tlw":["albo",1927],"trw":["ognia",422],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["choc",1394],"trw":["obok",680],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["chwili",1257],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bylo",6619],"trw":["niego",1339],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["byla",3016],"trw":["nagle",1105],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["tylko",7436],"trw":["ktory",4337],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["wszystko",2576],"trw":["oczy",2137],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",172],"trw":["p",135],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9918],"trp":["pa",27218],"trw":["pa",145],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",14576],"trp":["ps",984],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wp",3537],"trp":["pas",1206],"trw":["pas",221],"lp":["wp","spa","wsp","wpa","wspa","apas","asp","aspa","wap","awp","wpas","spas"],"rp":["pas","paw","psa","pasa","pw"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",5528],"trp":["pe",8856],"trw":["pe",37],"lp":["ep","e'","epe","eep"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1033],"trp":["pea",94],"lp":["ape","epa","a'","appe"],"rp":["pea","ppea"]},"134":{"input":[2,3,8],"tlp":["dp",2912],"trp":["'s",698],"lp":["dp","eps","esp","spe","e's","sped","spee","e'd","desp","dep","sep"],"rp":["'s","ped","'d","pede"]},"135":{"input":[1,2,3,8],"tlp":["dpa",640],"trp":["pew",3258],"tlw":["wpada",59],"trw":["pada",80],"lp":["dpa","apew","wpad","aped","spad","a's","apad","wpe","wpew","epas","epew"],"rp":["pew","pad","pada","pade","pawe","pase","pwe"]},"136":{"input":[4,8],"tlp":["tp",340],"trp":["pt",863],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",450],"trp":["pat",2675],"lp":["tap","atp"],"rp":["pat","pta","pf"]},"138":{"input":[2,4,8],"tlp":["cp",40],"trp":["pc",913],"lp":["cp"],"rp":["pc","pst"]},"139":{"input":[1,2,4,8],"tlp":["stap",450],"trp":["pac",1055],"tlw":["spac",240],"trw":["pats",97],"lp":["stap","apac","watp","spac","wpat","acp","cpa","wacp","acpa"],"rp":["pac","pca","pasc","past","pats","pstw","ptac"]},"140":{"input":[3,4,8],"tlp":["tep",1202],"trp":["pr",57473],"trw":["per",245],"lp":["tep","epr","rp","erp","ept","t'","epte","re'","ere'","tepe"],"rp":["pr","pre","pet","petr","per","'t","pret","'r","'re","pte"]},"141":{"input":[1,3,4,8],"tlp":["apr",1964],"trp":["pra",9765],"tlw":["tarp",77],"trw":["pare",337],"lp":["apr","apra","epra","epta","arp","tarp","at'","apar","apre"],"rp":["pra","patr","par","pare","pfe","para","pera","part","papr"]},"142":{"input":[2,3,4,8],"tlp":["spr",2056],"trp":["pred",1040],"trw":["press",30],"lp":["spr","step","t's","epc","tepc","cep","rcep","cepc","spec","re's","epce","cept","depc"],"rp":["pred","prec","perc","pres","pce","peec","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["sprawe",290],"trw":["prawda",673],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mn",14832],"trw":["m",312],"lp":[],"rp":["mn","pn","mp","nm","np","mm"]},"145":{"input":[1,5,8],"tlp":["am",33618],"trp":["ma",28562],"tlw":["apan",98],"trw":["pan",4034],"lp":["am","ama","amn","amp","apan","anam"],"rp":["ma","pan","nam","nap","mam","mna","pana","man","pam","pann","namn","napa","pna","mama"]},"146":{"input":[2,5,8],"tlp":["sm",6824],"trp":["jm",1565],"lp":["sm"],"rp":["jm","ms","jmn","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",6796],"trp":["maj",1759],"tlw":["sam",2445],"trw":["maja",826],"lp":["sam","wam","ajm","sama","ajmn","wm","asam","sma","ajp","span","asm"],"rp":["maj","maja","mas","najm","jam","pans","maw","najp","nasm"]},"148":{"input":[3,5,8],"tlp":["em",47785],"trp":["ym",25806],"tlw":["eme",32],"trw":["my",1084],"lp":["em","emn","emy","epn","eme","emne"],"rp":["ym","my","me","yp","py","nym","nem","men","mne","mny","nnym","mym","n'","mem"]},"149":{"input":[1,3,5,8],"tlp":["amy",2050],"trp":["yma",2522],"tlw":["amy",88],"trw":["max",1479],"lp":["amy","ame","apy","ema","emna","amym","anem","epna","an'","amem"],"rp":["yma","max","ypa","mamy","nape","mane","pane","namy","maxa","na'"]},"150":{"input":[2,3,5,8],"tlp":["sem",2689],"trp":["mys",5369],"tlw":["dym",154],"trw":["jednym",518],"lp":["sem","dym","smy","dem","spy","dm","dnym","esm","edem","esmy","edm","ems"],"rp":["mys","jem","jemn","ysp","mej","ysm","ysmy","yms"]},"151":{"input":[1,2,3,5,8],"tlw":["samym",432],"trw":["pewna",264],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",173],"trp":["mt",555],"lp":["tm"],"rp":["mt","mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",5042],"trp":["mat",1787],"tlw":["tam",3597],"trw":["mat",31],"lp":["tam","amt","tamt","amta","fam","atam","bam","amf","atm","fm"],"rp":["mat","mta","mf","pant","mnat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",184],"trp":["mc",1077],"tlw":["tms",55],"lp":["cm","tms"],"rp":["mc","mst","pcj","msc"]},"155":{"input":[1,2,4,5,8],"tlw":["wacpan",40],"trw":["majac",369],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["tem",8044],"trp":["pyt",2717],"tlw":["tym",4037],"lp":["tem","tym","rym","bym","rm","rem","tepn","bem"],"rp":["pyt","mr","met","n't","mbe","mber","metr","ment","ybym","mer","ypr","mte"]},"157":{"input":[1,3,4,5,8],"tlw":["temat",228],"trw":["natym",299],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["system",322],"trw":["jestem",1324],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["wtym",987],"trw":["naprawde",460],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",22224],"trw":["pi",56],"lp":[],"rp":["pi","ip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["zap",2987],"trp":["pia",562],"lp":["zap","api","zp","aip","zapa","zpi","zpa","apia"],"rp":["pia","papi","ipa","paz","izap"]},"162":{"input":[2,6,8],"tlp":["spi",1310],"trp":["pis",4398],"tlw":["spi",122],"lp":["spi","skip"],"rp":["pis","kip","pk","isp","pki","psi"]},"163":{"input":[1,2,6,8],"tlp":["wpi",267],"trp":["kap",1184],"tlw":["zapas",72],"trw":["kaip",681],"lp":["wpi","apis","apk","zapk","szp","zkap","szpi"],"rp":["kap","kapi","kaip","psz","pisa","pak","pias","pisz","piw","kasp","pask","psza","piwa"]},"164":{"input":[3,6,8],"tlp":["epi",972],"trp":["pie",13522],"trw":["pie",48],"lp":["epi","epie"],"rp":["pie","iep","i'","ipe","iepe","pei","ppei"]},"165":{"input":[1,3,6,8],"tlp":["zep",1368],"trp":["piez",95],"tlw":["apie",272],"trw":["papieza",54],"lp":["zep","apie","ezp","zpie","ezpi","zape","zepa","zpe"],"rp":["piez"]},"166":{"input":[2,3,6,8],"tlp":["spie",1047],"trp":["pies",1441],"trw":["pies",178],"lp":["spie","epek","spek"],"rp":["pies","piek","iesp","kipe","pke","pek","kep"]},"167":{"input":[1,2,3,6,8],"tlw":["spiew",96],"trw":["pisze",141],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tpi",70],"trp":["pit",866],"trw":["itp",74],"lp":["tpi"],"rp":["pit","itp","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",763],"trp":["pita",834],"tlw":["taip",402],"trw":["pati",50],"lp":["apit","tapi","taip","zpit","atpi"],"rp":["pita","piat","pati","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",42],"trp":["pic",402],"trw":["pic",106],"lp":["cip","spit"],"rp":["pic","ipc","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["czapka",41],"trw":["ptak",106],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rpi",335],"trp":["pier",5070],"trw":["prie",378],"lp":["rpi","erpi","rpie","tpie","epti"],"rp":["pier","ierp","pri","prie","iepr","piet","ipr","it'","iper","pir"]},"173":{"input":[1,3,4,6,8],"tlw":["rzepa",61],"trw":["przez",6795],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skiper",201],"trw":["piec",482],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["wprawdzie",446],"trw":["przed",3656],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",59941],"trw":["mi",6561],"lp":[],"rp":["mi","im","mni","nim","imi","min","pni","hm","mim","nimi","hmi","imn","him","hip","mini","pin","imni","nmi","pini","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",9688],"trp":["mia",11078],"tlw":["zanim",753],"trw":["pani",1381],"lp":["ami","zm","zam","zmi","zami","anim","amia","zim","zma","znim","zmia","znam"],"rp":["mia","pani","nami","pami","hmia","mian","mina","maz"]},"178":{"input":[2,5,6,8],"tlp":["smi",4361],"trp":["kim",3177],"tlw":["spij",31],"trw":["kim",153],"lp":["smi","sim","skim"],"rp":["kim","mis","mk","jmni","ism","mkn","ims","kims","pij","kimi","mkni","jmi","jpi","misj","msk","mski","pism"]},"179":{"input":[1,2,5,6,8],"tlw":["wnim",424],"trw":["masz",794],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",3623],"trp":["mie",22534],"trw":["mnie",6049],"lp":["emi","emie","emni","epni"],"rp":["mie","iem","mnie","niem","iemi","mien","ypi","ymi","iemn","hem","pien","imie","pnie","niep","iemy","imy"]},"181":{"input":[1,3,5,6,8],"tlw":["ziemi",986],"trw":["panie",1750],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["siedem",200],"trw":["mniej",628],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["wiem",1473],"trw":["miedzy",1744],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",148],"trp":["mit",146],"trw":["mit",116],"lp":["tim","bim","tnim","vim"],"rp":["mit","imit"]},"185":{"input":[1,4,5,6,8],"trw":["itam",129],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["mscic",37],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["zamiast",457],"trw":["matka",605],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tymi",175],"trw":["itym",97],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["razem",1159],"trw":["przy",3948],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["smierc",577],"trw":["miec",761],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["tymczasem",730],"trw":["przypis",2677],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",79029],"trw":["po",5485],"lp":[],"rp":["po","op","pop","opo","opp","popp","popo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1764],"trp":["opa",1101],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8518],"trp":["pos",6704],"tlw":["spo",52],"lp":["spo","spos"],"rp":["pos","poso","osp","ospo","posp","pso"]},"195":{"input":[1,2,7,8],"tlp":["wpo",932],"trp":["pow",12141],"trw":["psow",77],"lp":["wpo","wspo","apos","wpow","apow","wpos","awpo","wpop"],"rp":["pow","powo","opow","pows","powa","posa","posw","psow","paso"]},"196":{"input":[3,7,8],"tlp":["epo",395],"trp":["-p",478],"lp":["epo","eop"],"rp":["-p","ope","oppe","poe","peo","peop","-po"]},"197":{"input":[1,3,7,8],"trp":["-pa",318],"trw":["poppea",94],"lp":[],"rp":["-pa"]},"198":{"input":[2,3,7,8],"tlp":["dpo",2241],"trp":["pod",11766],"tlw":["spod",439],"trw":["pod",4050],"lp":["dpo","dop","spod","dopo","espo","epod","dope"],"rp":["pod","odp","odpo","podo","opod","pods","pode","podd","pose","pedo","podp","odep","osep"]},"199":{"input":[1,2,3,7,8],"trw":["powod",76],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1200],"trp":["pot",6309],"trw":["pot",71],"lp":["top"],"rp":["pot","pog","pogo","opot","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",497],"trp":["poga",110],"lp":["apot","topa"],"rp":["poga","opat","pota"]},"202":{"input":[2,4,7,8],"tlp":["stop",1200],"trp":["poc",5454],"tlw":["stop",300],"lp":["stop","spot","gosp","spog","spoc","cop"],"rp":["poc","post","opc","posc","pco","opco"]},"203":{"input":[1,2,4,7,8],"tlw":["stopa",56],"trw":["postac",287],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",301],"trp":["pro",7398],"trw":["popr",1453],"lp":["rop","epro","tepo"],"rp":["pro","pote","opr","por","popr","potr","opro","prog","poro","pror","opor","-pr","oper","-pro","poet","opre","opet"]},"205":{"input":[1,3,4,7,8],"trw":["pora",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["sporo",108],"trw":["prosto",232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["wprost",448],"trw":["prawo",368],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",36877],"trw":["mu",7197],"lp":[],"rp":["mo","mu","om","um","pom","up","omu","pu","omo","omn","pon","pomo","mno","pomn","opn","pun","mom","omp","umn","opu"]},"209":{"input":[1,5,7,8],"tlp":["amo",1213],"trp":["oma",1236],"trw":["panu",545],"lp":["amo","apom","anom","apon","anum"],"rp":["oma","pano","uma","panu","upa","pona","napo","onam","mano","oman","omna","opan","namo","poma","mamo"]},"210":{"input":[2,5,7,8],"tlp":["spoj",1485],"trp":["moj",4972],"tlw":["spoj",47],"trw":["moj",1601],"lp":["spoj","smu","spom","sum"],"rp":["moj","mus","poj","pus","usm","mos","mnos","omos","opus","muj","osm","jmo","jom","jmu","jmuj","pojs"]},"211":{"input":[1,2,5,7,8],"tlw":["samo",635],"trw":["moja",1288],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emu",3362],"trp":["ome",1246],"trw":["open",44],"lp":["emu","emo","emno"],"rp":["ome","omy","upe","pomy","umy","ypo","omen","mome","ymu","ypom","upy","ume","onem","omny","omne","ypu","-m"]},"213":{"input":[1,3,5,7,8],"trw":["-pan",98],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["domu",1023],"trw":["moje",1112],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["wdomu",466],"trw":["mowy",435],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",725],"trp":["mog",6878],"tlw":["tom",165],"trw":["potu",49],"lp":["tom","topn","gm","gom","bom","gmu","gmun"],"rp":["mog","mot","mut","pob","mutn","moto","umb","mg","ptu","put","mput","motn","ogom"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",53],"trw":["moga",569],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["sposob",1064],"trw":["moc",367],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smutna",117],"trw":["mnostwo",266],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["temu",761],"trw":["potem",2023],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",589],"trw":["megan",179],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gdybym",317],"trw":["prostu",339],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["samego",331],"trw":["pewnego",233],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pol",5926],"trw":["pol",506],"lp":[],"rp":["pol","pl","opi","lop","polo","pil","plo","ipo","pio","poli","pli","lopi","lp","lopo","opl","lip","ipol","opol","pili","pilo"]},"225":{"input":[1,6,7,8],"tlp":["zpo",957],"trp":["poz",4658],"tlw":["zlapal",59],"trw":["poza",483],"lp":["zpo","zapo","apl","apla","apal","apil","alp"],"rp":["poz","pla","pal","pozo","pola","poza","ozp","pali","lopa","ozpa","pala","ozpo","pozi"]},"226":{"input":[2,6,7,8],"tlp":["spok",1225],"trp":["pok",4474],"trw":["polski",326],"lp":["spok","spol"],"rp":["pok","poko","pols","piso","poki","posi","posl","pokl","opok","ospi","klop","opis","ipos","kop","pios","ispo","polk"]},"227":{"input":[1,2,6,7,8],"tlw":["wpol",123],"trw":["powoli",384],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",290],"trp":["pel",2439],"trw":["pole",188],"lp":["epl","eplo","eple","eopl","elp"],"rp":["pel","opie","lep","lepi","pole","ple","iepl","iepo","pele","ople","'l","i'l","'ll","i'll","piel"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["dopoki",198],"trw":["polskie",78],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wpadl",182],"trw":["powiedzial",1337],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tpl",196],"trp":["piot",350],"trw":["plot",40],"lp":["tpl","tpli","topi"],"rp":["piot","pogl","plot","polg","polt","ptio","pito","ipog","pogi"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",38],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pociski",37],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spotkac",156],"trw":["poczal",800],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["piotr",231],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["przeto",243],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["dopiero",1010],"trw":["predko",303],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"trw":["prosze",860],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",4286],"trw":["mimo",629],"lp":[],"rp":["mil","umi","omi","ml","mlo","hlop","oim","pomi","omni","milo","mio","poni","moi","lum","imo","mimo","mion","iom","moim","minu"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["mial",2579],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["spokoj",193],"trw":["musi",771],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["swoim",499],"trw":["mowil",1284],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mieli",613],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["zupelnie",861],"trw":["moze",4134],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spokojnie",378],"trw":["lepiej",825],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["widzialem",345],"trw":["pozniej",689],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tlum",312],"trw":["mogl",1899],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["galima",72],"trw":["mogla",591],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chlop",216],"trw":["milosc",470],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["chlopak",251],"trw":["mowic",686],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["bylem",489],"trw":["moglem",321],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zapytal",512],"trw":["potrzeba",320],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["glosem",676],"trw":["ktorym",841],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bowiem",669],"trw":["petroniusz",731],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",468],"tlw":["a",8903],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",175],"tlw":["s",502],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",42610],"tlw":["w",22418],"lp":["as","wa","aw","ws","sw","sa","awa","aws","was","asa","wsw","swa","asw","waw","ww","sas","wsa","wawa","wwa","awas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",518],"tlw":["e",106],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ax",1780],"tlw":["x",92],"lp":["ax","ea","xa","axa","ex"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",52602],"tlw":["d",228],"lp":["es","ed","de","se","ede","dd","ds","des","sed","dde","eds","ese","ess","see","sede","eed","dese","ded","dede","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",35569],"tlw":["dwa",1359],"lp":["ad","da","we","ew","dw","ada","wd","awe","daw","awd","ewa","swe","dwa","dawa","ase","ade","eda","sad","ews","wes"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",560],"tlw":["t",88],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",68848],"tlw":["ta",2431],"lp":["ta","at","ata","tat","fa","af","ft","aft","ff","tta","att","fat","tata","atta","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",75161],"tlw":["c",338],"lp":["st","sc","tc","ts","stc","ct","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",50494],"tlw":["stas",540],"lp":["ac","sta","ca","tw","wc","wt","ast","twa","tac","stw","wac","stac","stat","aca","wst","tas","taw","staw","asta","asc"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["te",45936],"tlw":["te",3281],"lp":["te","er","tr","re","et","ter","etr","ret","rt","ere","ete","tre","rte","tere","tet","ert","ett","rete","rr","erte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",55331],"tlw":["ar",328],"lp":["ra","ar","era","tar","atr","ara","tra","ate","tera","are","eta","art","rat","fe","tare","raf","tara","traf","fr","ef"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ec",48514],"tlw":["rece",1133],"lp":["ec","ce","est","dr","str","esc","rs","ste","rd","rc","erc","ece","res","este","sr","ser","rec","serc","dc","rce"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["raw",8030],"tlw":["serca",563],"lp":["raw","wr","rac","rw","war","ard","star","erw","wet","awet","dac","rawd","twar","wte","rad","stra","rws","erws","rwa","wra"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",7406],"trw":["n",208],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",48964],"trp":["na",112653],"tlw":["anna",723],"trw":["na",21439],"lp":["an","ana","ann","anna"],"rp":["na","nan","nna","nana","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",7535],"trp":["js",5713],"trw":["j",184],"lp":["sn","sj"],"rp":["js","ns","jn","jj"]},"19":{"input":[1,2,5],"tlp":["aj",20342],"trp":["ja",55861],"tlw":["aja",432],"trw":["ja",8216],"lp":["aj","wn","aja","asn","wan","awn","wna","wj","sna","ans","ajw"],"rp":["ja","nas","naj","naw","jan","jas","jw","jasn","najw"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",30498],"trp":["ne",25369],"trw":["ne",747],"lp":["en","enn","ey","ene","enny","eye","enne","een","eny"],"rp":["ne","ny","yn","nny","nne","yny","ye","yne","ynn","yy","nee"]},"21":{"input":[1,3,5],"tlp":["any",2470],"trp":["yna",3436],"tlw":["aye",124],"lp":["any","ane","ena","ay","anny","aye","ean","anne","enna"],"rp":["yna","nany","nane","ynan","yea","nex","ya","yya"]},"22":{"input":[2,3,5],"tlp":["ej",45590],"trp":["je",68792],"tlw":["syn",389],"trw":["jej",5718],"lp":["ej","dy","dn","edn","edy","sy","ejs","dne","den"],"rp":["je","ys","jes","jed","jedn","jej","nd","yj","yd","jd","nej"]},"23":{"input":[1,2,3,5],"tlp":["wy",23292],"trp":["nad",7353],"tlw":["and",2280],"trw":["nad",3785],"lp":["wy","dna","edna","aje","and","ewn","wys","wne","daj","adn","dan","wyd","wej","wyda"],"rp":["nad","yw","nawe","ywa","yja","yda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",4086],"trp":["nt",3555],"tlw":["b",226],"lp":["tn","bn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",16398],"trp":["nat",3728],"tlw":["ant",708],"lp":["ba","ab","tan","atn","tatn","ant","tana","aba","bab","tna","bna","ban","fn","baba","fab","bat"],"rp":["nat","nta","nf","nab"]},"26":{"input":[2,4,5],"tlp":["cj",4424],"trp":["nc",4520],"tlw":["tj",127],"lp":["cj","cn","bc","bs","stn","cb","bj","sb","tj"],"rp":["nc","jsc","jc","nst","jst","jb","jt","ncj","nts"]},"27":{"input":[1,2,4,5],"tlp":["stan",3867],"trp":["jac",5445],"tlw":["stan",180],"trw":["jac",97],"lp":["stan","ajac","taj","acj","bac","baw","anc","staj","cja","caj","wnat"],"rp":["jac","nac","nast","nca","nstw","jsca","jca","nasc","jat"]},"28":{"input":[3,4,5],"tlp":["by",46129],"trp":["yt",8428],"tlw":["ten",4023],"trw":["net",73],"lp":["by","ty","ry","be","eb","br","ten","rn","eby","ety","ent","ern","byt","tyn","ber"],"rp":["yt","yb","yby","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bra",4962],"trp":["yta",3398],"tlw":["aby",2523],"trw":["nate",242],"lp":["bra","bar","ary","aby","aty","eba","ran","arn","tary","rna","abr","aryn","ryna","brat"],"rp":["yta","nar","naty","yra","yba","ynar"]},"30":{"input":[2,3,4,5],"tlp":["cy",8269],"trp":["yc",28802],"tlw":["byc",2943],"trw":["jest",9582],"lp":["cy","bed","tyc","tej","ryc","byc","ejsc","dyt","edyt","dyb","dyby","rej","cej","ecej","sty"],"rp":["yc","jest","yst","nyc","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["stary",943],"trw":["nawet",3158],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2169],"trw":["i",28082],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",76007],"trp":["ia",68340],"tlw":["z",15934],"trw":["iz",305],"lp":["za","zi","az","zia","ai","aza","azi","zz","zaz","zza","zzi","zaza","zai"],"rp":["ia","iz","iaz","iza","iaza","izz","iazi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",90184],"trp":["ki",45823],"tlw":["si",39],"trw":["is",1279],"lp":["si","sk","ski","sis","sks"],"rp":["ki","is","ik","ks","isk","ksi","kis","iki","isi","kk","iski","kki","kik","iss"]},"35":{"input":[1,2,6],"tlp":["wi",87989],"trp":["ka",38575],"tlw":["zas",2170],"trw":["ka",698],"lp":["wi","sz","ak","wsz","zas","wia","aki","zw","sza","asz","zk","swi","sia","awi","wz","ska","zis"],"rp":["ka","iw","kaz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1323],"trp":["ie",368657],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",125561],"trp":["iez",5190],"tlw":["ze",12240],"trw":["ize",38],"lp":["ze","zie","ez","zez","aze","eza","eze","azie","ezi","ziez","ezie","ziei","xi","zeze"],"rp":["iez","iaze","ize","ieza","iezi","ieze"]},"38":{"input":[2,3,6],"tlp":["sie",75832],"trp":["kie",18740],"tlw":["sie",65236],"trw":["ide",164],"lp":["sie","ek","dk","eki","esi","sied","eks","skie","esie","eke"],"rp":["kie","ied","ies","iek","id","kied","ke","iesi","ieks","ieki"]},"39":{"input":[1,2,3,6],"tlp":["dz",71993],"trp":["iedz",11935],"tlw":["dzis",2729],"trw":["kad",1125],"lp":["dz","dzi","wie","dzie","edz","sze","esz","edzi","zes","zd","dzia","zed","wied","zek","wid","wiek","adz","eka"],"rp":["iedz","iew"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",1632],"trp":["it",10113],"tlw":["v",123],"trw":["it",677],"lp":["ti","vi","vii","tv","tvi","tti","tiv","viii"],"rp":["it","iv","iti","itt","itiv"]},"41":{"input":[1,4,6],"tlp":["zt",5011],"trp":["iat",4655],"tlw":["tai",754],"trw":["if",169],"lp":["zt","fi","zat","zta","tai","av","fia","afi","va","tav","vaa","vaaa","tia","azat","ait","fit"],"rp":["iat","ita","iata","if"]},"42":{"input":[2,4,6],"tlp":["ci",62579],"trp":["ic",34576],"tlw":["ci",3112],"trw":["isc",445],"lp":["ci","sci","tk","stk","tki","stki","cic","ck","tkic","cis","vis","scic"],"rp":["ic","kt","kic","ist","isc","ikt","isci","ici"]},"43":{"input":[1,2,4,6],"tlp":["cz",84284],"trp":["iast",2879],"tlw":["tak",10183],"trw":["itak",560],"lp":["cz","tak","cza","zc","cia","szc","zcz","szcz","acz","zac","czas","wiat","taki","aci","wcz","scia","zacz","wic"],"rp":["iast","iac"]},"44":{"input":[3,4,6],"tlp":["ri",3494],"trp":["ier",13295],"tlw":["tie",65],"trw":["ir",2637],"lp":["ri","ve","rie","ev","vie","ver","rii","eve","ever","eri","tri","eir","rei"],"rp":["ier","iet","ir","ite","ietr","iete","iter"]},"45":{"input":[1,3,4,6],"tlp":["rz",90643],"trp":["ierz",2732],"tlw":["teraz",3005],"trw":["iteraz",110],"lp":["rz","rze","raz","trz","rzez","rza","arz","trze","zar","zr","eraz","erz","atrz","tez","zer","raze","trza","zara","zet"],"rp":["ierz"]},"46":{"input":[2,3,4,6],"tlp":["cie",23265],"trp":["iec",26434],"tlw":["cie",2111],"trw":["itd",184],"lp":["cie","eci","esci","scie","rek","ecie","rsk","rski","tkie","siec","rk"],"rp":["iec","kr","ieci","kre","iesc","kret","iece","ice","ierc"]},"47":{"input":[1,2,3,4,6],"tlw":["wiec",3828],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["ni",174405],"trw":["in",1322],"lp":[],"rp":["ni","in","inn","ini","hi","hn","nni","hin","inni","hni","nii","nin","iin","iinn","inii","nh"]},"49":{"input":[1,5,6],"tlp":["zn",27628],"trp":["nia",13186],"tlw":["ani",2778],"trw":["niz",2084],"lp":["zn","ani","zna","zni","ania","zan","zin","azn","zani","azni","znan"],"rp":["nia","ha","ina","niz","ian","naz","nani","han","hna"]},"50":{"input":[2,5,6],"tlp":["sni",3453],"trp":["nik",4194],"tlw":["sni",32],"trw":["his",454],"lp":["sni","sh"],"rp":["nik","kn","nk","ij","ji","nis","his","kni","jni","jsk","nisk","nsk","nki","nski","kin","ins","jis","isn"]},"51":{"input":[1,2,5,6],"tlp":["wni",5839],"trp":["jak",28350],"tlw":["wina",268],"trw":["jak",14792],"lp":["wni","win","zaj","wini","znaj","asni","szn","zj","wnia"],"rp":["jak","nak","jaki","hw","hwi","nasz","ija","kna","kan","jaka","iwn"]},"52":{"input":[3,5,6],"tlp":["eni",11343],"trp":["nie",115708],"trw":["nie",47473],"lp":["eni","enie"],"rp":["nie","he","ien","ieni","yni","inie","hy","inny","nien","inne","ynie","ine","iny","hen","nnie","hey","ienn","hnie"]},"53":{"input":[1,3,5,6],"tlp":["zy",86799],"trp":["yz",4726],"tlw":["zenie",780],"trw":["nanie",104],"lp":["zy","anie","zen","zeni","znie","zyn","enia","zyz","azy","zien","ezy","zne","zny","zyni","zyna","zyzn","ezn"],"rp":["yz","niez","yzn"]},"54":{"input":[2,3,5,6],"tlp":["dni",6393],"trp":["iej",15859],"tlw":["she",1219],"trw":["kiedy",2587],"lp":["dni","snie","dnie","she","esni","ekn"],"rp":["iej","niej","yk","iedy","iejs","kiej","nies","ysi","ieje","iekn","niek","nied","ije","ysie"]},"55":{"input":[1,2,3,5,6],"tlw":["dzien",1087],"trw":["jednak",3118],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",21105],"trp":["ib",902],"tlw":["bi",50],"lp":["bi","th","tni","thi","bni","thin","bit","bin","bh","tin"],"rp":["ib","ht","nib","ith","int","itn","hb","nit","niti","hit"]},"57":{"input":[1,4,5,6],"tlp":["zb",4172],"trp":["hat",1109],"tlw":["that",591],"trw":["izba",42],"lp":["zb","tani","bia","zab","atni","abi","tha","that","zabi","zbi","zba","tnia","ath","bani"],"rp":["hat","itan","izb","inf","hta","hav"]},"58":{"input":[2,4,5,6],"tlp":["ch",74579],"trp":["ich",14715],"tlw":["bci",274],"trw":["ich",4866],"lp":["ch","chc","chci","bic","cji","chn","cich","bk"],"rp":["ich","nic","hc","kich","kb","hci","nich","icj","inic","nicj","nikt","jci"]},"59":{"input":[1,2,4,5,6],"tlw":["znich",449],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",13336],"trp":["ieb",5068],"tlw":["the",3042],"trw":["her",1605],"lp":["bie","ebi","the","ebie","tnie","biet","rni","bnie"],"rp":["ieb","iebi","her","hr","nieb","nier","iety","hyb","iby","hry","iern","niby"]},"61":{"input":[1,3,4,5,6],"tlw":["bez",2806],"trw":["nieraz",449],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tych",1735],"trw":["niech",1470],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["czy",5191],"trw":["jeszcze",5354],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",763],"trw":["o",6106],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",782],"trp":["oa",209],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",12921],"trp":["os",50523],"tlw":["so",247],"lp":["so","sos","soo"],"rp":["os","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",32063],"trp":["ow",64725],"tlw":["wo",109],"trw":["ow",544],"lp":["wo","swo","awo","sow","wos","wow","aso","asow","wso","wswo","aswo","awos"],"rp":["ow","owa","owo","ows","osa","osw","osow","owos"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["-o",242],"trw":["-",43777],"lp":["eo"],"rp":["-o","oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"trp":["-a",577],"trw":["-a",43],"lp":["xo","axo","a-"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",46979],"trp":["od",49479],"tlw":["do",12671],"trw":["od",4136],"lp":["do","dos","dod","eso","dodo","doo","edo","doe","does"],"rp":["od","odo","ode","odd","ose","ods","-d","odde","odos","oes","-do"]},"71":{"input":[1,2,3,7],"tlp":["wod",4591],"trp":["owe",3290],"tlw":["woda",528],"trw":["owe",142],"lp":["wod","dow","ado","dwo","ewo","dowo","wdo","dowa","ados","woda","doda","wode","awdo","dosw"],"rp":["owe","oda","owod","odda","owad","odw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",72862],"trp":["ot",22422],"tlw":["to",23311],"trw":["oto",1109],"lp":["to","go","got","goto","tot","too","goo"],"rp":["ot","og","oto","ogo","ott","oog"]},"73":{"input":[1,4,7],"tlp":["ag",8439],"trp":["oga",3404],"tlw":["ato",208],"trw":["of",1252],"lp":["ag","ga","fo","ato","aga","ago","gat","tota","fot","tof","gf","gata"],"rp":["oga","of","ota","off","ogat","otta","ofa"]},"74":{"input":[2,4,7],"tlp":["co",15974],"trp":["oc",26832],"tlw":["co",5162],"lp":["co","sto","cos","gos","tos","cot","gosc","stos","stot","tosc","coto","toc","cott","sco"],"rp":["oc","osc","ost","osto","otc","ogos"]},"75":{"input":[1,2,4,7],"tlp":["two",4901],"trp":["osta",7294],"tlw":["gotow",216],"trw":["owoc",43],"lp":["two","tow","stwo","towa","woc","cow","wag","gw","wosc","gow","wg","wowc"],"rp":["osta","otw","owc","owac","otow","oca","owt","ogow"]},"76":{"input":[3,4,7],"tlp":["ro",57299],"trp":["or",45488],"tlw":["tego",4358],"trw":["-to",452],"lp":["ro","eg","ego","tor","tore","teg","tego","tro","gr","ge","rog","gor","gro","reg","ero","rego"],"rp":["or","ore","ote","otr"]},"77":{"input":[1,3,4,7],"tlp":["tora",3418],"trp":["ora",7565],"tlw":["for",554],"trw":["-ato",55],"lp":["tora","for","aro","rag","ateg","ega","gra","roga","gar","age","gora","arg","arto","areg","fro","taro"],"rp":["ora","otra","-ta","ogar"]},"78":{"input":[2,3,4,7],"tlp":["gd",17099],"trp":["ors",3173],"tlw":["dosc",813],"trw":["odtego",117],"lp":["gd","rod","roc","ros","dro","stro","god","tors","sro","srod","drog","rost","dot","dosc","cor","dost"],"rp":["ors","odc","odr","ostr"]},"79":{"input":[1,2,3,4,7],"tlw":["wsrod",1050],"trw":["otwarte",152],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",34225],"trw":["on",3987],"lp":[],"rp":["on","no","un","nu","ou","ono","uo","onu","nuo","nno","uno","oun","oon","onn","unu","onno","non","unon","nou"]},"81":{"input":[1,5,7],"tlp":["au",3651],"trp":["ona",5686],"tlw":["aon",234],"trw":["ona",1285],"lp":["au","ano","anu","aon","aona","anno","aun","auna","qu"],"rp":["ona","nau","una","nao","ua","onan","nano","oan","oann","nona","uau"]},"82":{"input":[2,5,7],"tlp":["su",4815],"trp":["oj",23708],"tlw":["su",735],"trw":["jo",359],"lp":["su","sno","sun","sus","snu"],"rp":["oj","us","ju","nos","uj","jo","jus","ojn","oju","osn","ojs","osu","nso","ojo","osno"]},"83":{"input":[1,2,5,7],"tlp":["woj",7645],"trp":["now",8001],"tlw":["swoja",803],"trw":["jau",356],"lp":["woj","swoj","wu","anow","wno","asu","aju","woja","wojn","won","sown"],"rp":["now","own","oja","uw","uwa","owu","nowu","uja","onow"]},"84":{"input":[3,5,7],"tlp":["eu",1045],"trp":["ony",3245],"trw":["you",832],"lp":["eu","eon","eno","eun","enu"],"rp":["ony","one","-n","yo","you","neu","yno","une","ynu","-no","ynno","uny","ynuo","-nu","-on"]},"85":{"input":[1,3,5,7],"tlp":["aux",164],"trp":["ux",164],"lp":["aux","eona","eanu","eau"],"rp":["ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7756],"trp":["ud",11878],"tlw":["synu",166],"trw":["jedno",549],"lp":["du","dno","dus","don","edno","ejo","dnos"],"rp":["ud","oje","odn","uje","ody","ojej","odu","udn","osy","ude","yso","udy","-j"]},"87":{"input":[1,2,3,5,7],"tlw":["swoje",1014],"trw":["nowe",458],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",17356],"trp":["ob",32371],"tlw":["tu",4701],"trw":["obu",290],"lp":["bo","tu","bu","gn","bog","gu","tob","tut","but","bot"],"rp":["ob","ug","ut","ub","obo","obn","nog","ugo","ogn","ng"]},"89":{"input":[1,4,5,7],"tlp":["gna",1454],"trp":["oba",4176],"tlw":["boga",442],"trw":["nato",715],"lp":["gna","agn","atu","tano","agna","boga","tuta","agu","toba","abo","gan"],"rp":["oba","nag","nato","uta","uga","noga","natu","nfo","obna"]},"90":{"input":[2,4,5,7],"tlp":["sob",8597],"trp":["uc",9675],"tlw":["boju",171],"trw":["noc",701],"lp":["sob","cu","stu","cju","cjus","boj","bos","scu","cno"],"rp":["uc","ust","nosc","onc","osob","noc","ojc","ncu","oncu","ocn","just"]},"91":{"input":[1,2,4,5,7],"tlw":["soba",912],"trw":["usta",582],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10352],"trp":["ory",10533],"tlw":["gory",402],"trw":["nero",306],"lp":["ru","tory","ron","rob","tron","bro","rug","tru","rony"],"rp":["ory","ur","obr","neg","nego","yto","oty","ytor","yg","oby","obe"]},"93":{"input":[1,3,4,5,7],"tlw":["rano",301],"trw":["natury",131],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gdy",6483],"trw":["jego",6471],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dobra",471],"trw":["justyna",463],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",50381],"trw":["li",307],"lp":[],"rp":["lo","li","il","ol","io","oi","oli","olo","ilo","ili","ll","iol","lil","llo","ill","lli","lio","ilio","oil","loo"]},"97":{"input":[1,6,7],"tlp":["al",107956],"trp":["la",64546],"tlw":["zal",356],"trw":["la",391],"lp":["al","zo","ala","zl","zal","zial","alo","zlo","ali","zil","zla","zli","azal"],"rp":["la","oz","ial","ola","iala","ila","lal"]},"98":{"input":[2,6,7],"tlp":["sl",22280],"trp":["ko",47506],"tlw":["sil",387],"trw":["okolo",573],"lp":["sl","sli","slo","sil","sko"],"rp":["ko","ok","lk","kl","lko","los","oko","kol","lki","osi","ilk","kil","oki","kilk","okol"]},"99":{"input":[1,2,6,7],"tlp":["wal",9697],"trp":["owi",22633],"tlw":["slowa",956],"trw":["kilka",1527],"lp":["wal","wil","wol","wl","ako","szl","zos","wla","sla","wlas","slow"],"rp":["owi","low","las","lowi","kla","osz","lka","lowa","kow"]},"100":{"input":[3,6,7],"tlp":["el",23557],"trp":["le",60091],"trw":["ile",574],"lp":["el","eli","ele","elo","ell","ello","elli"],"rp":["le","iel","ole","ile","ieli","iele","iell","ielo","lie","lei","olei","lle","iole"]},"101":{"input":[1,3,6,7],"tlp":["ale",25698],"trp":["oze",6806],"tlw":["ale",11823],"trw":["lezal",224],"lp":["ale","zel","ela","alez","zle","ziel","zeli","zela","zale","ezal","ezel","ezl"],"rp":["oze","lez","iale","leza","iela","lale","ozle","loze"]},"102":{"input":[2,3,6,7],"tlp":["dl",18350],"trp":["lek",3460],"tlw":["sile",224],"trw":["like",346],"lp":["dl","ekl","elk","edl","esl","esli","dok","elki","eko","dol","dlo"],"rp":["lek","ielk","lod","ld","lkie","osie","led","ido","okie"]},"103":{"input":[1,2,3,6,7],"tlw":["dla",5302],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gl",20525],"trp":["ogl",5611],"tlw":["gi",147],"trw":["ito",358],"lp":["gl","gi","glo","tol","tl","vo","gol"],"rp":["ogl","ig","ogi","lit","ito","lot","lig","igi","itol","ligi","lt","iot","oglo"]},"105":{"input":[1,4,6,7],"tlp":["tal",9006],"trp":["lat",3663],"tlw":["zato",341],"trw":["lat",1084],"lp":["tal","gla","zg","agl","tala","talo","zgo","agi","zlot","gal","atl","zgl","alt","toz"],"rp":["lat","iag","ogla","ofi","iatl","ofia"]},"106":{"input":[2,4,6,7],"tlp":["cil",3725],"trp":["kto",24526],"tlw":["glos",1013],"trw":["kto",1969],"lp":["cil","glos","tko","stko","stol"],"rp":["kto","osci","oci","lic","losc","lc","ocil","otk","oic","okt","okto","kosc","koc","isto","olic"]},"107":{"input":[1,2,4,6,7],"tlw":["glowa",1247],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["gle",3643],"trp":["ieg",7405],"tlw":["teorii",136],"trw":["ligie",262],"lp":["gle","gie","rol","rl","egl","rogi","tel","egi","role","giel"],"rp":["ieg","iego","leg","iero","lite","ori","lego","ior","ogie","legl"]},"109":{"input":[1,3,4,6,7],"tlw":["zeto",514],"trw":["oraz",543],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["drogi",663],"trw":["ktore",3303],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["gdzie",3077],"trw":["lecz",4127],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["lu",22354],"trw":["oni",779],"lp":[],"rp":["lu","ho","oni","ln","iu","lni","lon","ul","oln","niu","hl","nio","hlo","olni","hu","uni","ion","nil","lno","olu"]},"113":{"input":[1,5,6,7],"tlp":["zu",11610],"trp":["uz",13328],"tlw":["znalazl",366],"trw":["uz",245],"lp":["zu","zno","znal","zon","zul","azu","alan"],"rp":["uz","nal","ozn","ozna","lan","ozu","luz","hal","ozni","lna","nala","lani","nial"]},"114":{"input":[2,5,6,7],"tlp":["slu",3167],"trp":["ku",13470],"tlw":["skoku",179],"trw":["ku",734],"lp":["slu","slon","sku"],"rp":["ku","kon","uk","usi","koj","okoj","koni","oku","unk","nios","kun","lus","ius","nius","nku","nosi","niko"]},"115":{"input":[1,2,5,6,7],"tlw":["znowu",1380],"trw":["juz",8066],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",2354],"trp":["yl",37140],"trw":["-nie",970],"lp":["eln","elu","elni","eniu"],"rp":["yl","ly","ylo","onie","lnie","yli","yly","yle","nel","ily","-ni","-nie","lny","lne","len","ielu"]},"117":{"input":[1,3,5,6,7],"tlw":["zony",234],"trw":["lzy",407],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sily",637],"trw":["jesli",2399],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dalej",1297],"trw":["ludzi",1877],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",4510],"trp":["obi",10397],"tlw":["buvo",526],"trw":["lub",2322],"lp":["bl","gni","bli","bil","tlu","bol","tobi"],"rp":["obi","lb","ugi","lug","lub","lbo","nig","lugo","ogni","lugi","obil","obl","uv"]},"121":{"input":[1,4,5,6,7],"tlw":["albo",1927],"trw":["ognia",422],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["choc",1394],"trw":["obok",680],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["chwili",1257],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bylo",6619],"trw":["niego",1339],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["byla",3016],"trw":["nagle",1105],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["tylko",7436],"trw":["ktory",4337],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["wszystko",2576],"trw":["oczy",2137],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",172],"trw":["p",135],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9918],"trp":["pa",27218],"trw":["pa",145],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",14576],"trp":["ps",984],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wp",3537],"trp":["pas",1206],"trw":["pas",221],"lp":["wp","spa","wsp","wpa","wspa","apas","asp","aspa","wap","awp","wpas","spas"],"rp":["pas","paw","psa","pasa","pw"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",5528],"trp":["pe",8856],"trw":["pe",37],"lp":["ep","e'","epe","eep"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1033],"trp":["pea",94],"lp":["ape","epa","a'","appe"],"rp":["pea","ppea"]},"134":{"input":[2,3,8],"tlp":["dp",2912],"trp":["'s",698],"lp":["dp","eps","esp","spe","e's","sped","spee","e'd","desp","dep","sep"],"rp":["'s","ped","'d","pede"]},"135":{"input":[1,2,3,8],"tlp":["dpa",640],"trp":["pew",3258],"tlw":["wpada",59],"trw":["pada",80],"lp":["dpa","apew","wpad","aped","spad","a's","apad","wpe","wpew","epas","epew"],"rp":["pew","pad","pada","pade","pawe","pase","pwe"]},"136":{"input":[4,8],"tlp":["tp",340],"trp":["pt",863],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",450],"trp":["pat",2675],"lp":["tap","atp"],"rp":["pat","pta","pf"]},"138":{"input":[2,4,8],"tlp":["cp",40],"trp":["pc",913],"lp":["cp"],"rp":["pc","pst"]},"139":{"input":[1,2,4,8],"tlp":["stap",450],"trp":["pac",1055],"tlw":["spac",240],"trw":["pats",97],"lp":["stap","apac","watp","spac","wpat","acp","cpa","wacp","acpa"],"rp":["pac","pca","pasc","past","pats","pstw","ptac"]},"140":{"input":[3,4,8],"tlp":["tep",1202],"trp":["pr",57473],"trw":["per",245],"lp":["tep","epr","rp","erp","ept","t'","epte","re'","ere'","tepe"],"rp":["pr","pre","pet","petr","per","'t","pret","'r","'re","pte"]},"141":{"input":[1,3,4,8],"tlp":["apr",1964],"trp":["pra",9765],"tlw":["tarp",77],"trw":["pare",337],"lp":["apr","apra","epra","epta","arp","tarp","at'","apar","apre"],"rp":["pra","patr","par","pare","pfe","para","pera","part","papr"]},"142":{"input":[2,3,4,8],"tlp":["spr",2056],"trp":["pred",1040],"trw":["press",30],"lp":["spr","step","t's","epc","tepc","cep","rcep","cepc","spec","re's","epce","cept","depc"],"rp":["pred","prec","perc","pres","pce","peec","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["sprawe",290],"trw":["prawda",673],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mn",14832],"trw":["m",312],"lp":[],"rp":["mn","pn","mp","nm","np","mm"]},"145":{"input":[1,5,8],"tlp":["am",33618],"trp":["ma",28562],"tlw":["apan",98],"trw":["pan",4034],"lp":["am","ama","amn","amp","apan","anam"],"rp":["ma","pan","nam","nap","mam","mna","pana","man","pam","pann","namn","napa","pna","mama"]},"146":{"input":[2,5,8],"tlp":["sm",6824],"trp":["jm",1565],"lp":["sm"],"rp":["jm","ms","jmn","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",6796],"trp":["maj",1759],"tlw":["sam",2445],"trw":["maja",826],"lp":["sam","wam","ajm","sama","ajmn","wm","asam","sma","ajp","span","asm"],"rp":["maj","maja","mas","najm","jam","pans","maw","najp","nasm"]},"148":{"input":[3,5,8],"tlp":["em",47785],"trp":["ym",25806],"tlw":["eme",32],"trw":["my",1084],"lp":["em","emn","emy","epn","eme","emne"],"rp":["ym","my","me","yp","py","nym","nem","men","mne","mny","nnym","mym","n'","mem"]},"149":{"input":[1,3,5,8],"tlp":["amy",2050],"trp":["yma",2522],"tlw":["amy",88],"trw":["max",1479],"lp":["amy","ame","apy","ema","emna","amym","anem","epna","an'","amem"],"rp":["yma","max","ypa","mamy","nape","mane","pane","namy","maxa","na'"]},"150":{"input":[2,3,5,8],"tlp":["sem",2689],"trp":["mys",5369],"tlw":["dym",154],"trw":["jednym",518],"lp":["sem","dym","smy","dem","spy","dm","dnym","esm","edem","esmy","edm","ems"],"rp":["mys","jem","jemn","ysp","mej","ysm","ysmy","yms"]},"151":{"input":[1,2,3,5,8],"tlw":["samym",432],"trw":["pewna",264],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",173],"trp":["mt",555],"lp":["tm"],"rp":["mt","mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",5042],"trp":["mat",1787],"tlw":["tam",3597],"trw":["mat",31],"lp":["tam","amt","tamt","amta","fam","atam","bam","amf","atm","fm"],"rp":["mat","mta","mf","pant","mnat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",184],"trp":["mc",1077],"tlw":["tms",55],"lp":["cm","tms"],"rp":["mc","mst","pcj","msc"]},"155":{"input":[1,2,4,5,8],"tlw":["wacpan",40],"trw":["majac",369],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["tem",8044],"trp":["pyt",2717],"tlw":["tym",4037],"lp":["tem","tym","rym","bym","rm","rem","tepn","bem"],"rp":["pyt","mr","met","n't","mbe","mber","metr","ment","ybym","mer","ypr","mte"]},"157":{"input":[1,3,4,5,8],"tlw":["temat",228],"trw":["natym",299],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["system",322],"trw":["jestem",1324],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["wtym",987],"trw":["naprawde",460],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",22224],"trw":["pi",56],"lp":[],"rp":["pi","ip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["zap",2987],"trp":["pia",562],"lp":["zap","api","zp","aip","zapa","zpi","zpa","apia"],"rp":["pia","papi","ipa","paz","izap"]},"162":{"input":[2,6,8],"tlp":["spi",1310],"trp":["pis",4398],"tlw":["spi",122],"lp":["spi","skip"],"rp":["pis","kip","pk","isp","pki","psi"]},"163":{"input":[1,2,6,8],"tlp":["wpi",267],"trp":["kap",1184],"tlw":["zapas",72],"trw":["kaip",681],"lp":["wpi","apis","apk","zapk","szp","zkap","szpi"],"rp":["kap","kapi","kaip","psz","pisa","pak","pias","pisz","piw","kasp","pask","psza","piwa"]},"164":{"input":[3,6,8],"tlp":["epi",972],"trp":["pie",13522],"trw":["pie",48],"lp":["epi","epie"],"rp":["pie","iep","i'","ipe","iepe","pei","ppei"]},"165":{"input":[1,3,6,8],"tlp":["zep",1368],"trp":["piez",95],"tlw":["apie",272],"trw":["papieza",54],"lp":["zep","apie","ezp","zpie","ezpi","zape","zepa","zpe"],"rp":["piez"]},"166":{"input":[2,3,6,8],"tlp":["spie",1047],"trp":["pies",1441],"trw":["pies",178],"lp":["spie","epek","spek"],"rp":["pies","piek","iesp","kipe","pke","pek","kep"]},"167":{"input":[1,2,3,6,8],"tlw":["spiew",96],"trw":["pisze",141],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tpi",70],"trp":["pit",866],"trw":["itp",74],"lp":["tpi"],"rp":["pit","itp","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",763],"trp":["pita",834],"tlw":["taip",402],"trw":["pati",50],"lp":["apit","tapi","taip","zpit","atpi"],"rp":["pita","piat","pati","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",42],"trp":["pic",402],"trw":["pic",106],"lp":["cip","spit"],"rp":["pic","ipc","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["czapka",41],"trw":["ptak",106],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rpi",335],"trp":["pier",5070],"trw":["prie",378],"lp":["rpi","erpi","rpie","tpie","epti"],"rp":["pier","ierp","pri","prie","iepr","piet","ipr","it'","iper","pir"]},"173":{"input":[1,3,4,6,8],"tlw":["rzepa",61],"trw":["przez",6795],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skiper",201],"trw":["piec",482],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["wprawdzie",446],"trw":["przed",3656],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",59941],"trw":["mi",6561],"lp":[],"rp":["mi","im","mni","nim","imi","min","pni","hm","mim","nimi","hmi","imn","him","hip","mini","pin","imni","nmi","pini","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",9688],"trp":["mia",11078],"tlw":["zanim",753],"trw":["pani",1381],"lp":["ami","zm","zam","zmi","zami","anim","amia","zim","zma","znim","zmia","znam"],"rp":["mia","pani","nami","pami","hmia","mian","mina","maz"]},"178":{"input":[2,5,6,8],"tlp":["smi",4361],"trp":["kim",3177],"tlw":["spij",31],"trw":["kim",153],"lp":["smi","sim","skim"],"rp":["kim","mis","mk","jmni","ism","mkn","ims","kims","pij","kimi","mkni","jmi","jpi","misj","msk","mski","pism"]},"179":{"input":[1,2,5,6,8],"tlw":["wnim",424],"trw":["masz",794],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",3623],"trp":["mie",22534],"trw":["mnie",6049],"lp":["emi","emie","emni","epni"],"rp":["mie","iem","mnie","niem","iemi","mien","ypi","ymi","iemn","hem","pien","imie","pnie","niep","iemy","imy"]},"181":{"input":[1,3,5,6,8],"tlw":["ziemi",986],"trw":["panie",1750],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["siedem",200],"trw":["mniej",628],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["wiem",1473],"trw":["miedzy",1744],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",148],"trp":["mit",146],"trw":["mit",116],"lp":["tim","bim","tnim","vim"],"rp":["mit","imit"]},"185":{"input":[1,4,5,6,8],"trw":["itam",129],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["mscic",37],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["zamiast",457],"trw":["matka",605],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tymi",175],"trw":["itym",97],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["razem",1159],"trw":["przy",3948],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["smierc",577],"trw":["miec",761],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["tymczasem",730],"trw":["przypis",2677],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",79029],"trw":["po",5485],"lp":[],"rp":["po","op","pop","opo","opp","popp","popo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1764],"trp":["opa",1101],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8518],"trp":["pos",6704],"tlw":["spo",52],"lp":["spo","spos"],"rp":["pos","poso","osp","ospo","posp","pso"]},"195":{"input":[1,2,7,8],"tlp":["wpo",932],"trp":["pow",12141],"trw":["psow",77],"lp":["wpo","wspo","apos","wpow","apow","wpos","awpo","wpop"],"rp":["pow","powo","opow","pows","powa","posa","posw","psow","paso"]},"196":{"input":[3,7,8],"tlp":["epo",395],"trp":["-p",478],"lp":["epo","eop"],"rp":["-p","ope","oppe","poe","peo","peop","-po"]},"197":{"input":[1,3,7,8],"trp":["-pa",318],"trw":["poppea",94],"lp":[],"rp":["-pa"]},"198":{"input":[2,3,7,8],"tlp":["dpo",2241],"trp":["pod",11766],"tlw":["spod",439],"trw":["pod",4050],"lp":["dpo","dop","spod","dopo","espo","epod","dope"],"rp":["pod","odp","odpo","podo","opod","pods","pode","podd","pose","pedo","podp","odep","osep"]},"199":{"input":[1,2,3,7,8],"trw":["powod",76],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1200],"trp":["pot",6309],"trw":["pot",71],"lp":["top"],"rp":["pot","pog","pogo","opot","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",497],"trp":["poga",110],"lp":["apot","topa"],"rp":["poga","opat","pota"]},"202":{"input":[2,4,7,8],"tlp":["stop",1200],"trp":["poc",5454],"tlw":["stop",300],"lp":["stop","spot","gosp","spog","spoc","cop"],"rp":["poc","post","opc","posc","pco","opco"]},"203":{"input":[1,2,4,7,8],"tlw":["stopa",56],"trw":["postac",287],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",301],"trp":["pro",7398],"trw":["popr",1453],"lp":["rop","epro","tepo"],"rp":["pro","pote","opr","por","popr","potr","opro","prog","poro","pror","opor","-pr","oper","-pro","poet","opre","opet"]},"205":{"input":[1,3,4,7,8],"trw":["pora",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["sporo",108],"trw":["prosto",232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["wprost",448],"trw":["prawo",368],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",36877],"trw":["mu",7197],"lp":[],"rp":["mo","mu","om","um","pom","up","omu","pu","omo","omn","pon","pomo","mno","pomn","opn","pun","mom","omp","umn","opu"]},"209":{"input":[1,5,7,8],"tlp":["amo",1213],"trp":["oma",1236],"trw":["panu",545],"lp":["amo","apom","anom","apon","anum"],"rp":["oma","pano","uma","panu","upa","pona","napo","onam","mano","oman","omna","opan","namo","poma","mamo"]},"210":{"input":[2,5,7,8],"tlp":["spoj",1485],"trp":["moj",4972],"tlw":["spoj",47],"trw":["moj",1601],"lp":["spoj","smu","spom","sum"],"rp":["moj","mus","poj","pus","usm","mos","mnos","omos","opus","muj","osm","jmo","jom","jmu","jmuj","pojs"]},"211":{"input":[1,2,5,7,8],"tlw":["samo",635],"trw":["moja",1288],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emu",3362],"trp":["ome",1246],"trw":["open",44],"lp":["emu","emo","emno"],"rp":["ome","omy","upe","pomy","umy","ypo","omen","mome","ymu","ypom","upy","ume","onem","omny","omne","ypu","-m"]},"213":{"input":[1,3,5,7,8],"trw":["-pan",98],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["domu",1023],"trw":["moje",1112],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["wdomu",466],"trw":["mowy",435],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",725],"trp":["mog",6878],"tlw":["tom",165],"trw":["potu",49],"lp":["tom","topn","gm","gom","bom","gmu","gmun"],"rp":["mog","mot","mut","pob","mutn","moto","umb","mg","ptu","put","mput","motn","ogom"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",53],"trw":["moga",569],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["sposob",1064],"trw":["moc",367],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smutna",117],"trw":["mnostwo",266],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["temu",761],"trw":["potem",2023],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",589],"trw":["megan",179],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gdybym",317],"trw":["prostu",339],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["samego",331],"trw":["pewnego",233],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pol",5926],"trw":["pol",506],"lp":[],"rp":["pol","pl","opi","lop","polo","pil","plo","ipo","pio","poli","pli","lopi","lp","lopo","opl","lip","ipol","opol","pili","pilo"]},"225":{"input":[1,6,7,8],"tlp":["zpo",957],"trp":["poz",4658],"tlw":["zlapal",59],"trw":["poza",483],"lp":["zpo","zapo","apl","apla","apal","apil","alp"],"rp":["poz","pla","pal","pozo","pola","poza","ozp","pali","lopa","ozpa","pala","ozpo","pozi"]},"226":{"input":[2,6,7,8],"tlp":["spok",1225],"trp":["pok",4474],"trw":["polski",326],"lp":["spok","spol"],"rp":["pok","poko","pols","piso","poki","posi","posl","pokl","opok","ospi","klop","opis","ipos","kop","pios","ispo","polk"]},"227":{"input":[1,2,6,7,8],"tlw":["wpol",123],"trw":["powoli",384],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",290],"trp":["pel",2439],"trw":["pole",188],"lp":["epl","eplo","eple","eopl","elp"],"rp":["pel","opie","lep","lepi","pole","ple","iepl","iepo","pele","ople","'l","i'l","'ll","i'll","piel"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["dopoki",198],"trw":["polskie",78],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wpadl",182],"trw":["powiedzial",1337],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tpl",196],"trp":["piot",350],"trw":["plot",40],"lp":["tpl","tpli","topi"],"rp":["piot","pogl","plot","polg","polt","ptio","pito","ipog","pogi"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",38],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pociski",37],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spotkac",156],"trw":["poczal",800],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["piotr",231],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["przeto",243],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["dopiero",1010],"trw":["predko",303],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"trw":["prosze",860],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",4286],"trw":["mimo",629],"lp":[],"rp":["mil","umi","omi","ml","mlo","hlop","oim","pomi","omni","milo","mio","poni","moi","lum","imo","mimo","mion","iom","moim","minu"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["mial",2579],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["spokoj",193],"trw":["musi",771],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["swoim",499],"trw":["mowil",1284],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mieli",613],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["zupelnie",861],"trw":["moze",4134],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spokojnie",378],"trw":["lepiej",825],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["widzialem",345],"trw":["pozniej",689],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tlum",312],"trw":["mogl",1899],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["galima",72],"trw":["mogla",591],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chlop",216],"trw":["milosc",470],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["chlopak",251],"trw":["mowic",686],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["bylem",489],"trw":["moglem",321],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zapytal",512],"trw":["potrzeba",320],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["glosem",676],"trw":["ktorym",841],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bowiem",669],"trw":["petroniusz",731],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json index afa22643f9..dd77e085bf 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",311],"tlw":["a",279974],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",199930],"tlw":["s",1267],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",403955],"tlw":["as",56128],"lp":["as","sa","ssa","ass","sas","asa","assa","ssas","wa","was","ww","sass","asas","www","aw","awa","sw","swa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4232],"tlw":["e",282983],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",35539],"tlw":["x",299],"lp":["ex","xa","ea","ae","xe","exe","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603738],"tlw":["de",316379],"lp":["de","es","se","ess","sse","des","ed","esse","ese","ses","dess","dese","ede","eses","sses","sd","esd","sde","desd","esde"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",290653],"tlw":["da",79087],"lp":["da","ad","ade","ada","dad","dade","das","essa","esa","ase","sad","asse","eda","ades","adas","ssad","desa","edad","sada","sex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",2738],"tlw":["t",692],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",336586],"tlw":["ta",503],"lp":["ta","at","fa","ata","af","fat","tat","afa","ff","ft","att","tata","taf","atat","ataf","tf","fata","aft","tfa","tta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",220589],"tlw":["c",936],"lp":["st","sc","ct","tc","cc","ts","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",291876],"tlw":["casa",8888],"lp":["ca","sta","ac","aca","cas","tas","casa","ast","fac","stas","sca","tac","asta","sf","cac","sac","taca","caca","asc","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",412432],"tlw":["ter",11405],"lp":["er","te","re","tr","rt","ter","rr","et","tre","ere","ert","rte","err","rre","ret","terr","ete","etr","rer","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",489515],"tlw":["era",37427],"lp":["ra","ar","ara","era","tra","fe","tar","are","rta","ate","art","rar","fr","eta","ef","rra","atr","fer","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",130667],"tlw":["ser",18726],"lp":["est","ce","ec","res","ser","rec","rd","cr","esc","tes","ece","ste","rc","der","cer","str","erd","este","rece","ces"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",82829],"tlw":["esta",19307],"lp":["esta","car","ras","eca","cad","tad","rac","rad","sar","arec","rda","dar","tras","raca","cada","erda","ard","star","stra","rca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",5010],"trw":["n",1260],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",281535],"trp":["na",264338],"tlw":["q",346],"trw":["na",47469],"lp":["an","aq","ana","ann","anq","anna","anan","aan"],"rp":["na","nq","naq","nan","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",220],"trp":["ns",77600],"trw":["j",385],"lp":["sn","sj"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["san",8808],"trp":["ja",39162],"tlw":["san",234],"trw":["ja",13037],"lp":["san","ans","aj","sq","ssan","ansa","anas","anj","aja","anja","ajan","wn"],"rp":["ja","nas","nsa","jan","nsan","jas","nja","nsas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",399933],"trp":["ne",63763],"tlw":["en",763],"trw":["y",1207],"lp":["en","ene","een","ey","enn","enny","eyn","eyne","enen","enne"],"rp":["ne","nen","ny","nny","yn","yne","ney","nne","ye","ynn"]},"21":{"input":[1,3,5],"tlp":["ena",18156],"trp":["ya",615],"tlw":["any",171],"lp":["ena","ane","eq","enq","xan","ay","ean","anny","anea","enx","aen","any","enxe","anen"],"rp":["ya","nea","nx","nxe","nex","nexa"]},"22":{"input":[2,3,5],"tlp":["sen",38594],"trp":["nd",184626],"tlw":["eyes",75],"trw":["nesse",1917],"lp":["sen","end","ens","den","ej","ende","sej","esen","esej","send","eend","sens"],"rp":["nd","nde","je","nse","nes","ness","nden","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",82846],"trp":["nda",26353],"tlw":["seja",3811],"trw":["nada",9040],"lp":["and","ensa","ande","eja","enas","dan","anda","seja","esq","daq","sand","enda","dand","seq"],"rp":["nda","nad","nada","jane","nand","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",711],"trp":["nt",380933],"tlw":["b",631],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",80565],"trp":["nta",60116],"tlw":["tanta",767],"lp":["ant","ab","ba","tan","tant","aba","anta","ban","bat","fan","aban","fant","taq","bata","tab"],"rp":["nta","nf","ntan","nat","ntat"]},"26":{"input":[2,4,5],"tlp":["bs",6193],"trp":["nc",98606],"lp":["bs","bj","cn","bst","sb","bsc","bc"],"rp":["nc","nst","nsc","nts"]},"27":{"input":[1,2,4,5],"tlp":["anc",29762],"trp":["nca",33491],"tlw":["tantas",546],"lp":["anc","sab","cab","anca","can","stan","bas","acab","caba","tanc","bast","cant","sant"],"rp":["nca","ntas","ncas","nsta","nac","nsac","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",207420],"trp":["nte",165647],"tlw":["entre",8275],"trw":["net",250],"lp":["ent","ente","be","br","ten","entr","ren","rn","bre","ber","eb","rent","ern","tent","eren"],"rp":["nte","ntr","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",42850],"trp":["ntra",17480],"tlw":["frente",4513],"trw":["nate",648],"lp":["ran","ante","enta","abe","bra","rq","rna","rab","tran","trab","raba","bar","rant","aber","abr","rtan","fren"],"rp":["ntra","ntar","nar"]},"30":{"input":[2,3,4,5],"tlp":["enc",39246],"trp":["ntes",21043],"tlw":["entender",1104],"trw":["neste",1524],"lp":["enc","sent","cen","dent","tend","bec","cent","ceb","tenc","rend","cebe","renc","rceb"],"rp":["ntes","nce","nder","ntec","nec","nece","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["antes",8436],"trw":["jantar",1170],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1421],"trw":["i",2965],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",127585],"trp":["ia",229190],"tlw":["ai",2545],"trw":["ia",3166],"lp":["ai","az","za","zi","zia","azi","azia","aia","aza","zz","aiz","zzi"],"rp":["ia","iz","iza","izi","iai","izia","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",84867],"trp":["is",248469],"tlw":["si",3658],"trw":["is",409],"lp":["si","ssi","sis","ssis","sk","ski"],"rp":["is","iss","isi","ik","ki","issi","iki","ks"]},"35":{"input":[1,2,6],"tlp":["ais",63939],"trp":["isa",27355],"tlw":["saia",685],"lp":["ais","assi","sai","asi","wi","sia","asia","ak","saia","sias","zas","ssia","aisa"],"rp":["isa","ias","isas","issa","ka","iais","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",135404],"trp":["ie",27112],"tlw":["ei",385],"trw":["ie",93],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",41552],"trp":["ix",21958],"tlw":["xia",158],"trw":["ix",103],"lp":["ze","ez","aze","xi","eix","aix","eia","eza","eze","eixa","exi","aixa","eixe","axi","ezi","eai"],"rp":["ix","ize","ixa","ixe"]},"38":{"input":[2,3,6],"tlp":["di",149151],"trp":["id",117035],"tlw":["disse",22191],"lp":["di","dis","diss","dei","edi","sid","sei","eis","did","side","esi","essi"],"rp":["id","isse","ide","ise","idi","idei","ke","ied"]},"39":{"input":[1,2,3,6],"tlp":["dia",31205],"trp":["ida",58061],"tlw":["dia",8588],"trw":["ideia",3049],"lp":["dia","diz","deix","zes","dize","ezes","adei","deia","xis","exis","dez","dias","adi","edia","sida","dida"],"rp":["ida","idad","iad","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",136577],"trp":["it",117311],"tlw":["vi",1966],"trw":["it",901],"lp":["ti","vi","tiv","viv","vit","tit","vivi","tivi","viti","tv","vii","viii","vitt"],"rp":["it","iv","iti","ivi","itiv","itt"]},"41":{"input":[1,4,6],"tlp":["va",136327],"trp":["ita",29811],"tlw":["vai",6210],"lp":["va","av","ava","fi","tav","tava","via","faz","avi","avia","ati","vai","tia","ativ","tiva","afi"],"rp":["ita","if","ifi","iva"]},"42":{"input":[2,4,6],"tlp":["ci",126068],"trp":["ic",96581],"tlw":["civis",136],"lp":["ci","sti","tic","vis","cis","sit","siv","sic","vist","stiv","ssiv","sist","sci","ck","visi"],"rp":["ic","ist","ici","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",40513],"trp":["ica",47187],"tlw":["vista",1644],"lp":["cia","stav","fic","fica","aci","cav","fici","cava","tica","sav","cisa","cai","sava","sica","vas"],"rp":["ica","ista","ific","icia","itas"]},"44":{"input":[3,4,6],"tlp":["ri",197607],"trp":["ir",123977],"tlw":["ver",6812],"trw":["ir",3642],"lp":["ri","ve","eri","ver","ev","eir","eit","eve","rei","tir","rv","rit","tive","teri","vr","rri"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",65506],"trp":["ira",34560],"tlw":["vez",10904],"trw":["iria",1476],"lp":["ria","ari","eria","vez","eira","zer","ave","faze","rav","azer","aria","eva","fei","feit","var","arti","rava","eita"],"rp":["ira","izer"]},"46":{"input":[2,3,4,6],"tlp":["eci",33622],"trp":["iste",8299],"tlw":["tivesse",3417],"lp":["eci","vid","ves","reci","cid","cri","dir","dev","cie","ris","esti","tid","vess","ecis","rid","verd","dire","seri","deve"],"rp":["iste"]},"47":{"input":[1,2,3,4,6],"tlw":["estava",26264],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",225142],"trw":["in",1383],"lp":[],"rp":["in","nh","inh","ni","hi","ini","nin","nni","hin","nhi","hn","inin","ninh","hnn"]},"49":{"input":[1,5,6],"tlp":["anh",17458],"trp":["ha",149599],"tlw":["ah",1851],"trw":["ha",7686],"lp":["anh","ain","anha","ani","zin","zinh","ah"],"rp":["ha","nha","inha","ina","ian","han","iq","nia","nz","nina","nai","inz","hia"]},"50":{"input":[2,5,6],"tlp":["sin",6776],"trp":["nsi",8141],"tlw":["sin",78],"trw":["his",425],"lp":["sin","sh","ssin","shi","shin"],"rp":["nsi","ins","his","nis","ij","ji","inis","nsis","insi","nsin","niss","nk","kh","inj","kin"]},"51":{"input":[1,2,5,6],"tlp":["sina",3120],"trp":["has",9127],"tlw":["sinais",487],"trw":["haja",264],"lp":["sina","ansi","wh","ash","ashi","win","sain","anis","wash","siq","ank","wins"],"rp":["has","nhas","inas","nais","iaj","iaja","isq","ija"]},"52":{"input":[3,5,6],"tlp":["enh",22040],"trp":["he",69162],"trw":["he",710],"lp":["enh","eni","enin","ein","enie"],"rp":["he","nhe","ien","hei","nei","nenh","nhei","ine","inhe","nie","hen","nnie","hy","hine","hie"]},"53":{"input":[1,3,5,6],"tlp":["zen",6089],"trp":["izen",1523],"tlw":["annie",302],"lp":["zen","anei","enha","azen","anhe","eina","anie","ezen","xin","xinh"],"rp":["izen","nze","heia","inze","ixan","hae","nzen","hay","ixin","hea"]},"54":{"input":[2,3,5,6],"tlp":["senh",8286],"trp":["ind",27747],"tlw":["she",187],"trw":["keynes",525],"lp":["senh","din","endi","dinh","ensi","eij"],"rp":["ind","ndi","iden","nid","indi","jei","hes","nsid","ndid","nsei","inde","hesi","ines","hid"]},"55":{"input":[1,2,3,5,6],"tlw":["ainda",11235],"trw":["had",467],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tin",38604],"trp":["nti",28083],"tlw":["bit",131],"lp":["tin","tinh","bi","th","vin","bit","vinh","bin"],"rp":["nti","int","nv","ntin","ib","niv","inv","nit","nvi","ith","ibi","ht"]},"57":{"input":[1,4,5,6],"tlp":["abi",11269],"trp":["hav",21186],"tlw":["tinha",19974],"trw":["havia",12654],"lp":["abi","fin","bai","van","bia","fina","abia","anti","vant"],"rp":["hav","havi","inf","iant","nfi","hava","nif","nav","ntia","inta","nifi"]},"58":{"input":[2,4,5,6],"tlp":["ch",51196],"trp":["nci",30934],"tlw":["this",245],"trw":["nick",345],"lp":["ch","cin","stin","cinc","chi","sint","sib"],"rp":["nci","inc","nic","hist","inci","inst","inic","nici","nist","nsci","nch","nsti","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",4759],"trw":["jack",1117],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",15708],"trp":["inte",16818],"tlw":["the",5095],"trw":["neve",796],"lp":["enti","bri","rin","ven","the","tenh","vent","vern","env"],"rp":["inte","her","ient","nve","heir","ntei","neir","nver","here","nive","ntir"]},"61":{"input":[1,3,4,5,6],"tlw":["tenha",2165],"trw":["haver",852],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sentir",1575],"trw":["interesse",884],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["diante",2499],"trw":["instante",1219],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2403],"trw":["o",225240],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",290064],"trp":["oa",20855],"tlw":["ao",31621],"lp":["ao","aao"],"rp":["oa","oao"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",163724],"trp":["os",421052],"tlw":["so",11721],"trw":["os",73145],"lp":["so","sso","sos","ssos","soo"],"rp":["os","oss","osso","oso","osos","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["sao",23278],"trp":["oas",8168],"tlw":["sao",10362],"lp":["sao","soa","aos","ssoa","soas","aso","ssao","asso","wo","asos","woo","asao"],"rp":["oas","ossa","osa","ow","osas","osao","owa","osw"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",6725],"trp":["oe",22866],"trw":["-",58877],"lp":["eo","e-","e-o"],"rp":["oe","o-","-e","-o","o-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",11510],"trp":["ox",5327],"trw":["-a",77],"lp":["xo","a-","exo","xao","eao","xoe","exao","xa-","xe-","e-a","axo","axoe","exoe","ao-","a-a"],"rp":["ox","-a","oxa","oxo","-a-"]},"70":{"input":[2,3,7],"tlp":["do",416137],"trp":["od",73365],"tlw":["do",90461],"trw":["-se",74],"lp":["do","dos","esso","edo","eso","dedo","edos","soe","soes","doe","do-"],"rp":["od","ode","odo","oes","-s","-se","odos","osse","ose"]},"71":{"input":[1,2,3,7],"tlp":["ado",79015],"trp":["oda",11723],"tlw":["dado",976],"lp":["ado","ados","dado","sado","dao","a-s","a-se","xado","sexo","eado","xos","da-","dosa","adao","xoes","exos"],"rp":["oda","odas","oeda","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",290254],"trp":["ot",25787],"tlw":["to",1894],"lp":["to","go","tot","tto","got","tog","gt","gto","too","gg","goo"],"rp":["ot","og","ogo","oto","ott","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["fo",73193],"trp":["of",13544],"tlw":["tao",9962],"trw":["of",1931],"lp":["fo","ga","ag","tao","ago","ato","aga","fato","fog","tota","gat","fogo","fot","foto","gao","tag","tato"],"rp":["of","ota","oga"]},"74":{"input":[2,4,7],"tlp":["co",405580],"trp":["oc",76923],"tlw":["gosto",1191],"lp":["co","sto","tos","cos","sco","gos","gost","cost","soc","toc","stos","cto","goc","coc","scoc","coco"],"rp":["oc","ost","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cao",52031],"trp":["oca",15079],"tlw":["caso",3450],"lp":["cao","acao","aco","fos","foss","stao","caso","gas","sag","acos","sof","atos","sfo","saco","toca","asto"],"rp":["oca","osta","ocas","otas"]},"76":{"input":[3,4,7],"tlp":["ro",189615],"trp":["or",300995],"tlw":["george",652],"trw":["or",278],"lp":["ro","eg","ge","tro","gr","rg","tor","rto","erg","gor","ero","rro","eto","erto"],"rp":["or","ort","orr","ore","orre","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",35880],"trp":["ora",47672],"tlw":["agora",9502],"trw":["ora",1045],"lp":["for","gar","gra","ega","age","aro","fora","agor","gora","arg","egar","rof","arro","rox","rao","rga","fort","agr"],"rp":["ora","orta"]},"78":{"input":[2,3,4,7],"tlp":["ros",31755],"trp":["oce",38021],"tlw":["todos",10399],"lp":["ros","cor","tod","seg","todo","dor","esco","eco","coe","coes","corr","esto","tros","sor","roc"],"rp":["oce","ord","oder","ores","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",5405],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",187963],"trw":["no",51404],"lp":[],"rp":["ou","no","on","un","nu","nun","nou","ono","uo","nuo","uou","nuou","onn","uno","onou","oou","oun","non","oon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",415783],"trp":["ua",141069],"tlw":["ano",2467],"trw":["nao",106447],"lp":["qu","qua","quan","aqu","ano","au","anu","anqu"],"rp":["ua","nao","uan","nqu","ona","nqua","naqu","nua","una","oq","oqu","uq"]},"82":{"input":[2,5,7],"tlp":["su",74848],"trp":["us",60120],"tlw":["sou",2630],"trw":["nos",20778],"lp":["su","sou","son","ssu","sus","ssou","sun"],"rp":["us","nos","ons","jo","ju","noss","uns","oj","jun","nso","uj","uso","nsou"]},"83":{"input":[1,2,5,7],"tlp":["sua",42963],"trp":["uas",22607],"tlw":["sua",31618],"trw":["nossa",3352],"lp":["sua","anos","suas","quas","squ","aus","ausa","aju","assu","sau"],"rp":["uas","usa","nsao","joa","uja","usan","oja","joao","usao","onsa"]},"84":{"input":[3,5,7],"tlp":["eu",147300],"trp":["ue",347032],"tlw":["eu",43591],"trw":["you",709],"lp":["eu","eno","eun","eon","eu-","enou"],"rp":["ue","uen","u-","one","ou-","ueno","n-","yo","oen","you","ueu","nou-","nue","-n"]},"85":{"input":[1,3,5,7],"tlp":["que",325065],"trp":["ux",2970],"tlw":["que",242225],"trw":["-nao",146],"lp":["que","aque","equ","quen","eque","enqu","xou","xu","exu","xua","exua"],"rp":["ux","uena","nque","uxa","oque","uxo","oux","uxe","ouxe"]},"86":{"input":[2,3,5,7],"tlp":["seu",45915],"trp":["ndo",102634],"tlw":["seu",30091],"trw":["onde",9124],"lp":["seu","eus","du","endo","deu","seus","enos","deus"],"rp":["ndo","ud","ond","und","onde","udo","undo","onse","ude","u-s","u-se","ndeu"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",23534],"trw":["usando",884],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",87969],"trp":["nto",82230],"tlw":["tu",788],"trw":["notou",383],"lp":["gu","tu","bo","tou","gun","gunt"],"rp":["nto","ont","ut","ob","ng","out","unt","ntou","ug","ub","unto","ngu","uto","ong"]},"89":{"input":[1,4,5,7],"tlp":["anto",26539],"trp":["uant",14606],"tlw":["quanto",4990],"trw":["nota",549],"lp":["anto","fu","gua","gan","fun","atu","tua","ang","agu","agua","fon","abo"],"rp":["uant","onta","ntao","uga","uta","onf","unta","nfo"]},"90":{"input":[2,4,5,7],"tlp":["con",88877],"trp":["uc",20930],"tlw":["sob",2880],"trw":["junto",1728],"lp":["con","cu","cont","cons","sob","cou","scu","stou","cob","guns"],"rp":["uc","nco","ntos","ouc","uco","unc","ouco","ncon","ocu","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["boca",2277],"trw":["nunca",7198],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",36495],"trp":["ur",58598],"tlw":["gente",3137],"trw":["outro",7994],"lp":["ento","egu","ru","gue","rou","tur","rgu","gen","ergu"],"rp":["ur","uer","obr","utr","outr","obre","ontr","utro","onte","ntro","uro"]},"93":{"input":[1,3,4,5,7],"tlw":["entao",11118],"trw":["outra",6635],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",14110],"trw":["outros",5996],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grande",7378],"trw":["outras",3514],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["io",92146],"trw":["l",496],"lp":[],"rp":["io","lo","ol","li","oi","il","ili","olo","oli","ll","ilo","ill","lio","iol","oll","oio","lli","ilio","loo","illi"]},"97":{"input":[1,6,7],"tlp":["al",200651],"trp":["la",162745],"tlw":["ali",4130],"trw":["la",8495],"lp":["al","ala","ali","aio","alo","zo","alia","zao","azao"],"rp":["la","oz","lia","ial","ola","liz","iao","ilia","ozi","ila","liza"]},"98":{"input":[2,6,7],"tlp":["sol",10331],"trp":["ois",42788],"tlw":["sol",2060],"trw":["isso",18569],"lp":["sol","sil","sio","sl","ssio","soli","solo"],"rp":["ois","isso","ios","los","iso","ossi","osi","ls","lis","lso","ioso","ols","ok"]},"99":{"input":[1,2,6,7],"tlp":["sal",8453],"trp":["oisa",15190],"tlw":["sala",3032],"trw":["las",303],"lp":["sal","sala","asil","wil","will","soz","sozi","soal","alis","alos","alas","als"],"rp":["oisa","las","isao","iosa","lass","lias","lsa","olsa"]},"100":{"input":[3,6,7],"tlp":["el",253859],"trp":["le",167939],"tlw":["ele",53580],"trw":["lei",1081],"lp":["el","ele","elo","eio","eli","e-l","e-lo","ell"],"rp":["le","lei","ole","-l","ile","-lo","leo","lie","ioe","ilei","oel","iole"]},"101":{"input":[1,3,6,7],"tlp":["ela",75025],"trp":["ixo",8660],"tlw":["ela",31605],"trw":["lixo",278],"lp":["ela","ale","eal","aixo","eliz","eixo","eali","a-l","alei","ael","a-lo"],"rp":["ixo","oxi","lex","oze","-la","lez","leza","ia-","lea"]},"102":{"input":[2,3,6,7],"tlp":["del",18683],"trp":["ido",37514],"tlw":["eles",10957],"trw":["ido",578],"lp":["del","eles","dele","doi","dois","elos","sido","dio","dido","sile","sel","dol"],"rp":["ido","les","odi","lid","ld","idos","ilid","old"]},"103":{"input":[1,2,3,6,7],"tlw":["dela",4626],"trw":["lado",7350],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",89842],"trp":["ito",55627],"tlw":["tio",740],"trw":["logo",3653],"lp":["vo","gi","vol","volt"],"rp":["ito","ig","lt","ov","lg","igo","olt","lv","oit","ovo","lto","liv","log","ivo","lig","lti"]},"105":{"input":[1,4,6,7],"tlp":["alg",28147],"trp":["lta",14607],"tlw":["foi",19254],"lp":["alg","tal","foi","fal","alt","fil","fala","alv","val","agi","alav","talv","fl","voz","gia"],"rp":["lta","iga","ova","olta","lav"]},"106":{"input":[2,4,6,7],"tlp":["voc",35885],"trp":["ico",23673],"tlw":["visto",1856],"trw":["isto",3322],"lp":["voc","coi","cio","cois","cl","col","vos","cil","colo","sig","scol"],"rp":["ico","lic","isto","itos","oci","loc","igos","icio","lc"]},"107":{"input":[1,2,4,6,7],"tlw":["coisa",9623],"trw":["local",1110],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",30701],"trp":["iro",27990],"tlw":["rio",2083],"trw":["livro",2336],"lp":["rio","vel","eiro","eito","tori","rel","rig","erio","tel","rito","rov"],"rp":["iro","ori","ior","lev","ove","lve","ivel","oite","orri"]},"109":{"input":[1,3,4,6,7],"tlw":["talvez",5564],"trw":["levar",1384],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voce",31586],"trw":["livros",1191],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["claro",3392],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",111008],"trw":["olhou",3514],"lp":[],"rp":["ho","lh","ui","ul","lho","nho","olh","iu","lu","ilh","olho","onh","hu","uni","ulh","inu","ulo","lin","hou","ino"]},"113":{"input":[1,5,6,7],"tlp":["qui",23334],"trp":["lha",27941],"tlw":["aqui",6587],"trw":["luz",3303],"lp":["qui","qual","alh","aqui","alq","alqu","alha"],"rp":["lha","ual","lan","nal","olha","uz","lq","lqu","ualq","ilha","inal","iona","ula"]},"114":{"input":[2,5,6,7],"tlp":["sul",3044],"trp":["hos",17929],"tlw":["sonhos",1378],"trw":["olhos",8588],"lp":["sul","sonh","sion","solu","sui","sino"],"rp":["hos","lhos","uis","onsi","nhos","hoj","usi","ulos","lus","jul","inos","ijo","ku","loj"]},"115":{"input":[1,2,5,6,7],"tlw":["quais",1786],"trw":["loja",754],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elh",18680],"trp":["lhe",25233],"trw":["lhe",9996],"lp":["elh","elho","enho","enhu","elen"],"rp":["lhe","uel","len","uele","onhe","ulhe","nel","uei","olhe","in-","ilen","ly","-lh","-lhe","nele"]},"117":{"input":[1,3,5,6,7],"tlw":["aquele",3696],"trw":["naquele",1801],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["disse-lhe",457],"trw":["hoje",2804],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aqueles",1766],"trw":["olhando",2030],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gui",16504],"trp":["uit",26642],"tlw":["vou",3725],"trw":["novo",4638],"lp":["gui","bl","gin"],"rp":["uit","lgu","uito","uv","nov","ing","ouv","ult","uvi","itu","ouvi","noit","lug","ingu","onti","long","onv"]},"121":{"input":[1,4,5,6,7],"tlw":["filho",2705],"trw":["nova",2638],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2400],"trw":["unico",1538],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["alguns",5675],"trw":["unica",1846],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tenho",3664],"trw":["noite",6059],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["qualquer",7063],"trw":["lugar",5157],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["senhor",5213],"trw":["jeito",1631],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["fazendo",2599],"trw":["historia",3341],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",1293],"trw":["p",1742],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",54655],"trp":["pa",230757],"trw":["papa",278],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",45986],"trp":["ps",1182],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",5532],"trp":["pas",19597],"trw":["passa",679],"lp":["spa","sap","sapa","asp","apas","aps","ssap"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",29704],"trp":["pe",179445],"trw":["pe",2387],"lp":["ep","epe","e'"],"rp":["pe","pee","''"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",14035],"trp":["pape",2221],"lp":["ape","xp","exp","epa","xpe","expe","xpa","expa","a'"],"rp":["pape","'a","pea","px"]},"134":{"input":[2,3,8],"tlp":["esp",37689],"trp":["pes",22163],"trw":["pes",1833],"lp":["esp","spe","espe","dep","depe","sep","desp","sesp","sped","spes","d'","eps","ssep"],"rp":["pes","pess","ped","pede","pd","'s","'d"]},"135":{"input":[1,2,3,8],"tlp":["espa",4992],"trp":["pad",5872],"tlw":["espada",1207],"trw":["pesada",361],"lp":["espa","apes","esap","spad","aspe","sepa","depa","d'a","xped","epas","spea","spx","aspx"],"rp":["pad","pesa","pada","peda","pade"]},"136":{"input":[4,8],"tlp":["tp",287],"trp":["pt",3485],"trw":["pt",2780],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apat",596],"trp":["pat",2789],"tlw":["tapa",93],"lp":["apat","tap","apt","tapa","apta"],"rp":["pat","pata","pta"]},"138":{"input":[2,4,8],"trp":["pc",1162],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",9324],"trp":["pac",6453],"tlw":["capa",572],"trw":["pasta",248],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","pca","paca","past","pact","patc"]},"140":{"input":[3,4,8],"tlp":["rep",8013],"trp":["pr",132035],"trw":["peter",441],"lp":["rep","rp","repe","rpr","rpre","epr","epre","epet","repr","erp"],"rp":["pr","per","pre","pert","pet","pret","pree","prep","pete","pere"]},"141":{"input":[1,3,4,8],"tlp":["apar",7369],"trp":["par",142915],"tlw":["tapete",247],"trw":["para",95245],"lp":["apar","apr","rap","apre","epar","rapa","xper","repa","xpr","expr","xpre","aper"],"rp":["par","para","pare","part","pra","pera","prat","perf"]},"142":{"input":[2,3,4,8],"tlp":["resp",11738],"trp":["pres",18252],"tlw":["espere",312],"trw":["perder",886],"lp":["resp","sper","spec","depr","cep","epc","cepc","spet","rsp"],"rp":["pres","prec","pec","perd","perc","pedr","pect","pers","pesc","pred","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["apesar",1985],"trw":["parece",2731],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",67484],"trw":["m",1887],"lp":[],"rp":["mp","mm","pn","mn","nm"]},"145":{"input":[1,5,8],"tlp":["am",185140],"trp":["ma",359934],"tlw":["ama",422],"trw":["ma",502],"lp":["am","ama","amp","aman","ampa","apan"],"rp":["ma","man","mpa","pan","mana","mpan","nam","mam","maq","pam","mama","map","mapa","nama"]},"146":{"input":[2,5,8],"tlp":["sm",24615],"trp":["nsp",908],"lp":["sm"],"rp":["nsp","nsm","ms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7995],"trp":["mas",58930],"tlw":["sam",195],"trw":["mas",44387],"lp":["sam","sma","span","asam","asm","ssam","amas","smas","asma","ansp","ansm"],"rp":["mas","jam","nsam","jama","mass","jap","maj","mans","mpas"]},"148":{"input":[3,5,8],"tlp":["em",283802],"trp":["me",270378],"tlw":["em",82946],"trw":["me",23412],"lp":["em","emp","eme","emen","epen","empe","emm","eem"],"rp":["me","men","pen","mem","nem","mpe","my","mpen","n'","mmy","pene","ym"]},"149":{"input":[1,3,5,8],"tlp":["ame",42844],"trp":["pena",8675],"tlw":["emma",305],"trw":["mae",5046],"lp":["ame","amen","ema","apen","eman","xem","exem","xemp","xam","exam"],"rp":["pena","mae","peq","mane","name","mea","mame","max","pame","nema"]},"150":{"input":[2,3,5,8],"tlp":["sem",29109],"trp":["mes",30950],"tlw":["sem",13046],"trw":["meses",1641],"lp":["sem","esm","dem","semp","ssem","dm","sme","esme","smen","seme"],"rp":["mes","mesm","pens","med","mens","pend","mese","mend","ndep","mped"]},"151":{"input":[1,2,3,5,8],"tlw":["apenas",7324],"trw":["mesma",4037],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",964],"trp":["mb",32610],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",28816],"trp":["mat",4959],"tlw":["fama",211],"trw":["matt",334],"lp":["tam","amb","tamb","fam","atam","tama","amba","tamp","bam","abam","atm"],"rp":["mat","mant","mba","ntam","mata","pant","mbat","mpat","matt"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",156],"trp":["mc",119],"tlw":["cm",85],"lp":["cm","cmm"],"rp":["mc","mcc"]},"155":{"input":[1,2,4,5,8],"tlw":["cama",2189],"trw":["maca",202],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",41396],"trp":["ment",85913],"tlw":["bem",13447],"trw":["mente",2130],"lp":["rm","tem","bem","temp","emb","rem","empr","erm","rme","embr","term"],"rp":["ment","mpr","mpre","mer","mbr","mbe","mbem","met","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["tambem",10764],"trw":["mar",1598],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",8109],"trw":["presente",1043],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["certamente",1039],"trw":["pensar",2492],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",24405],"lp":[],"rp":["pi","ip","ipi","pip","ppi","ipp","pipp","ippi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",7700],"trp":["pai",11844],"trw":["pai",5571],"lp":["api","apaz","apai","zap","apia","zip"],"rp":["pai","paz","ipa","pia","ipai","piz","pizz","pazz"]},"162":{"input":[2,6,8],"tlp":["spi",5606],"trp":["isp",2854],"lp":["spi","sip","ssip"],"rp":["isp","pis","psi"]},"163":{"input":[1,2,6,8],"tlp":["apis",171],"trp":["pais",4098],"trw":["pais",2931],"lp":["apis","spia"],"rp":["pais","ispa","pisa","pias"]},"164":{"input":[3,6,8],"tlp":["epi",511],"trp":["pei",5264],"lp":["epi"],"rp":["pei","ipe","i'","pie","pipe"]},"165":{"input":[1,3,6,8],"tlp":["apei",323],"trp":["paix",1055],"trw":["peixe",323],"lp":["apei","a'z","a'za","zipe"],"rp":["paix","paze","peix","pez","peza","'z","'za","peia"]},"166":{"input":[2,3,6,8],"tlp":["espi",3719],"trp":["pedi",4130],"trw":["pedi",235],"lp":["espi","spei","disp","epis"],"rp":["pedi","pid","pide","peis","pied","ipes","i'd","ispe","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",129],"trw":["paises",490],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",3741],"trp":["pit",4493],"lp":["tip","tipi"],"rp":["pit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3841],"trp":["pita",2323],"lp":["apit","vap","apav"],"rp":["pita","pati","pav","pava","pavi"]},"170":{"input":[2,4,6,8],"tlp":["cip",5141],"trp":["pist",660],"lp":["cip","cipi","spit","scip"],"rp":["pist","pisc","psic","icip","pic","ipic","ipc","pci","ipci"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1624],"trw":["passava",922],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",238],"trp":["pri",25730],"tlw":["repetir",222],"trw":["piper",124],"lp":["rip","trip","repi","tepi","epit"],"rp":["pri","peri","pir","peit","piri","peti","prie","priv","prev","pire","prir","iper","it'","prei","ptei"]},"173":{"input":[1,3,4,6,8],"tlw":["rapaz",1561],"trw":["partir",1512],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1783],"trw":["pedir",815],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["esperava",1003],"trw":["parecia",5095],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",105296],"trw":["mim",6113],"lp":[],"rp":["im","mi","min","minh","imp","mim","nim","imi","mini","pin","ph","inim","nimi","pini","imin","mpi","hip","phi","imm","him"]},"177":{"input":[1,5,6,8],"tlp":["ami",18005],"trp":["mai",54885],"tlw":["amanha",798],"trw":["minha",12630],"lp":["ami","amin","anim","amai","ziam","aph"],"rp":["mai","ima","iam","ham","nham","mina","manh","hama","panh","nima","mia","impa","inam","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",20054],"trp":["mis",5228],"tlw":["sim",4845],"trw":["jim",693],"lp":["sim","ssim","simp","smi","spin","smis","sism","simi"],"rp":["mis","miss","jim","ism","mik","nism","insp","jimm","nspi","nsmi","mins","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["assim",9572],"trw":["mais",42140],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2072],"trp":["ime",24625],"trw":["i'm",90],"lp":["emi","eph","emin","eim"],"rp":["ime","mei","imen","imei","meni","impe","inem","penh","immy","hem","mine","ymi","mie","peni","phie","pime"]},"181":{"input":[1,3,5,6,8],"trw":["menina",1204],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seph",283],"trw":["pensei",1244],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demais",2703],"trw":["medida",966],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",10629],"trp":["mit",5096],"tlw":["vim",252],"trw":["http",287],"lp":["tim","vim","timi","thm","bmi"],"rp":["mit","ntim","miti","imit","mbi","itim","imb","pint","itm","mbin","htm","http","mith","mint","himb"]},"185":{"input":[1,4,5,6,8],"tlw":["tinham",4868],"trw":["haviam",2041],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",280],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["cima",3152],"trw":["incapaz",367],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",1339],"trw":["permitir",306],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["fazem",993],"trw":["primeira",3896],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["devem",852],"trw":["presidente",1153],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["estavam",5892],"trw":["imediatamente",1406],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",224923],"trw":["po",410],"lp":[],"rp":["po","op","opo","pop","opp","oop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",6185],"trp":["opa",1837],"trw":["pao",557],"lp":["apo","apao"],"rp":["opa","pao","papo","popa"]},"194":{"input":[2,7,8],"tlp":["spo",12061],"trp":["pos",28599],"trw":["posso",2774],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","osp","pso","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",2721],"trp":["posa",1096],"tlw":["apos",1872],"trw":["passo",1318],"lp":["apos","sapo","sopa","apso"],"rp":["posa","opas","pow"]},"196":{"input":[3,7,8],"tlp":["epo",16405],"trp":["ope",1755],"trw":["poe",134],"lp":["epo","eop","eopo","e-p"],"rp":["ope","poe","o'","peo","peop","-p","oope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",537],"trp":["peao",87],"lp":["xpo","expo"],"rp":["peao"]},"198":{"input":[2,3,7,8],"tlp":["depo",14313],"trp":["pod",31617],"tlw":["espesso",79],"trw":["pode",9510],"lp":["depo","espo","epos","spoe"],"rp":["pod","pode","peso","pose","ospe","pos-","poes","osep","opes"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",847],"trw":["pessoas",7432],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1854],"trp":["pot",800],"tlw":["topo",438],"lp":["top","topo"],"rp":["pot","opt","pg","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["apag",291],"trp":["pag",4975],"trw":["pag",402],"lp":["apag","apg","apto"],"rp":["pag","paga","pato","pago","opag","opat"]},"202":{"input":[2,4,7,8],"tlp":["cop",1332],"trp":["post",6329],"tlw":["copo",522],"trw":["posto",634],"lp":["cop","copo","copt","coop"],"rp":["post","poc","poco","opc","pco","opco","pgc","pgcs"]},"203":{"input":[1,2,4,7,8],"tlw":["sapatos",482],"trw":["opcao",191],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",10909],"trp":["por",83084],"tlw":["reporter",133],"trw":["por",51332],"lp":["rop","ropr","rpo","ropo"],"rp":["por","pro","port","perg","prop","opr","orp","orpo","peg","pore","preo","preg","pero","opor","pego","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["aeroporto",244],"trw":["porta",4885],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",3692],"trw":["poder",3010],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["resposta",1706],"trw":["professor",1075],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",243291],"trw":["um",108193],"lp":[],"rp":["um","om","mo","mu","omo","mpo","omp","pu","num","pon","up","pou","mun","mon","nom","mom","upo","mou","omu","oup"]},"209":{"input":[1,5,7,8],"tlp":["amo",18697],"trp":["uma",107111],"tlw":["amo",321],"trw":["uma",83293],"lp":["amo","ampo","apon","amou","aum"],"rp":["uma","mao","oma","upa","numa","ompa","uman","oman","pau","mano","oupa","onam","maqu","mau","namo"]},"210":{"input":[2,5,7,8],"tlp":["smo",16965],"trp":["mos",29583],"tlw":["som",1252],"trw":["pousou",166],"lp":["smo","spon","som","sup","susp","sum","supo","somo","smos","ssum","spu"],"rp":["mos","mpos","mus","usp","omos","mons","pons","upos","pous"]},"211":{"input":[1,2,5,7,8],"tlw":["soma",177],"trw":["maos",4073],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",14088],"trp":["ome",42557],"trw":["meu",13196],"lp":["emo","empo","emon"],"rp":["ome","meu","uem","omen","meno","omem","ume","mome","nome","nume","upe","umen","-m","-me","ompe","peu","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["quem",7441],"trw":["pequeno",2129],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"trw":["mesmo",14794],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",277],"trw":["pensando",1275],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gum",14061],"trp":["mbo",6406],"tlw":["bom",4344],"trw":["ponto",2616],"lp":["gum","tom","bom","tum","ttom","tomo","tmo","gm"],"rp":["mbo","pont","omb","mot","mont","pub","put","pob","mput","moto","umb","utom"]},"217":{"input":[1,4,5,7,8],"tlw":["apontou",487],"trw":["ponta",807],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",79743],"trw":["pouco",7236],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1321],"trw":["moca",1091],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",10746],"trw":["momento",4691],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",4643],"trw":["porque",9040],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comecou",3483],"trw":["ombros",1499],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["estamos",1849],"trw":["pensamentos",1108],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22248],"trw":["polo",95],"lp":[],"rp":["pl","poi","pol","pli","ipo","plo","poli","lp","pio","opi","ipio","pil","olp","ppl","poio","lop","pilo","ipl","lip","ipli"]},"225":{"input":[1,6,7,8],"tlp":["apoi",894],"trp":["pal",9950],"tlw":["apoio",472],"trw":["paola",89],"lp":["apoi","alp","appl","apl","apli","apol","apla","alpa"],"rp":["pal","pla","pala","ipal","lpa","pali","lap","poia","opia","pila","lapi","palp"]},"226":{"input":[2,6,7,8],"tlp":["spio",144],"trp":["pois",18374],"trw":["pois",4416],"lp":["spio","spl"],"rp":["pois","posi","ispo","plos","ospi","piso","ipos","pios","psl"]},"227":{"input":[1,2,6,7,8],"trw":["lapis",171],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epoi",14052],"trp":["pel",32898],"trw":["pelo",11997],"lp":["epoi","epl","epli","elop","elip","eple"],"rp":["pel","pelo","ple","pele","lpe","olpe","pple","pole","lope","poei","lipe","leop","l'","peli"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",759],"trw":["pela",10602],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["depois",13958],"trw":["pelos",3503],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["explosao",225],"trw":["podia",5600],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",3460],"trp":["pov",1630],"tlw":["tipo",3053],"trw":["povo",1274],"lp":["tipo","golp","gip","tipl"],"rp":["pov","povo","ipot","polt","pito","polv","pig","ltip"]},"233":{"input":[1,4,6,7,8],"tlw":["galpao",98],"trw":["patio",409],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",407],"trw":["politico",317],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capitao",887],"trw":["policia",1169],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",619],"trw":["proprio",2614],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["propria",2409],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["respeito",2148],"trw":["possivel",2464],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["rapido",1145],"trw":["poderia",4184],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mui",26105],"trw":["mil",1923],"lp":[],"rp":["mui","lm","hom","mpl","mil","hum","mul","imo","mulh","omi","impo","nhum","mili","impl","lim","minu","ompl","pul","mplo","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1095],"trw":["mal",2849],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["suponho",319],"trw":["possui",298],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almas",218],"trw":["humanos",876],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elmo",138],"trw":["homem",8542],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["alem",3586],"trw":["nenhuma",2224],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simples",1787],"trw":["homens",5348],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zaphod",507],"trw":["podiam",1009],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tumulo",138],"trw":["muito",18767],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["alguma",5734],"trw":["ultima",1690],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comigo",1864],"trw":["muitos",2820],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["algumas",3503],"trw":["muitas",2792],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["vermelho",829],"trw":["melhor",5197],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["alguem",4202],"trw":["maior",3758],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["simplesmente",1695],"trw":["mulheres",2796],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["completamente",1313],"trw":["marido",1424],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",311],"tlw":["a",279974],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",199930],"tlw":["s",1267],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",403955],"tlw":["as",56128],"lp":["as","sa","ssa","ass","sas","asa","assa","ssas","wa","was","ww","sass","asas","www","aw","awa","sw","swa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4232],"tlw":["e",282983],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",35539],"tlw":["x",299],"lp":["ex","xa","ea","ae","xe","exe","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603738],"tlw":["de",316379],"lp":["de","es","se","ess","sse","des","ed","esse","ese","ses","dess","dese","ede","eses","sses","sd","esd","sde","desd","esde"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",290653],"tlw":["da",79087],"lp":["da","ad","ade","ada","dad","dade","das","essa","esa","ase","sad","asse","eda","ades","adas","ssad","desa","edad","sada","sex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",2738],"tlw":["t",692],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",336586],"tlw":["ta",503],"lp":["ta","at","fa","ata","af","fat","tat","afa","ff","ft","att","tata","taf","atat","ataf","tf","fata","aft","tfa","tta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",220589],"tlw":["c",936],"lp":["st","sc","ct","tc","cc","ts","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",291876],"tlw":["casa",8888],"lp":["ca","sta","ac","aca","cas","tas","casa","ast","fac","stas","sca","tac","asta","sf","cac","sac","taca","caca","asc","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",412432],"tlw":["ter",11405],"lp":["er","te","re","tr","rt","ter","rr","et","tre","ere","ert","rte","err","rre","ret","terr","ete","etr","rer","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",489515],"tlw":["era",37427],"lp":["ra","ar","ara","era","tra","fe","tar","are","rta","ate","art","rar","fr","eta","ef","rra","atr","fer","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",130667],"tlw":["ser",18726],"lp":["est","ce","ec","res","ser","rec","rd","cr","esc","tes","ece","ste","rc","der","cer","str","erd","este","rece","ces"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",82829],"tlw":["esta",19307],"lp":["esta","car","ras","eca","cad","tad","rac","rad","sar","arec","rda","dar","tras","raca","cada","erda","ard","star","stra","rca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",5010],"trw":["n",1260],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",281535],"trp":["na",264338],"tlw":["q",346],"trw":["na",47469],"lp":["an","aq","ana","ann","anq","anna","anan","aan"],"rp":["na","nq","naq","nan","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",220],"trp":["ns",77600],"trw":["j",385],"lp":["sn","sj"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["san",8808],"trp":["ja",39162],"tlw":["san",234],"trw":["ja",13037],"lp":["san","ans","aj","sq","ssan","ansa","anas","anj","aja","anja","ajan","wn"],"rp":["ja","nas","nsa","jan","nsan","jas","nja","nsas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",399933],"trp":["ne",63763],"tlw":["en",763],"trw":["y",1207],"lp":["en","ene","een","ey","enn","enny","eyn","eyne","enen","enne"],"rp":["ne","nen","ny","nny","yn","yne","ney","nne","ye","ynn"]},"21":{"input":[1,3,5],"tlp":["ena",18156],"trp":["ya",615],"tlw":["any",171],"lp":["ena","ane","eq","enq","xan","ay","ean","anny","anea","enx","aen","any","enxe","anen"],"rp":["ya","nea","nx","nxe","nex","nexa"]},"22":{"input":[2,3,5],"tlp":["sen",38594],"trp":["nd",184626],"tlw":["eyes",75],"trw":["nesse",1917],"lp":["sen","end","ens","den","ej","ende","sej","esen","esej","send","eend","sens"],"rp":["nd","nde","je","nse","nes","ness","nden","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",82846],"trp":["nda",26353],"tlw":["seja",3811],"trw":["nada",9040],"lp":["and","ensa","ande","eja","enas","dan","anda","seja","esq","daq","sand","enda","dand","seq"],"rp":["nda","nad","nada","jane","nand","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",711],"trp":["nt",380933],"tlw":["b",631],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",80565],"trp":["nta",60116],"tlw":["tanta",767],"lp":["ant","ab","ba","tan","tant","aba","anta","ban","bat","fan","aban","fant","taq","bata","tab"],"rp":["nta","nf","ntan","nat","ntat"]},"26":{"input":[2,4,5],"tlp":["bs",6193],"trp":["nc",98606],"lp":["bs","bj","cn","bst","sb","bsc","bc"],"rp":["nc","nst","nsc","nts"]},"27":{"input":[1,2,4,5],"tlp":["anc",29762],"trp":["nca",33491],"tlw":["tantas",546],"lp":["anc","sab","cab","anca","can","stan","bas","acab","caba","tanc","bast","cant","sant"],"rp":["nca","ntas","ncas","nsta","nac","nsac","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",207420],"trp":["nte",165647],"tlw":["entre",8275],"trw":["net",250],"lp":["ent","ente","be","br","ten","entr","ren","rn","bre","ber","eb","rent","ern","tent","eren"],"rp":["nte","ntr","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",42850],"trp":["ntra",17480],"tlw":["frente",4513],"trw":["nate",648],"lp":["ran","ante","enta","abe","bra","rq","rna","rab","tran","trab","raba","bar","rant","aber","abr","rtan","fren"],"rp":["ntra","ntar","nar"]},"30":{"input":[2,3,4,5],"tlp":["enc",39246],"trp":["ntes",21043],"tlw":["entender",1104],"trw":["neste",1524],"lp":["enc","sent","cen","dent","tend","bec","cent","ceb","tenc","rend","cebe","renc","rceb"],"rp":["ntes","nce","nder","ntec","nec","nece","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["antes",8436],"trw":["jantar",1170],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1421],"trw":["i",2965],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",127585],"trp":["ia",229190],"tlw":["ai",2545],"trw":["ia",3166],"lp":["ai","az","za","zi","zia","azi","azia","aia","aza","zz","aiz","zzi"],"rp":["ia","iz","iza","izi","iai","izia","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",84867],"trp":["is",248469],"tlw":["si",3658],"trw":["is",409],"lp":["si","ssi","sis","ssis","sk","ski"],"rp":["is","iss","isi","ik","ki","issi","iki","ks"]},"35":{"input":[1,2,6],"tlp":["ais",63939],"trp":["isa",27355],"tlw":["saia",685],"lp":["ais","assi","sai","asi","wi","sia","asia","ak","saia","sias","zas","ssia","aisa"],"rp":["isa","ias","isas","issa","ka","iais","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",135404],"trp":["ie",27112],"tlw":["ei",385],"trw":["ie",93],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",41552],"trp":["ix",21958],"tlw":["xia",158],"trw":["ix",103],"lp":["ze","ez","aze","xi","eix","aix","eia","eza","eze","eixa","exi","aixa","eixe","axi","ezi","eai"],"rp":["ix","ize","ixa","ixe"]},"38":{"input":[2,3,6],"tlp":["di",149151],"trp":["id",117035],"tlw":["disse",22191],"lp":["di","dis","diss","dei","edi","sid","sei","eis","did","side","esi","essi"],"rp":["id","isse","ide","ise","idi","idei","ke","ied"]},"39":{"input":[1,2,3,6],"tlp":["dia",31205],"trp":["ida",58061],"tlw":["dia",8588],"trw":["ideia",3049],"lp":["dia","diz","deix","zes","dize","ezes","adei","deia","xis","exis","dez","dias","adi","edia","sida","dida"],"rp":["ida","idad","iad","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",136577],"trp":["it",117311],"tlw":["vi",1966],"trw":["it",901],"lp":["ti","vi","tiv","viv","vit","tit","vivi","tivi","viti","tv","vii","viii","vitt"],"rp":["it","iv","iti","ivi","itiv","itt"]},"41":{"input":[1,4,6],"tlp":["va",136327],"trp":["ita",29811],"tlw":["vai",6210],"lp":["va","av","ava","fi","tav","tava","via","faz","avi","avia","ati","vai","tia","ativ","tiva","afi"],"rp":["ita","if","ifi","iva"]},"42":{"input":[2,4,6],"tlp":["ci",126068],"trp":["ic",96581],"tlw":["civis",136],"lp":["ci","sti","tic","vis","cis","sit","siv","sic","vist","stiv","ssiv","sist","sci","ck","visi"],"rp":["ic","ist","ici","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",40513],"trp":["ica",47187],"tlw":["vista",1644],"lp":["cia","stav","fic","fica","aci","cav","fici","cava","tica","sav","cisa","cai","sava","sica","vas"],"rp":["ica","ista","ific","icia","itas"]},"44":{"input":[3,4,6],"tlp":["ri",197607],"trp":["ir",123977],"tlw":["ver",6812],"trw":["ir",3642],"lp":["ri","ve","eri","ver","ev","eir","eit","eve","rei","tir","rv","rit","tive","teri","vr","rri"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",65506],"trp":["ira",34560],"tlw":["vez",10904],"trw":["iria",1476],"lp":["ria","ari","eria","vez","eira","zer","ave","faze","rav","azer","aria","eva","fei","feit","var","arti","rava","eita"],"rp":["ira","izer"]},"46":{"input":[2,3,4,6],"tlp":["eci",33622],"trp":["iste",8299],"tlw":["tivesse",3417],"lp":["eci","vid","ves","reci","cid","cri","dir","dev","cie","ris","esti","tid","vess","ecis","rid","verd","dire","seri","deve"],"rp":["iste"]},"47":{"input":[1,2,3,4,6],"tlw":["estava",26264],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",225142],"trw":["in",1383],"lp":[],"rp":["in","nh","inh","ni","hi","ini","nin","nni","hin","nhi","hn","inin","ninh","hnn"]},"49":{"input":[1,5,6],"tlp":["anh",17458],"trp":["ha",149599],"tlw":["ah",1851],"trw":["ha",7686],"lp":["anh","ain","anha","ani","zin","zinh","ah"],"rp":["ha","nha","inha","ina","ian","han","iq","nia","nz","nina","nai","inz","hia"]},"50":{"input":[2,5,6],"tlp":["sin",6776],"trp":["nsi",8141],"tlw":["sin",78],"trw":["his",425],"lp":["sin","sh","ssin","shi","shin"],"rp":["nsi","ins","his","nis","ij","ji","inis","nsis","insi","nsin","niss","nk","kh","inj","kin"]},"51":{"input":[1,2,5,6],"tlp":["sina",3120],"trp":["has",9127],"tlw":["sinais",487],"trw":["haja",264],"lp":["sina","ansi","wh","ash","ashi","win","sain","anis","wash","siq","ank","wins"],"rp":["has","nhas","inas","nais","iaj","iaja","isq","ija"]},"52":{"input":[3,5,6],"tlp":["enh",22040],"trp":["he",69162],"trw":["he",710],"lp":["enh","eni","enin","ein","enie"],"rp":["he","nhe","ien","hei","nei","nenh","nhei","ine","inhe","nie","hen","nnie","hy","hine","hie"]},"53":{"input":[1,3,5,6],"tlp":["zen",6089],"trp":["izen",1523],"tlw":["annie",302],"lp":["zen","anei","enha","azen","anhe","eina","anie","ezen","xin","xinh"],"rp":["izen","nze","heia","inze","ixan","hae","nzen","hay","ixin","hea"]},"54":{"input":[2,3,5,6],"tlp":["senh",8286],"trp":["ind",27747],"tlw":["she",187],"trw":["keynes",525],"lp":["senh","din","endi","dinh","ensi","eij"],"rp":["ind","ndi","iden","nid","indi","jei","hes","nsid","ndid","nsei","inde","hesi","ines","hid"]},"55":{"input":[1,2,3,5,6],"tlw":["ainda",11235],"trw":["had",467],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tin",38604],"trp":["nti",28083],"tlw":["bit",131],"lp":["tin","tinh","bi","th","vin","bit","vinh","bin"],"rp":["nti","int","nv","ntin","ib","niv","inv","nit","nvi","ith","ibi","ht"]},"57":{"input":[1,4,5,6],"tlp":["abi",11269],"trp":["hav",21186],"tlw":["tinha",19974],"trw":["havia",12654],"lp":["abi","fin","bai","van","bia","fina","abia","anti","vant"],"rp":["hav","havi","inf","iant","nfi","hava","nif","nav","ntia","inta","nifi"]},"58":{"input":[2,4,5,6],"tlp":["ch",51196],"trp":["nci",30934],"tlw":["this",245],"trw":["nick",345],"lp":["ch","cin","stin","cinc","chi","sint","sib"],"rp":["nci","inc","nic","hist","inci","inst","inic","nici","nist","nsci","nch","nsti","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",4759],"trw":["jack",1117],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",15708],"trp":["inte",16818],"tlw":["the",5095],"trw":["neve",796],"lp":["enti","bri","rin","ven","the","tenh","vent","vern","env"],"rp":["inte","her","ient","nve","heir","ntei","neir","nver","here","nive","ntir"]},"61":{"input":[1,3,4,5,6],"tlw":["tenha",2165],"trw":["haver",852],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sentir",1575],"trw":["interesse",884],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["diante",2499],"trw":["instante",1219],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2403],"trw":["o",225240],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",290064],"trp":["oa",20855],"tlw":["ao",31621],"lp":["ao","aao"],"rp":["oa","oao"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",163724],"trp":["os",421052],"tlw":["so",11721],"trw":["os",73145],"lp":["so","sso","sos","ssos","soo"],"rp":["os","oss","osso","oso","osos","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["sao",23278],"trp":["oas",8168],"tlw":["sao",10362],"lp":["sao","soa","aos","ssoa","soas","aso","ssao","asso","wo","asos","woo","asao"],"rp":["oas","ossa","osa","ow","osas","osao","owa","osw"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",6725],"trp":["oe",22866],"trw":["-",58877],"lp":["eo","e-","e-o"],"rp":["oe","o-","-e","-o","o-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",11510],"trp":["ox",5327],"trw":["-a",77],"lp":["xo","a-","exo","xao","eao","xoe","exao","xa-","xe-","e-a","axo","axoe","exoe","ao-","a-a"],"rp":["ox","-a","oxa","oxo","-a-"]},"70":{"input":[2,3,7],"tlp":["do",416137],"trp":["od",73365],"tlw":["do",90461],"trw":["-se",74],"lp":["do","dos","esso","edo","eso","dedo","edos","soe","soes","doe","do-"],"rp":["od","ode","odo","oes","-s","-se","odos","osse","ose"]},"71":{"input":[1,2,3,7],"tlp":["ado",79015],"trp":["oda",11723],"tlw":["dado",976],"lp":["ado","ados","dado","sado","dao","a-s","a-se","xado","sexo","eado","xos","da-","dosa","adao","xoes","exos"],"rp":["oda","odas","oeda","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",290254],"trp":["ot",25787],"tlw":["to",1894],"lp":["to","go","tot","tto","got","tog","gt","gto","too","gg","goo"],"rp":["ot","og","ogo","oto","ott","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["fo",73193],"trp":["of",13544],"tlw":["tao",9962],"trw":["of",1931],"lp":["fo","ga","ag","tao","ago","ato","aga","fato","fog","tota","gat","fogo","fot","foto","gao","tag","tato"],"rp":["of","ota","oga"]},"74":{"input":[2,4,7],"tlp":["co",405580],"trp":["oc",76923],"tlw":["gosto",1191],"lp":["co","sto","tos","cos","sco","gos","gost","cost","soc","toc","stos","cto","goc","coc","scoc","coco"],"rp":["oc","ost","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cao",52031],"trp":["oca",15079],"tlw":["caso",3450],"lp":["cao","acao","aco","fos","foss","stao","caso","gas","sag","acos","sof","atos","sfo","saco","toca","asto"],"rp":["oca","osta","ocas","otas"]},"76":{"input":[3,4,7],"tlp":["ro",189615],"trp":["or",300995],"tlw":["george",652],"trw":["or",278],"lp":["ro","eg","ge","tro","gr","rg","tor","rto","erg","gor","ero","rro","eto","erto"],"rp":["or","ort","orr","ore","orre","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",35880],"trp":["ora",47672],"tlw":["agora",9502],"trw":["ora",1045],"lp":["for","gar","gra","ega","age","aro","fora","agor","gora","arg","egar","rof","arro","rox","rao","rga","fort","agr"],"rp":["ora","orta"]},"78":{"input":[2,3,4,7],"tlp":["ros",31755],"trp":["oce",38021],"tlw":["todos",10399],"lp":["ros","cor","tod","seg","todo","dor","esco","eco","coe","coes","corr","esto","tros","sor","roc"],"rp":["oce","ord","oder","ores","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",5405],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",187963],"trw":["no",51404],"lp":[],"rp":["ou","no","on","un","nu","nun","nou","ono","uo","nuo","uou","nuou","onn","uno","onou","oou","oun","non","oon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",415783],"trp":["ua",141069],"tlw":["ano",2467],"trw":["nao",106447],"lp":["qu","qua","quan","aqu","ano","au","anu","anqu"],"rp":["ua","nao","uan","nqu","ona","nqua","naqu","nua","una","oq","oqu","uq"]},"82":{"input":[2,5,7],"tlp":["su",74848],"trp":["us",60120],"tlw":["sou",2630],"trw":["nos",20778],"lp":["su","sou","son","ssu","sus","ssou","sun"],"rp":["us","nos","ons","jo","ju","noss","uns","oj","jun","nso","uj","uso","nsou"]},"83":{"input":[1,2,5,7],"tlp":["sua",42963],"trp":["uas",22607],"tlw":["sua",31618],"trw":["nossa",3352],"lp":["sua","anos","suas","quas","squ","aus","ausa","aju","assu","sau"],"rp":["uas","usa","nsao","joa","uja","usan","oja","joao","usao","onsa"]},"84":{"input":[3,5,7],"tlp":["eu",147300],"trp":["ue",347032],"tlw":["eu",43591],"trw":["you",709],"lp":["eu","eno","eun","eon","eu-","enou"],"rp":["ue","uen","u-","one","ou-","ueno","n-","yo","oen","you","ueu","nou-","nue","-n"]},"85":{"input":[1,3,5,7],"tlp":["que",325065],"trp":["ux",2970],"tlw":["que",242225],"trw":["-nao",146],"lp":["que","aque","equ","quen","eque","enqu","xou","xu","exu","xua","exua"],"rp":["ux","uena","nque","uxa","oque","uxo","oux","uxe","ouxe"]},"86":{"input":[2,3,5,7],"tlp":["seu",45915],"trp":["ndo",102634],"tlw":["seu",30091],"trw":["onde",9124],"lp":["seu","eus","du","endo","deu","seus","enos","deus"],"rp":["ndo","ud","ond","und","onde","udo","undo","onse","ude","u-s","u-se","ndeu"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",23534],"trw":["usando",884],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",87969],"trp":["nto",82230],"tlw":["tu",788],"trw":["notou",383],"lp":["gu","tu","bo","tou","gun","gunt"],"rp":["nto","ont","ut","ob","ng","out","unt","ntou","ug","ub","unto","ngu","uto","ong"]},"89":{"input":[1,4,5,7],"tlp":["anto",26539],"trp":["uant",14606],"tlw":["quanto",4990],"trw":["nota",549],"lp":["anto","fu","gua","gan","fun","atu","tua","ang","agu","agua","fon","abo"],"rp":["uant","onta","ntao","uga","uta","onf","unta","nfo"]},"90":{"input":[2,4,5,7],"tlp":["con",88877],"trp":["uc",20930],"tlw":["sob",2880],"trw":["junto",1728],"lp":["con","cu","cont","cons","sob","cou","scu","stou","cob","guns"],"rp":["uc","nco","ntos","ouc","uco","unc","ouco","ncon","ocu","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["boca",2277],"trw":["nunca",7198],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",36495],"trp":["ur",58598],"tlw":["gente",3137],"trw":["outro",7994],"lp":["ento","egu","ru","gue","rou","tur","rgu","gen","ergu"],"rp":["ur","uer","obr","utr","outr","obre","ontr","utro","onte","ntro","uro"]},"93":{"input":[1,3,4,5,7],"tlw":["entao",11118],"trw":["outra",6635],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",14110],"trw":["outros",5996],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grande",7378],"trw":["outras",3514],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["io",92146],"trw":["l",496],"lp":[],"rp":["io","lo","ol","li","oi","il","ili","olo","oli","ll","ilo","ill","lio","iol","oll","oio","lli","ilio","loo","illi"]},"97":{"input":[1,6,7],"tlp":["al",200651],"trp":["la",162745],"tlw":["ali",4130],"trw":["la",8495],"lp":["al","ala","ali","aio","alo","zo","alia","zao","azao"],"rp":["la","oz","lia","ial","ola","liz","iao","ilia","ozi","ila","liza"]},"98":{"input":[2,6,7],"tlp":["sol",10331],"trp":["ois",42788],"tlw":["sol",2060],"trw":["isso",18569],"lp":["sol","sil","sio","sl","ssio","soli","solo"],"rp":["ois","isso","ios","los","iso","ossi","osi","ls","lis","lso","ioso","ols","ok"]},"99":{"input":[1,2,6,7],"tlp":["sal",8453],"trp":["oisa",15190],"tlw":["sala",3032],"trw":["las",303],"lp":["sal","sala","asil","wil","will","soz","sozi","soal","alis","alos","alas","als"],"rp":["oisa","las","isao","iosa","lass","lias","lsa","olsa"]},"100":{"input":[3,6,7],"tlp":["el",253859],"trp":["le",167939],"tlw":["ele",53580],"trw":["lei",1081],"lp":["el","ele","elo","eio","eli","e-l","e-lo","ell"],"rp":["le","lei","ole","-l","ile","-lo","leo","lie","ioe","ilei","oel","iole"]},"101":{"input":[1,3,6,7],"tlp":["ela",75025],"trp":["ixo",8660],"tlw":["ela",31605],"trw":["lixo",278],"lp":["ela","ale","eal","aixo","eliz","eixo","eali","a-l","alei","ael","a-lo"],"rp":["ixo","oxi","lex","oze","-la","lez","leza","ia-","lea"]},"102":{"input":[2,3,6,7],"tlp":["del",18683],"trp":["ido",37514],"tlw":["eles",10957],"trw":["ido",578],"lp":["del","eles","dele","doi","dois","elos","sido","dio","dido","sile","sel","dol"],"rp":["ido","les","odi","lid","ld","idos","ilid","old"]},"103":{"input":[1,2,3,6,7],"tlw":["dela",4626],"trw":["lado",7350],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",89842],"trp":["ito",55627],"tlw":["tio",740],"trw":["logo",3653],"lp":["vo","gi","vol","volt"],"rp":["ito","ig","lt","ov","lg","igo","olt","lv","oit","ovo","lto","liv","log","ivo","lig","lti"]},"105":{"input":[1,4,6,7],"tlp":["alg",28147],"trp":["lta",14607],"tlw":["foi",19254],"lp":["alg","tal","foi","fal","alt","fil","fala","alv","val","agi","alav","talv","fl","voz","gia"],"rp":["lta","iga","ova","olta","lav"]},"106":{"input":[2,4,6,7],"tlp":["voc",35885],"trp":["ico",23673],"tlw":["visto",1856],"trw":["isto",3322],"lp":["voc","coi","cio","cois","cl","col","vos","cil","colo","sig","scol"],"rp":["ico","lic","isto","itos","oci","loc","igos","icio","lc"]},"107":{"input":[1,2,4,6,7],"tlw":["coisa",9623],"trw":["local",1110],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",30701],"trp":["iro",27990],"tlw":["rio",2083],"trw":["livro",2336],"lp":["rio","vel","eiro","eito","tori","rel","rig","erio","tel","rito","rov"],"rp":["iro","ori","ior","lev","ove","lve","ivel","oite","orri"]},"109":{"input":[1,3,4,6,7],"tlw":["talvez",5564],"trw":["levar",1384],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voce",31586],"trw":["livros",1191],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["claro",3392],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",111008],"trw":["olhou",3514],"lp":[],"rp":["ho","lh","ui","ul","lho","nho","olh","iu","lu","ilh","olho","onh","hu","uni","ulh","inu","ulo","lin","hou","ino"]},"113":{"input":[1,5,6,7],"tlp":["qui",23334],"trp":["lha",27941],"tlw":["aqui",6587],"trw":["luz",3303],"lp":["qui","qual","alh","aqui","alq","alqu","alha"],"rp":["lha","ual","lan","nal","olha","uz","lq","lqu","ualq","ilha","inal","iona","ula"]},"114":{"input":[2,5,6,7],"tlp":["sul",3044],"trp":["hos",17929],"tlw":["sonhos",1378],"trw":["olhos",8588],"lp":["sul","sonh","sion","solu","sui","sino"],"rp":["hos","lhos","uis","onsi","nhos","hoj","usi","ulos","lus","jul","inos","ijo","ku","loj"]},"115":{"input":[1,2,5,6,7],"tlw":["quais",1786],"trw":["loja",754],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elh",18680],"trp":["lhe",25233],"trw":["lhe",9996],"lp":["elh","elho","enho","enhu","elen"],"rp":["lhe","uel","len","uele","onhe","ulhe","nel","uei","olhe","in-","ilen","ly","-lh","-lhe","nele"]},"117":{"input":[1,3,5,6,7],"tlw":["aquele",3696],"trw":["naquele",1801],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["disse-lhe",457],"trw":["hoje",2804],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aqueles",1766],"trw":["olhando",2030],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gui",16504],"trp":["uit",26642],"tlw":["vou",3725],"trw":["novo",4638],"lp":["gui","bl","gin"],"rp":["uit","lgu","uito","uv","nov","ing","ouv","ult","uvi","itu","ouvi","noit","lug","ingu","onti","long","onv"]},"121":{"input":[1,4,5,6,7],"tlw":["filho",2705],"trw":["nova",2638],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2400],"trw":["unico",1538],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["alguns",5675],"trw":["unica",1846],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tenho",3664],"trw":["noite",6059],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["qualquer",7063],"trw":["lugar",5157],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["senhor",5213],"trw":["jeito",1631],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["fazendo",2599],"trw":["historia",3341],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",1293],"trw":["p",1742],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",54655],"trp":["pa",230757],"trw":["papa",278],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",45986],"trp":["ps",1182],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",5532],"trp":["pas",19597],"trw":["passa",679],"lp":["spa","sap","sapa","asp","apas","aps","ssap"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",29704],"trp":["pe",179445],"trw":["pe",2387],"lp":["ep","epe","e'"],"rp":["pe","pee","''"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",14035],"trp":["pape",2221],"lp":["ape","xp","exp","epa","xpe","expe","xpa","expa","a'"],"rp":["pape","'a","pea","px"]},"134":{"input":[2,3,8],"tlp":["esp",37689],"trp":["pes",22163],"trw":["pes",1833],"lp":["esp","spe","espe","dep","depe","sep","desp","sesp","sped","spes","d'","eps","ssep"],"rp":["pes","pess","ped","pede","pd","'s","'d"]},"135":{"input":[1,2,3,8],"tlp":["espa",4992],"trp":["pad",5872],"tlw":["espada",1207],"trw":["pesada",361],"lp":["espa","apes","esap","spad","aspe","sepa","depa","d'a","xped","epas","spea","spx","aspx"],"rp":["pad","pesa","pada","peda","pade"]},"136":{"input":[4,8],"tlp":["tp",287],"trp":["pt",3485],"trw":["pt",2780],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apat",596],"trp":["pat",2789],"tlw":["tapa",93],"lp":["apat","tap","apt","tapa","apta"],"rp":["pat","pata","pta"]},"138":{"input":[2,4,8],"trp":["pc",1162],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",9324],"trp":["pac",6453],"tlw":["capa",572],"trw":["pasta",248],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","pca","paca","past","pact","patc"]},"140":{"input":[3,4,8],"tlp":["rep",8013],"trp":["pr",132035],"trw":["peter",441],"lp":["rep","rp","repe","rpr","rpre","epr","epre","epet","repr","erp"],"rp":["pr","per","pre","pert","pet","pret","pree","prep","pete","pere"]},"141":{"input":[1,3,4,8],"tlp":["apar",7369],"trp":["par",142915],"tlw":["tapete",247],"trw":["para",95245],"lp":["apar","apr","rap","apre","epar","rapa","xper","repa","xpr","expr","xpre","aper"],"rp":["par","para","pare","part","pra","pera","prat","perf"]},"142":{"input":[2,3,4,8],"tlp":["resp",11738],"trp":["pres",18252],"tlw":["espere",312],"trw":["perder",886],"lp":["resp","sper","spec","depr","cep","epc","cepc","spet","rsp"],"rp":["pres","prec","pec","perd","perc","pedr","pect","pers","pesc","pred","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["apesar",1985],"trw":["parece",2731],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",67484],"trw":["m",1887],"lp":[],"rp":["mp","mm","pn","mn","nm"]},"145":{"input":[1,5,8],"tlp":["am",185140],"trp":["ma",359934],"tlw":["ama",422],"trw":["ma",502],"lp":["am","ama","amp","aman","ampa","apan"],"rp":["ma","man","mpa","pan","mana","mpan","nam","mam","maq","pam","mama","map","mapa","nama"]},"146":{"input":[2,5,8],"tlp":["sm",24615],"trp":["nsp",908],"lp":["sm"],"rp":["nsp","nsm","ms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7995],"trp":["mas",58930],"tlw":["sam",195],"trw":["mas",44387],"lp":["sam","sma","span","asam","asm","ssam","amas","smas","asma","ansp","ansm"],"rp":["mas","jam","nsam","jama","mass","jap","maj","mans","mpas"]},"148":{"input":[3,5,8],"tlp":["em",283802],"trp":["me",270378],"tlw":["em",82946],"trw":["me",23412],"lp":["em","emp","eme","emen","epen","empe","emm","eem"],"rp":["me","men","pen","mem","nem","mpe","my","mpen","n'","mmy","pene","ym"]},"149":{"input":[1,3,5,8],"tlp":["ame",42844],"trp":["pena",8675],"tlw":["emma",305],"trw":["mae",5046],"lp":["ame","amen","ema","apen","eman","xem","exem","xemp","xam","exam"],"rp":["pena","mae","peq","mane","name","mea","mame","max","pame","nema"]},"150":{"input":[2,3,5,8],"tlp":["sem",29109],"trp":["mes",30950],"tlw":["sem",13046],"trw":["meses",1641],"lp":["sem","esm","dem","semp","ssem","dm","sme","esme","smen","seme"],"rp":["mes","mesm","pens","med","mens","pend","mese","mend","ndep","mped"]},"151":{"input":[1,2,3,5,8],"tlw":["apenas",7324],"trw":["mesma",4037],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",964],"trp":["mb",32610],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",28816],"trp":["mat",4959],"tlw":["fama",211],"trw":["matt",334],"lp":["tam","amb","tamb","fam","atam","tama","amba","tamp","bam","abam","atm"],"rp":["mat","mant","mba","ntam","mata","pant","mbat","mpat","matt"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",156],"trp":["mc",119],"tlw":["cm",85],"lp":["cm","cmm"],"rp":["mc","mcc"]},"155":{"input":[1,2,4,5,8],"tlw":["cama",2189],"trw":["maca",202],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",41396],"trp":["ment",85913],"tlw":["bem",13447],"trw":["mente",2130],"lp":["rm","tem","bem","temp","emb","rem","empr","erm","rme","embr","term"],"rp":["ment","mpr","mpre","mer","mbr","mbe","mbem","met","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["tambem",10764],"trw":["mar",1598],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",8109],"trw":["presente",1043],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["certamente",1039],"trw":["pensar",2492],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",24405],"lp":[],"rp":["pi","ip","ipi","pip","ppi","ipp","pipp","ippi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",7700],"trp":["pai",11844],"trw":["pai",5571],"lp":["api","apaz","apai","zap","apia","zip"],"rp":["pai","paz","ipa","pia","ipai","piz","pizz","pazz"]},"162":{"input":[2,6,8],"tlp":["spi",5606],"trp":["isp",2854],"lp":["spi","sip","ssip"],"rp":["isp","pis","psi"]},"163":{"input":[1,2,6,8],"tlp":["apis",171],"trp":["pais",4098],"trw":["pais",2931],"lp":["apis","spia"],"rp":["pais","ispa","pisa","pias"]},"164":{"input":[3,6,8],"tlp":["epi",511],"trp":["pei",5264],"lp":["epi"],"rp":["pei","ipe","i'","pie","pipe"]},"165":{"input":[1,3,6,8],"tlp":["apei",323],"trp":["paix",1055],"trw":["peixe",323],"lp":["apei","a'z","a'za","zipe"],"rp":["paix","paze","peix","pez","peza","'z","'za","peia"]},"166":{"input":[2,3,6,8],"tlp":["espi",3719],"trp":["pedi",4130],"trw":["pedi",235],"lp":["espi","spei","disp","epis"],"rp":["pedi","pid","pide","peis","pied","ipes","i'd","ispe","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",129],"trw":["paises",490],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",3741],"trp":["pit",4493],"lp":["tip","tipi"],"rp":["pit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3841],"trp":["pita",2323],"lp":["apit","vap","apav"],"rp":["pita","pati","pav","pava","pavi"]},"170":{"input":[2,4,6,8],"tlp":["cip",5141],"trp":["pist",660],"lp":["cip","cipi","spit","scip"],"rp":["pist","pisc","psic","icip","pic","ipic","ipc","pci","ipci"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1624],"trw":["passava",922],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",238],"trp":["pri",25730],"tlw":["repetir",222],"trw":["piper",124],"lp":["rip","trip","repi","tepi","epit"],"rp":["pri","peri","pir","peit","piri","peti","prie","priv","prev","pire","prir","iper","it'","prei","ptei"]},"173":{"input":[1,3,4,6,8],"tlw":["rapaz",1561],"trw":["partir",1512],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1783],"trw":["pedir",815],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["esperava",1003],"trw":["parecia",5095],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",105296],"trw":["mim",6113],"lp":[],"rp":["im","mi","min","minh","imp","mim","nim","imi","mini","pin","ph","inim","nimi","pini","imin","mpi","hip","phi","imm","him"]},"177":{"input":[1,5,6,8],"tlp":["ami",18005],"trp":["mai",54885],"tlw":["amanha",798],"trw":["minha",12630],"lp":["ami","amin","anim","amai","ziam","aph"],"rp":["mai","ima","iam","ham","nham","mina","manh","hama","panh","nima","mia","impa","inam","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",20054],"trp":["mis",5228],"tlw":["sim",4845],"trw":["jim",693],"lp":["sim","ssim","simp","smi","spin","smis","sism","simi"],"rp":["mis","miss","jim","ism","mik","nism","insp","jimm","nspi","nsmi","mins","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["assim",9572],"trw":["mais",42140],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2072],"trp":["ime",24625],"trw":["i'm",90],"lp":["emi","eph","emin","eim"],"rp":["ime","mei","imen","imei","meni","impe","inem","penh","immy","hem","mine","ymi","mie","peni","phie","pime"]},"181":{"input":[1,3,5,6,8],"trw":["menina",1204],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seph",283],"trw":["pensei",1244],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demais",2703],"trw":["medida",966],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",10629],"trp":["mit",5096],"tlw":["vim",252],"trw":["http",287],"lp":["tim","vim","timi","thm","bmi"],"rp":["mit","ntim","miti","imit","mbi","itim","imb","pint","itm","mbin","htm","http","mith","mint","himb"]},"185":{"input":[1,4,5,6,8],"tlw":["tinham",4868],"trw":["haviam",2041],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",280],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["cima",3152],"trw":["incapaz",367],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",1339],"trw":["permitir",306],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["fazem",993],"trw":["primeira",3896],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["devem",852],"trw":["presidente",1153],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["estavam",5892],"trw":["imediatamente",1406],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",224923],"trw":["po",410],"lp":[],"rp":["po","op","opo","pop","opp","oop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",6185],"trp":["opa",1837],"trw":["pao",557],"lp":["apo","apao"],"rp":["opa","pao","papo","popa"]},"194":{"input":[2,7,8],"tlp":["spo",12061],"trp":["pos",28599],"trw":["posso",2774],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","osp","pso","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",2721],"trp":["posa",1096],"tlw":["apos",1872],"trw":["passo",1318],"lp":["apos","sapo","sopa","apso"],"rp":["posa","opas","pow"]},"196":{"input":[3,7,8],"tlp":["epo",16405],"trp":["ope",1755],"trw":["poe",134],"lp":["epo","eop","eopo","e-p"],"rp":["ope","poe","o'","peo","peop","-p","oope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",537],"trp":["peao",87],"lp":["xpo","expo"],"rp":["peao"]},"198":{"input":[2,3,7,8],"tlp":["depo",14313],"trp":["pod",31617],"tlw":["espesso",79],"trw":["pode",9510],"lp":["depo","espo","epos","spoe"],"rp":["pod","pode","peso","pose","ospe","pos-","poes","osep","opes"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",847],"trw":["pessoas",7432],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1854],"trp":["pot",800],"tlw":["topo",438],"lp":["top","topo"],"rp":["pot","opt","pg","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["apag",291],"trp":["pag",4975],"trw":["pag",402],"lp":["apag","apg","apto"],"rp":["pag","paga","pato","pago","opag","opat"]},"202":{"input":[2,4,7,8],"tlp":["cop",1332],"trp":["post",6329],"tlw":["copo",522],"trw":["posto",634],"lp":["cop","copo","copt","coop"],"rp":["post","poc","poco","opc","pco","opco","pgc","pgcs"]},"203":{"input":[1,2,4,7,8],"tlw":["sapatos",482],"trw":["opcao",191],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",10909],"trp":["por",83084],"tlw":["reporter",133],"trw":["por",51332],"lp":["rop","ropr","rpo","ropo"],"rp":["por","pro","port","perg","prop","opr","orp","orpo","peg","pore","preo","preg","pero","opor","pego","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["aeroporto",244],"trw":["porta",4885],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",3692],"trw":["poder",3010],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["resposta",1706],"trw":["professor",1075],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",243291],"trw":["um",108193],"lp":[],"rp":["um","om","mo","mu","omo","mpo","omp","pu","num","pon","up","pou","mun","mon","nom","mom","upo","mou","omu","oup"]},"209":{"input":[1,5,7,8],"tlp":["amo",18697],"trp":["uma",107111],"tlw":["amo",321],"trw":["uma",83293],"lp":["amo","ampo","apon","amou","aum"],"rp":["uma","mao","oma","upa","numa","ompa","uman","oman","pau","mano","oupa","onam","maqu","mau","namo"]},"210":{"input":[2,5,7,8],"tlp":["smo",16965],"trp":["mos",29583],"tlw":["som",1252],"trw":["pousou",166],"lp":["smo","spon","som","sup","susp","sum","supo","somo","smos","ssum","spu"],"rp":["mos","mpos","mus","usp","omos","mons","pons","upos","pous"]},"211":{"input":[1,2,5,7,8],"tlw":["soma",177],"trw":["maos",4073],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",14088],"trp":["ome",42557],"trw":["meu",13196],"lp":["emo","empo","emon"],"rp":["ome","meu","uem","omen","meno","omem","ume","mome","nome","nume","upe","umen","-m","-me","ompe","peu","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["quem",7441],"trw":["pequeno",2129],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"trw":["mesmo",14794],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",277],"trw":["pensando",1275],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gum",14061],"trp":["mbo",6406],"tlw":["bom",4344],"trw":["ponto",2616],"lp":["gum","tom","bom","tum","ttom","tomo","tmo","gm"],"rp":["mbo","pont","omb","mot","mont","pub","put","pob","mput","moto","umb","utom"]},"217":{"input":[1,4,5,7,8],"tlw":["apontou",487],"trw":["ponta",807],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",79743],"trw":["pouco",7236],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1321],"trw":["moca",1091],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",10746],"trw":["momento",4691],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",4643],"trw":["porque",9040],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comecou",3483],"trw":["ombros",1499],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["estamos",1849],"trw":["pensamentos",1108],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22248],"trw":["polo",95],"lp":[],"rp":["pl","poi","pol","pli","ipo","plo","poli","lp","pio","opi","ipio","pil","olp","ppl","poio","lop","pilo","ipl","lip","ipli"]},"225":{"input":[1,6,7,8],"tlp":["apoi",894],"trp":["pal",9950],"tlw":["apoio",472],"trw":["paola",89],"lp":["apoi","alp","appl","apl","apli","apol","apla","alpa"],"rp":["pal","pla","pala","ipal","lpa","pali","lap","poia","opia","pila","lapi","palp"]},"226":{"input":[2,6,7,8],"tlp":["spio",144],"trp":["pois",18374],"trw":["pois",4416],"lp":["spio","spl"],"rp":["pois","posi","ispo","plos","ospi","piso","ipos","pios","psl"]},"227":{"input":[1,2,6,7,8],"trw":["lapis",171],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epoi",14052],"trp":["pel",32898],"trw":["pelo",11997],"lp":["epoi","epl","epli","elop","elip","eple"],"rp":["pel","pelo","ple","pele","lpe","olpe","pple","pole","lope","poei","lipe","leop","l'","peli"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",759],"trw":["pela",10602],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["depois",13958],"trw":["pelos",3503],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["explosao",225],"trw":["podia",5600],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",3460],"trp":["pov",1630],"tlw":["tipo",3053],"trw":["povo",1274],"lp":["tipo","golp","gip","tipl"],"rp":["pov","povo","ipot","polt","pito","polv","pig","ltip"]},"233":{"input":[1,4,6,7,8],"tlw":["galpao",98],"trw":["patio",409],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",407],"trw":["politico",317],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capitao",887],"trw":["policia",1169],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",619],"trw":["proprio",2614],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["propria",2409],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["respeito",2148],"trw":["possivel",2464],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["rapido",1145],"trw":["poderia",4184],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mui",26105],"trw":["mil",1923],"lp":[],"rp":["mui","lm","hom","mpl","mil","hum","mul","imo","mulh","omi","impo","nhum","mili","impl","lim","minu","ompl","pul","mplo","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1095],"trw":["mal",2849],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["suponho",319],"trw":["possui",298],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almas",218],"trw":["humanos",876],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elmo",138],"trw":["homem",8542],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["alem",3586],"trw":["nenhuma",2224],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simples",1787],"trw":["homens",5348],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zaphod",507],"trw":["podiam",1009],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tumulo",138],"trw":["muito",18767],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["alguma",5734],"trw":["ultima",1690],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comigo",1864],"trw":["muitos",2820],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["algumas",3503],"trw":["muitas",2792],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["vermelho",829],"trw":["melhor",5197],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["alguem",4202],"trw":["maior",3758],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["simplesmente",1695],"trw":["mulheres",2796],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["completamente",1313],"trw":["marido",1424],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json index 0bed185ec5..72627d4a2c 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",511],"tlw":["a",83146],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",3507],"tlw":["s",933],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",334071],"tlw":["sa",168486],"lp":["sa","as","asa","sas","ssa","asas","wa","aw","sw","ass","ws","was"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",21380],"tlw":["e",25573],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",331408],"tlw":["ea",17717],"lp":["ea","ex","eea","ae","xa","exa","xe","exe","ax"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",474727],"tlw":["de",299045],"lp":["de","se","es","ed","des","ese","ede","ses","sese","dee","sed","dese","sse","ess","edes","esed","sede","dd","eed","eses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",156223],"tlw":["da",10448],"lp":["da","ad","ase","eas","dea","sea","ada","ade","dad","esa","edea","deas","ases","adea","asea","esea","sase","eeas","dade","ew"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",3013],"tlw":["t",835],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",414820],"tlw":["fata",15507],"lp":["at","ta","ata","fa","tat","af","fat","atat","fata","tf","afa","tata","ft","afat","fta","ff","att","tta","ftat","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",311126],"tlw":["c",706],"lp":["st","sc","ct","cc","tc","ts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",523509],"tlw":["ca",133317],"lp":["ca","ac","sta","ast","cat","aca","fac","asta","sca","asc","cas","asca","act","sf","stat","sat","casa","sfa","tac","faca"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",521801],"tlw":["te",15374],"lp":["re","te","er","tr","tre","et","rt","ere","rte","ter","ete","ret","tere","etr","ert","rer","tet","etre","rere","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",509043],"tlw":["era",39299],"lp":["ar","ra","are","ate","era","rea","ara","tea","fe","tra","art","rat","arte","tar","tate","far","rta","area","fara","fr"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",303452],"tlw":["ce",59249],"lp":["ce","ec","est","ste","este","cr","str","ces","dr","rec","cest","rc","rs","cre","res","cer","dec","esc","rd","cee"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["car",108000],"tlw":["care",72655],"lp":["car","care","ace","dar","cea","dat","eca","ras","aces","dac","daca","stra","data","acea","ecat","ceea","face","rca","east","astr"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",3834],"trw":["n",1145],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",216706],"trp":["na",142605],"tlw":["an",1202],"trw":["na",594],"lp":["an","ana","ann","anan","anna","aq","anaq"],"rp":["na","nan","nna","naq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",3093],"trp":["ns",69609],"trw":["j",435],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",20324],"trp":["nsa",12265],"tlw":["sansa",539],"trw":["nas",518],"lp":["aj","ans","san","ansa","anj","sana","aja","saj","sans","anja","asan","wn","anas","awn"],"rp":["nsa","ja","nas","nja","nsas","jan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",157322],"trp":["ne",182563],"tlw":["en",86],"trw":["ne",11044],"lp":["en","ene","ey","eyn","enn","eye","een","enen","eyne","enny","enne"],"rp":["ne","yn","nen","nne","ny","nee","ye","nny","yne"]},"21":{"input":[1,3,5],"tlp":["ane",10158],"trp":["nea",30604],"tlw":["anne",526],"trw":["nea",342],"lp":["ane","enea","ena","ean","anee","ay","anne","anea","anen","xan","exan","eann","aye","eane","anx"],"rp":["nea","ya","nay","yx","nx"]},"22":{"input":[2,3,5],"tlp":["ej",6230],"trp":["nd",131965],"tlw":["sens",684],"trw":["je",103],"lp":["ej","sen","den","ens","dej","end","dy","sens","sey","ssey","seyn"],"rp":["nd","nde","nse","je","nes","ndes","nses","jd","ys"]},"23":{"input":[1,2,3,5],"tlp":["and",65203],"trp":["nda",9766],"tlw":["deja",3062],"trw":["new",498],"lp":["and","dan","anda","ande","eja","deja","adan","anse","dane","dans","esan","esaj","eaj"],"rp":["nda","ndea","nsea","neas","nand","new","jea"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",2355],"trp":["nt",306047],"tlw":["b",322],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",71864],"trp":["nta",47119],"tlw":["ba",2052],"trw":["nat",115],"lp":["ba","ant","ab","tan","bat","anta","aba","ban","tant","bab","tana","bata","anat","fan","tab"],"rp":["nta","nat","nf","ntat","nata"]},"26":{"input":[2,4,5],"tlp":["bs",4364],"trp":["nc",92637],"lp":["bs","cn","bc","bst","sb","tj"],"rp":["nc","nst","nct","jb"]},"27":{"input":[1,2,4,5],"tlp":["can",32837],"trp":["nca",22051],"tlw":["banca",519],"trw":["nasca",92],"lp":["can","anc","stan","anca","cant","bas","abs","bast","cab","taj","tanc","acan","banc","sab"],"rp":["nca","ncat","nsta","nast","nanc","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",84157],"trp":["ntr",104253],"tlw":["brett",483],"trw":["nr",169],"lp":["ent","entr","eb","reb","treb","be","rb","br","rn","ten","ren","ern","rbe","tent"],"rp":["ntr","nte","ntre","ner","nter","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",24100],"trp":["ntra",6602],"tlw":["barbat",1660],"lp":["ran","enta","bar","eba","reba","rba","bra","tran","arb","rab","arba","bea","barb","rbat","rant","ante"],"rp":["ntra","nar","ntea","neat"]},"30":{"input":[2,3,4,5],"tlp":["cen",5052],"trp":["nce",27047],"tlw":["recent",181],"trw":["jerry",121],"lp":["cen","dent","bes","cent","rbes","bse","sten","sent","bser","best"],"rp":["nce","ncer","ndr","nec","ndre","ncet","ncr","ndc","ncre","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["cand",24121],"trw":["jeff",677],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",110946],"trw":["ii",23134],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",175637],"trp":["ia",127873],"tlw":["ai",14411],"trw":["ia",3588],"lp":["ai","zi","az","za","aza","aia","azi","zia","zii","azia","aii","aiz","azii"],"rp":["ia","iz","iza","izi","iaz","iaza","izii"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",392768],"trp":["is",116257],"tlw":["si",229731],"trw":["isi",19173],"lp":["si","sis","sii","sk","ski","ssi","sisi","siss"],"rp":["is","isi","ki","ik","ks","iis","isk","iss","iki","kik","kiki","isis"]},"35":{"input":[1,2,6],"tlp":["asi",21012],"trp":["isa",3757],"tlw":["zis",2561],"trw":["iasa",754],"lp":["asi","zis","sai","sia","ak","wi","asis","sasi","wis","ais","aias","saiz","asii","zas","zias"],"rp":["isa","ias","ka","iasa","iasi"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",94946],"trp":["ie",135041],"tlw":["ei",24160],"trw":["iei",524],"lp":["ei","eie","eii"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",32829],"trp":["ize",3487],"tlw":["zeii",292],"trw":["izea",421],"lp":["ez","ze","eze","ezi","xi","exi","aie","eza","eia","eaz","eaza","aze","zea","zie","zei","eai","eiz","eize"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",145395],"trp":["id",28001],"tlw":["desi",3541],"trw":["iesi",1561],"lp":["di","esi","edi","dis","desi","sie","sid","side","die","sise","sei","sedi"],"rp":["id","ise","ide","ies","idi","iesi","ke","idee"]},"39":{"input":[1,2,3,6],"tlp":["zise",7538],"trp":["ida",1906],"tlw":["zise",6592],"trw":["ideea",1322],"lp":["zise","xis","exis","adi","dia","sez","asez","edia","seza","easi","dai","zid","esia","aies","dez","aid","ezis","aide","ake"],"rp":["ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",295163],"trp":["it",151806],"tlw":["ti",1335],"trw":["iti",3989],"lp":["ti","vi","tii","tit","tiv","vit","vii","titi","viit","tivi","tv"],"rp":["it","iv","iti","ivi","ivit","iit","itii","itiv","itit"]},"41":{"input":[1,4,6],"tlp":["va",110914],"trp":["ita",36266],"tlw":["fi",38843],"trw":["iata",1833],"lp":["va","fi","ati","av","tia","fii","vaz","zit","via","viat","ava","tai","tati","atii"],"rp":["ita","iat","itat","iata","iva","if"]},"42":{"input":[2,4,6],"tlp":["ci",156406],"trp":["ic",148028],"tlw":["ci",3836],"trw":["ici",186],"lp":["ci","sti","sit","cit","cti","tic","stii","stit","tis","vic","ctiv","vis","cii","sist"],"rp":["ic","ici","ist","isc","isti","itic"]},"43":{"input":[1,2,4,6],"tlp":["aci",11683],"trp":["ica",34598],"tlw":["aici",9541],"lp":["aci","aic","aici","caz","stia","acti","zic","fic","cati","caci","cia","asti","tica","faci","cai"],"rp":["ica","ista","icat","isca","ific"]},"44":{"input":[3,4,6],"tlp":["ri",261934],"trp":["ir",38667],"tlw":["trei",5142],"trw":["ieri",560],"lp":["ri","ve","ev","eri","vr","vre","tie","riv","tri","eti","rie","rei","rit","rivi","rti"],"rp":["ir","ire","ite","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",33520],"trp":["iar",32094],"tlw":["avea",12237],"trw":["iar",16087],"lp":["eva","ari","ave","vea","fie","avea","rez","var","ria","evar","arti","reze","feri","vrea","vara","teva","rai","raz"],"rp":["iar","irea"]},"46":{"input":[2,3,4,6],"tlp":["ric",22696],"trp":["ice",14452],"tlw":["cei",7477],"trw":["iesit",918],"lp":["ric","eci","esti","dev","dic","cev","cei","ris","cri","ved","vede","rid","ves","ridi","eric","scri"],"rp":["ice","iste","iec","idic"]},"47":{"input":[1,2,3,4,6],"tlw":["ceva",11423],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",750933],"trw":["in",184145],"lp":[],"rp":["in","ni","hi","ini","nii","iin","hii","nin","ih","hn","inii","nni","ihn","iini","hin","inn","ihi","nh","hni","inin"]},"49":{"input":[1,5,6],"tlp":["ani",21231],"trp":["ina",49485],"tlw":["ani",6375],"trw":["hai",1393],"lp":["ani","ain","aini","ah","aha","anii","zin","zan"],"rp":["ina","ha","hia","nai","inai","nain","nz","hai","nia","han","ian","nza"]},"50":{"input":[2,5,6],"tlp":["sin",18411],"trp":["ins",33866],"tlw":["sin",190],"trw":["jh",411],"lp":["sin","sh","sih","sini","sni"],"rp":["ins","nis","ij","his","nsi","inis","ji","isn","iji","insi","jin","ijin","nsis","nk","nik"]},"51":{"input":[1,2,5,6],"tlp":["asin",3239],"trp":["insa",9893],"tlw":["ash",252],"trw":["insa",7993],"lp":["asin","sina","aji","ank","siha","sha","ash","ansi","ajii","anis","asni"],"rp":["insa","ija","hisa","hans","jak","kan","jah","ijah","hka"]},"52":{"input":[3,5,6],"tlp":["eni",33619],"trp":["ine",65502],"tlw":["eh",87],"trw":["hei",371],"lp":["eni","enii","ein","enin","eh","enie"],"rp":["ine","he","nei","ien","nie","hei","nein","inei","hen","heie","nnie","niei","hne","hie"]},"53":{"input":[1,3,5,6],"tlp":["aine",3733],"trp":["inea",7586],"trw":["haine",380],"lp":["aine","zen","ezen","enz","anie","ezin","enza","zne","azne","ezn","ezna","enzi"],"rp":["inea","nez","neze","hea","iena","nze","heia","neaz"]},"54":{"input":[2,3,5,6],"tlp":["din",90282],"trp":["ind",36487],"tlw":["din",67566],"trw":["iesind",261],"lp":["din","sine","dine","edin","enis","ensi"],"rp":["ind","ndi","inse","inde","iind","indi","hise","iden","nsid","hid","nise","hes","hide","nind"]},"55":{"input":[1,2,3,5,6],"tlw":["sinea",401],"trw":["jake",478],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",58255],"trp":["int",156160],"tlw":["vin",1566],"trw":["intii",232],"lp":["bi","tin","bin","vin","th","bit","vint","tint"],"rp":["int","nti","ib","nit","inti","ntin","nv","ibi","iint","inv","nvi","ntii"]},"57":{"input":[1,4,5,6],"tlp":["abi",11731],"trp":["inta",22656],"tlw":["abia",2225],"trw":["nava",1620],"lp":["abi","aint","van","fiin","zb","tina","vant","bia","atin","bai","abia","babi","vina","bati","aib"],"rp":["inta","inf","nav","iba","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",61576],"trp":["inc",60349],"tlw":["cinci",2724],"trw":["nici",22847],"lp":["ch","chi","cin","sch","schi","chii","chis","stin","cinc","bis"],"rp":["inc","nic","nici","nci","nist","inci","nch","nchi","inch","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["stiinta",654],"trw":["inca",8005],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",33243],"trp":["intr",61098],"tlw":["bine",14803],"trw":["intre",5472],"lp":["rin","bine","ven","veni","tine","rint","enti","rni","enit","rbi","even","bir","bie"],"rp":["intr","inte","nev","ient","inev","ibe","iber"]},"61":{"input":[1,3,4,5,6],"tlw":["tinea",1218],"trw":["inainte",6948],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dintre",7665],"trw":["niste",5419],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["chiar",12228],"trw":["incerca",1941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1200],"trw":["o",113236],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",642],"trp":["oa",151490],"trw":["oa",179],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",36626],"trp":["os",73956],"tlw":["so",137],"trw":["os",129],"lp":["so","sos","sso"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",8768],"trp":["oas",22126],"lp":["soa","aso","wo","swo","sow","woo","asoa","sowa","asso","ssow","aos"],"rp":["oas","oasa","ow","osa","ossa","owa","oass","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",29604],"trp":["-o",27659],"trw":["-",97955],"lp":["e-","eo","e-o"],"rp":["-o","oe","-e","o-","-o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",46041],"trp":["-a",104204],"tlw":["a-",97],"trw":["-a",320],"lp":["a-","e-a","eoa","a-a","a-o"],"rp":["-a","ox","-a-"]},"70":{"input":[2,3,7],"tlp":["do",69536],"trp":["od",23024],"tlw":["s-o",6502],"lp":["do","s-","s-o","de-","deo","eod","deod","eso","eos","deos","eose","e-s"],"rp":["od","-s","ose","-se","ode","odo","oses","osse"]},"71":{"input":[1,2,3,7],"tlp":["sa-",34714],"trp":["oda",11577],"tlw":["s-a",12787],"trw":["oase",184],"lp":["sa-","s-a","doa","a-s","sa-s","de-a","eoda","deoa","ado","asa-","da-"],"rp":["oda","oase","-as","-ad","-ade","osea","oad","oada","odea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",107166],"trp":["ot",74165],"tlw":["tot",13553],"trw":["otto",232],"lp":["to","tot","go","tog","tto","toto","gg","got","gt","gto","togo","tg"],"rp":["ot","og","oto","ott","otog","ogo","otto","oog"]},"73":{"input":[1,4,7],"tlp":["ga",71011],"trp":["oat",31855],"tlw":["toata",5023],"trw":["ofta",463],"lp":["ga","fo","toa","ag","toat","gat","ato","foa","aga","atoa","gata","ago","goa"],"rp":["oat","of","oata","ota","oga","oft","ogat"]},"74":{"input":[2,4,7],"tlp":["co",95698],"trp":["oc",55455],"tlw":["scos",703],"lp":["co","sco","sto","cto","cot","sot","soc","toc","gos","cos","gost","scot","goss"],"rp":["oc","ost","osc","oct","octo","oco","ocot"]},"75":{"input":[1,2,4,7],"tlp":["fos",18330],"trp":["oast",12711],"tlw":["fost",18063],"trw":["ostas",97],"lp":["fos","fost","aco","gas","coa","scoa","foc","coas","agos","coat","asto","sato","cato","sfo"],"rp":["oast","oca","oac","osta","ocat","oasc"]},"76":{"input":[3,4,7],"tlp":["ro",71384],"trp":["or",188766],"tlw":["rog",1945],"trw":["ore",1272],"lp":["ro","ge","eg","tor","gr","r-","tr-","rg","reg","ege","r-o","tr-o","gre","erg","reo"],"rp":["or","ort","-t","ore","ote"]},"77":{"input":[1,3,4,7],"tlp":["foar",10466],"trp":["oar",59190],"tlw":["toate",11462],"trw":["oare",2672],"lp":["foar","toar","for","roa","rag","ega","ator","gra","egat","a-t","arg","gea"],"rp":["oar","oare","oate","oart","ora","-ar","orta","oara"]},"78":{"input":[2,3,4,7],"tlp":["dor",9727],"trp":["ord",7233],"tlw":["rost",832],"lp":["dor","ros","cor","ce-","sor","rost","rso","ctor","deg","erso","stor","dege","roc","totd","doc"],"rp":["ord","oce","ostr","otd","otde"]},"79":{"input":[1,2,3,4,7],"tlw":["doar",7637],"trw":["oras",1618],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",291116],"trw":["nu",113453],"lp":[],"rp":["un","nu","on","no","ou","unu","uno","nou","nun","onu","ono","onn","non","oon","oun","uu","nuu","nno","onun","onon"]},"81":{"input":[1,5,7],"tlp":["au",127814],"trp":["ua",38098],"tlw":["au",14003],"trw":["una",3763],"lp":["au","anu","aun","auna","qu","anun","ano"],"rp":["ua","una","oua","noa","ona","nua","oan","noua","unoa","oana","nau","naun","nuna"]},"82":{"input":[2,5,7],"tlp":["su",87996],"trp":["us",98070],"tlw":["sus",2880],"trw":["jos",3880],"lp":["su","sun","sus","son","snu"],"rp":["us","ju","uns","jo","jun","nos","ons","unos","jos","juns","nsu","uso","nus","osu","nsus"]},"83":{"input":[1,2,5,7],"tlp":["sau",22053],"trp":["noas",7379],"tlw":["sau",21799],"trw":["usa",4343],"lp":["sau","asu","aju","ajun","soan","suna","sona","aus","ajo","anus","asun","ason","saju"],"rp":["noas","usa","joa","uas","usoa","nasu","ouas"]},"84":{"input":[3,5,7],"tlp":["eu",42582],"trp":["une",33961],"tlw":["eu",16688],"trw":["n-o",3069],"lp":["eu","enu","eun","enun","eno"],"rp":["une","n-","u-","nu-","-u","-un","ne-","ue","n-o","neo","one","uneo","-n","ony","une-"]},"85":{"input":[1,3,5,7],"tlp":["eau",24032],"trp":["n-a",17307],"trw":["n-a",2864],"lp":["eau","eaun","euna","que","xu","exu","e-au","eaua","xua","exua"],"rp":["n-a","-au","unea","ne-a","oane","neau","n-au","uque","ux","onea"]},"86":{"input":[2,3,5,7],"tlp":["du",82602],"trp":["use",37853],"tlw":["dus",2022],"trw":["unde",9415],"lp":["du","dou","dus","duse","eus","du-","esu","du-s"],"rp":["use","und","unde","ud","ndu","uses","unse","ond","u-s","ndo","ndu-","ude"]},"87":{"input":[1,2,3,5,7],"tlw":["doua",9678],"trw":["n-as",944],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",124429],"trp":["ut",118950],"tlw":["tu",6631],"trw":["unt",87],"lp":["tu","bu","gu","bo","tun","bun","totu"],"rp":["ut","ng","unt","ob","ub","ntu","otu","nto","ont","ung","ngu","utu","ug"]},"89":{"input":[1,4,5,7],"tlp":["atu",33704],"trp":["uta",13540],"tlw":["buna",3510],"trw":["nota",476],"lp":["atu","fu","gan","atun","ang","aut","anga","tau","buna","antu","fun","gatu","tua"],"rp":["uta","nga","uf","uat","ntoa","uga","oba"]},"90":{"input":[2,4,5,7],"tlp":["cu",251869],"trp":["uc",41800],"tlw":["cu",107724],"trw":["joc",840],"lp":["cu","con","cut","sunt","scu","cun","tunc","stu","cont","cuno","sub","cons","scut","tus"],"rp":["uc","unc","ocu","onst","ust","nost"]},"91":{"input":[1,2,4,5,7],"tlw":["facut",6146],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",139075],"trp":["ur",142738],"tlw":["greu",2486],"trw":["unor",2218],"lp":["ru","tru","ebu","tur","gur","rebu","reu","rob","run","r-u","tr-u","r-un","eru"],"rp":["ur","ntru","ute","ntr-","orb","oru","ngur"]},"93":{"input":[1,3,4,5,7],"tlw":["erau",9639],"trw":["n-ar",2738],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["trecut",2015],"trw":["usor",3025],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["fusese",5088],"trw":["noastra",2596],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",100912],"trw":["il",17933],"lp":[],"rp":["il","lo","li","oi","ol","io","olo","ilo","ili","oli","ll","iil","ill","lio","lii","oil","ilio","iol","lli","iilo"]},"97":{"input":[1,6,7],"tlp":["al",157962],"trp":["la",223904],"tlw":["al",17061],"trw":["la",103939],"lp":["al","ala","ali","zil","zo","alal"],"rp":["la","ioa","lal","ial","ila","oz","oia","loa","ozi","oal","ola","lia","iala","ilal"]},"98":{"input":[2,6,7],"tlp":["sol",5524],"trp":["osi",9398],"tlw":["sol",477],"trw":["ok",68],"lp":["sol","sl","sil","sosi","sio","sili"],"rp":["osi","los","olos","iso","ios","losi","ko","ls","lis","osii","ois","kil","kilo","iko"]},"99":{"input":[1,2,6,7],"tlp":["sal",9118],"trp":["las",16180],"tlw":["sala",1335],"trw":["lasa",3143],"lp":["sal","sla","sala","sola","alis","salo","wil","sall","als","sali","will"],"rp":["las","lasa","lasi","isoa","ioas","olas","llas","law","low"]},"100":{"input":[3,6,7],"tlp":["el",182428],"trp":["le",217374],"tlw":["el",30829],"trw":["le",16173],"lp":["el","ele","elo","eli","e-i","eil"],"rp":["le","ile","i-","-i","-l","l-","oie","lie","iile","lel","le-","ole","i-l","i-o"]},"101":{"input":[1,3,6,7],"tlp":["ale",32820],"trp":["i-a",24465],"tlw":["ale",8429],"trw":["i-a",2798],"lp":["ale","a-i","ela","a-l","eal","zile","eala","e-ai","elea","elal","eila","alea","zel","eali"],"rp":["i-a","-ai","lea","l-a","le-a","i-ai"]},"102":{"input":[2,3,6,7],"tlp":["si-",10078],"trp":["-si",12424],"tlw":["doi",4637],"trw":["ideile",361],"lp":["si-","doi","sel","eles","del","sele","delo","si-l","dio","si-i","esel"],"rp":["-si","les","iod","ld","lose","odi","old","lid","i-s"]},"103":{"input":[1,2,3,6,7],"tlw":["sa-i",9425],"trw":["lase",794],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",55302],"trp":["lt",70688],"tlw":["voi",6798],"trw":["lovi",446],"lp":["vo","gi","voi","toti","til","gl","tio"],"rp":["lt","ig","oti","ov","lti","lit","ito","ovi","olit","liti","lov","lig","lv"]},"105":{"input":[1,4,6,7],"tlp":["alt",31331],"trp":["lta",15965],"tlw":["afla",4776],"lp":["alt","fl","tal","fla","afl","afla","alta","voa","alti","val","avo","fol","folo","alat"],"rp":["lta","lat","lalt","iga","lita","lati"]},"106":{"input":[2,4,6,7],"tlp":["col",18912],"trp":["loc",16849],"tlw":["colt",621],"trw":["loc",5973],"lp":["col","cl","sig","cio","colo","cli","voc","cil","soci","soti"],"rp":["loc","icio","lic","osti","oci","ico","ltc","lc","osit","isto"]},"107":{"input":[1,2,4,6,7],"tlw":["acolo",7879],"trw":["lasat",1202],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",33441],"trp":["ori",36339],"tlw":["vor",6208],"trw":["lor",11526],"lp":["tel","tele","vor","ril","rile","rel","tori","rio","elor","rele","evo","egi","erio","evoi"],"rp":["ori","lor","leg","lte","ilor","-ti"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",7250],"trw":["i-ar",1059],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cel",9164],"trw":["orice",4726],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["astfel",4825],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ul",257995],"trw":["lui",42818],"lp":[],"rp":["ul","lu","ui","lui","iu","nul","ulu","ului","lin","lul","inu","nui","uni","noi","iul","lun","iun","ho","unul","unui"]},"113":{"input":[1,5,6,7],"tlp":["zu",17502],"trp":["uz",18000],"tlw":["ziua",2202],"trw":["lua",3594],"lp":["zu","azu","auz","alu","anul","auzi","ziu","zul","alul"],"rp":["uz","lan","lua","nal","uzi","uia","inua","uza","inal","ula","onal"]},"114":{"input":[2,5,6,7],"tlp":["sul",13027],"trp":["usi",13886],"tlw":["solul",203],"trw":["insusi",1408],"lp":["sul","solu","snui","siu","siun","sulu"],"rp":["usi","insu","jul","onsi","jl","ijl","jlo","ijlo","nsul","isnu","lus","ius","isu","niso"]},"115":{"input":[1,2,5,6,7],"tlw":["salon",359],"trw":["nasul",473],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",10235],"trp":["uie",12750],"trw":["nu-i",6710],"lp":["elu","elul","elui","enul"],"rp":["uie","u-i","nu-i","nel","unei","ule","iune","nele","nile","nule","ley","u-l","len","nu-l","inel","unel"]},"117":{"input":[1,3,5,6,7],"tlw":["auzea",594],"trw":["n-ai",1802],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seldon",899],"trw":["nu-si",1718],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["daneel",945],"trw":["indoiala",1534],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",54201],"trp":["ult",36980],"tlw":["totul",5658],"trw":["lungul",1158],"lp":["tul","bui","bil","tiu","bl","gin","tinu"],"rp":["ult","ing","uti","uit","into","ntul","utin","igu","ingu","uv","otul","itu","ulti"]},"121":{"input":[1,4,5,6,7],"tlw":["vazut",3775],"trw":["langa",4102],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["stiu",5950],"trw":["ochii",6711],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["atunci",10484],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trebuie",10427],"trw":["intr-o",7901],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vorba",4095],"trw":["legatura",2214],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["sigur",2888],"trw":["lucru",5287],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["singura",2707],"trw":["niciodata",5038],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",639],"trw":["p",1061],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",93968],"trp":["pa",161658],"tlw":["apa",3245],"trw":["pa",666],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",103043],"trp":["ps",4877],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["asp",12078],"trp":["pas",8637],"tlw":["apasa",575],"trw":["pas",1350],"lp":["asp","spa","sap","apas","aspa","aps","apsa","sapa"],"rp":["pas","pasa","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",52344],"trp":["pe",216440],"trw":["pe",110407],"lp":["ep","epe"],"rp":["pe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",10151],"trp":["pea",1505],"tlw":["ape",142],"lp":["ape","epa","xp","exp","eap","xpe","expe","eapa","epea","a'","apea"],"rp":["pea","'a","pape"]},"134":{"input":[2,3,8],"tlp":["esp",14229],"trp":["pes",7355],"tlw":["spe",120],"trw":["pese",104],"lp":["esp","desp","spe","dep","eped","espe","d'","sep","depe","eps","edep","deps"],"rp":["pes","ped","pede","pse","pese","pses","'d"]},"135":{"input":[1,2,3,8],"tlp":["depa",6164],"trp":["pad",2363],"tlw":["da'",470],"trw":["pedeapsa",277],"lp":["depa","aspe","epas","d'a","dap","apad","adap","da'","espa","deap","spad","sepa","xped","eaps","dape","apes"],"rp":["pad","pada","pase","psea"]},"136":{"input":[4,8],"trp":["pt",44775],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",16520],"trp":["pat",19529],"tlw":["fapt",2580],"trw":["pat",1592],"lp":["apt","fap","fapt","apta","tap","apat","tapa"],"rp":["pat","pta","ptat","pata"]},"138":{"input":[2,4,8],"tlp":["tsp",179],"trp":["pc",487],"lp":["tsp"],"rp":["pc","pts","ptsp"]},"139":{"input":[1,2,4,8],"tlp":["cap",19242],"trp":["pac",5660],"tlw":["cap",4694],"trw":["pacat",460],"lp":["cap","spat","capa","stap","sapt","scap","apac","apc","capc","apca"],"rp":["pac","past","paca","ptas","pca"]},"140":{"input":[3,4,8],"tlp":["ept",20779],"trp":["pr",175984],"tlw":["trepte",244],"trw":["perete",698],"lp":["ept","rep","rept","tep","tept","repe","rp","epte","rpr","epet","epr"],"rp":["pr","pre","per","pte","pet","pere","petr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",12184],"trp":["par",57159],"tlw":["repeta",897],"trw":["prea",8562],"lp":["apr","epta","apar","epar","apte","eapt","rap","reap","xper","xpr"],"rp":["par","part","pra","pare","prea","para","patr","pate","pera","ptea"]},"142":{"input":[2,3,4,8],"tlp":["spr",29330],"trp":["pest",6829],"tlw":["spre",12456],"trw":["peste",6431],"lp":["spr","spre","cep","espr","drep","step","spec","sper","resp","cept","cepe","ccep","spet","ecep"],"rp":["pest","pres","pec","pers","pect","prec"]},"143":{"input":[1,2,3,4,8],"tlw":["departe",3651],"trw":["parca",3176],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",55904],"trw":["m",611],"lp":[],"rp":["mp","mn","mm","pn","nm"]},"145":{"input":[1,5,8],"tlp":["am",164027],"trp":["ma",278091],"tlw":["am",32990],"trw":["ma",23028],"lp":["am","ama","aman","amn","amp","amna","apan"],"rp":["ma","man","pan","mana","pana","mna","pam","pama","mpa","mam","nap","mama","mpan"]},"146":{"input":[2,5,8],"tlp":["sm",3780],"trp":["nsp",2667],"lp":["sm"],"rp":["nsp","ms","nsm","jm"]},"147":{"input":[1,2,5,8],"tlp":["amas",5157],"trp":["mas",15541],"tlw":["sam",974],"trw":["masa",3415],"lp":["amas","sam","sma","sman","wm","wma","wman","ansp","ansm","ajm","ajma","asm","asam"],"rp":["mas","masa","maj","nspa","jma","paj","msw"]},"148":{"input":[3,5,8],"tlp":["em",62631],"trp":["me",133398],"tlw":["emmy",120],"trw":["pen",562],"lp":["em","eme","emn","emen","emp","emne","epen"],"rp":["me","pen","men","mne","mene","mpe","mem","nem","nep","my","mey","meye","meme"]},"149":{"input":[1,3,5,8],"tlp":["ame",19413],"trp":["mea",17220],"tlw":["amy",498],"trw":["mea",8040],"lp":["ame","eam","amen","eama","ema","emna","eamn","emea","eman","amne","xem","exem","xemp"],"rp":["mea","mnea","mane","max","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",11901],"trp":["med",6644],"tlw":["semn",1590],"trw":["mese",274],"lp":["sem","semn","seme","dem","dm","edem","demn","esem"],"rp":["med","mes","ndep","nsem","mese","mens","md","mped","mej","mejd","ndem","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["seama",5586],"trw":["newman",723],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",1176],"trp":["mb",18560],"lp":["tm"],"rp":["mb","mt","mpt","ntm"]},"153":{"input":[1,4,5,8],"tlp":["tam",11107],"trp":["mat",12972],"tlw":["tam",65],"trw":["pamant",2358],"lp":["tam","tamp","amb","fam","tama","apab","atm","amba"],"rp":["mat","ntam","mba","mant","mata","ptam","pant","mnat","pab","mbat","mta","ptan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3183],"trp":["mc",201],"lp":["cm"],"rp":["mc","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",2462],"trw":["manca",317],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",42362],"trp":["pent",38307],"tlw":["tem",615],"trw":["merry",352],"lp":["rm","rem","tem","erm","reme","rme","term","trem"],"rp":["pent","mer","ment","mbr","mpr","mpre","met","mte","mbe","mere","ntem","perm"]},"157":{"input":[1,3,4,5,8],"tlw":["eram",2315],"trw":["mare",9405],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["cemp",522],"trw":["mers",716],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["camera",2871],"trw":["macar",2850],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",47365],"trw":["pi",147],"lp":[],"rp":["pi","ip","pii","ipi","pip","piii","ipp","ppi","pipp","ippi","ipii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2966],"trp":["ipa",7902],"trw":["pai",991],"lp":["api","zap","zapa","aip"],"rp":["ipa","pia","pai","paz","paza","pipa","paia","ipai"]},"162":{"input":[2,6,8],"tlp":["spi",4099],"trp":["isp",6275],"lp":["spi","sip","sipi"],"rp":["isp","ips","psi","ipsi","pis","isip","pisi"]},"163":{"input":[1,2,6,8],"tlp":["spai",782],"trp":["ispa",2264],"trw":["pasi",1282],"lp":["spai","wisp","aisp"],"rp":["ispa","pasi","ipsa","pais","pias"]},"164":{"input":[3,6,8],"tlp":["epi",929],"trp":["pie",11267],"lp":["epi"],"rp":["pie","ipe","iep","piep","pipe","pei","ipei"]},"165":{"input":[1,3,6,8],"tlp":["epez",640],"trp":["pez",756],"tlw":["apei",412],"trw":["paie",113],"lp":["epez","apei"],"rp":["pez","pezi","paie","piez"]},"166":{"input":[2,3,6,8],"tlp":["disp",4472],"trp":["pid",1040],"trw":["piese",120],"lp":["disp","espi","depi","epis","eisp","dip","edip","epsi"],"rp":["pid","pied","ipse","ispe","pedi","pies","peis","pide","psei"]},"167":{"input":[1,2,3,6,8],"tlw":["zapada",443],"trw":["piesa",219],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2064],"trp":["pit",3627],"tlw":["tip",589],"lp":["tip","tipi"],"rp":["pit","pti","ptii","ipit","piti","ipt","piv","ptit"]},"169":{"input":[1,4,6,8],"tlp":["apit",1785],"trp":["piat",2890],"tlw":["tipa",384],"trw":["piata",623],"lp":["apit","tipa","fip","fipt","tapi"],"rp":["piat","pita","pati","pav","ptia","ipat","pavi","ptz"]},"170":{"input":[2,4,6,8],"tlp":["cip",1891],"trp":["pic",7270],"tlw":["tipic",72],"trw":["pic",662],"lp":["cip","spit","cipi","cisp","scip","spic"],"rp":["pic","pici","psit","pist","pci","pisc","icip","pict","ipic"]},"171":{"input":[1,2,4,6,8],"tlw":["twisp",358],"trw":["pisica",266],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1804],"trp":["pri",68428],"trw":["privi",2867],"lp":["rip","rpri","epti","ripi","tipe"],"rp":["pri","priv","peri","pier","prie","pir","iept","piri","iper","prii","prit","piet","ptie","prir","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["aparitia",471],"trw":["privirea",2009],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spirit",395],"trw":["priveste",1176],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["expresie",605],"trw":["paris",654],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",133805],"trw":["imi",6836],"lp":[],"rp":["mi","im","min","imp","imi","nim","nimi","pin","him","hip","mii","mni","inim","mpi","imin","mini","impi","mpin","imii","hm"]},"177":{"input":[1,5,6,8],"tlp":["ami",12341],"trp":["mai",98477],"tlw":["amiaza",160],"trw":["mai",80029],"lp":["ami","amin","zam","anim","aim","aima"],"rp":["mai","ima","mina","main","nima","pina","mani","inap","pani","iam","impa","mia","miaz","hipa"]},"178":{"input":[2,5,6,8],"tlp":["sim",14730],"trp":["mis",9725],"tlw":["sim",169],"trw":["nisip",353],"lp":["sim","simp","smi","spin","smin","smis"],"rp":["mis","mij","imis","insp","mnis","psih","misi","pins","ism","nsmi","jim","nism","nspi","mik"]},"179":{"input":[1,2,5,6,8],"tlw":["spaima",491],"trw":["masina",2136],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emei",6102],"trp":["ime",17305],"trw":["mine",8864],"lp":["emei","emi","enim","emni","epin"],"rp":["ime","meni","mine","mei","imen","nime","mie","meie","impe","hem","mpie","hme","nemi","mnei","hmey"]},"181":{"input":[1,3,5,6,8],"tlw":["examina",267],"trw":["maine",960],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["depinde",317],"trw":["mesei",432],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["asemeni",170],"trw":["inseamna",2064],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",26063],"trp":["mit",11574],"tlw":["timp",11216],"trw":["mintii",377],"lp":["tim","timp","timi","bim"],"rp":["mit","mint","imt","imb","mti","imti","himb","imit","ntim","mbi","mv","mtit","imbi","miti","mbin","mnit"]},"185":{"input":[1,4,5,6,8],"tlw":["zambi",959],"trw":["pamint",327],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["simti",2661],"trw":["nimic",9112],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["stiam",937],"trw":["mica",2010],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vreme",4271],"trw":["prin",13288],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["femeie",2003],"trw":["prima",3179],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["trimis",946],"trw":["incepe",1001],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["dimineata",2070],"trw":["imediat",2866],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",78466],"trw":["po",250],"lp":[],"rp":["po","op","opo","pop","popo","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",15763],"trp":["poa",16012],"lp":["apo","apoa"],"rp":["poa","oap","opa","oapa","opoa"]},"194":{"input":[2,7,8],"tlp":["spo",1393],"trp":["pos",4845],"lp":["spo","sop"],"rp":["pos","osp","ppos","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",506],"trp":["oasp",820],"lp":["apos","soap"],"rp":["oasp","pow"]},"196":{"input":[3,7,8],"tlp":["eop",544],"trp":["ope",5829],"trw":["pe-o",124],"lp":["eop","epo","eopo"],"rp":["ope","pe-","poe","o'","pe-o","oep","-p","-po"]},"197":{"input":[1,3,7,8],"tlp":["eopa",329],"trp":["oape",5724],"lp":["eopa","eoap"],"rp":["oape","pa-","pa-a","pe-a","-ap","-apo"]},"198":{"input":[2,3,7,8],"tlp":["deop",448],"trp":["pod",1174],"trw":["pod",151],"lp":["deop","espo","depo"],"rp":["pod","pode","oped","o'd","'do","o'do","pose","podo","ospe"]},"199":{"input":[1,2,3,7,8],"trw":["podea",484],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",280],"trp":["pot",14753],"trw":["pot",6200],"lp":["top","topo"],"rp":["pot","opt","pto","poto","opot"]},"201":{"input":[1,4,7,8],"trp":["poat",13885],"trw":["poata",1395],"lp":[],"rp":["poat","oapt","pof","pag","poft","opat","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["cop",12351],"trp":["post",1578],"tlw":["scop",481],"trw":["post",334],"lp":["cop","scop","sopt","stop"],"rp":["post","poc","opts"]},"203":{"input":[1,2,4,7,8],"tlw":["soapta",372],"trw":["ostap",497],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",9845],"trp":["pro",33227],"trw":["pro",584],"lp":["rop","ropr","torp","ropo"],"rp":["pro","por","prop","port","opr","oper","potr","orp","preg","opor","prot","preo","opre","pote","prog","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["aproape",5419],"trw":["poate",12490],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corp",515],"trw":["prost",652],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["castorp",852],"trw":["profesor",467],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["pu",141518],"trw":["om",4434],"lp":[],"rp":["pu","um","mu","om","up","mo","pun","num","omn","mun","mnu","umn","omnu","mpo","mpu","mom","omu","upu","omp","umu"]},"209":{"input":[1,5,7,8],"tlp":["apu",6837],"trp":["upa",22884],"trw":["puna",1094],"lp":["apu","anum","amu"],"rp":["upa","uma","oam","numa","moa","oma","oamn","noap","puna","oman","manu","napo","uman","umoa","ompa","mau","umpa"]},"210":{"input":[2,5,7,8],"tlp":["spu",46684],"trp":["pus",30635],"tlw":["spus",7687],"trw":["pus",1846],"lp":["spu","spun","spus","sup","supu","smu","sum","som","somn"],"rp":["pus","puns","mos","jum","mus","umos","mons","usm","opus","mpos","upus"]},"211":{"input":[1,2,5,7,8],"tlw":["spuna",1588],"trw":["pusa",270],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",10511],"trp":["ume",17000],"trw":["meu",6128],"lp":["epu","emu","emo","e-m"],"rp":["ume","pune","-m","m-","ome","omen","umne","nume","meu","mome","u-m","nu-m","upe","umen","unem","pome"]},"213":{"input":[1,3,5,7,8],"tlw":["anume",1489],"trw":["m-am",5385],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["spuse",11543],"trw":["mod",2741],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dupa",19290],"trw":["m-as",588],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gm",4573],"trp":["put",44011],"tlw":["tom",831],"trw":["putut",3710],"lp":["gm","gmu","gmun","tum","tom","gom","gomo"],"rp":["put","ptu","putu","mot","upt","mpot","umb","pub","munt","omot","nopt","mut","omb"]},"217":{"input":[1,4,5,7,8],"tlw":["fum",415],"trw":["muta",298],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["cum",21263],"trw":["punct",1203],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["acum",14119],"trw":["munca",1233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",794],"trw":["pentru",38307],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2036],"trw":["putea",12961],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["drum",2045],"trw":["precum",1277],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["asupra",4961],"trw":["jumatate",2548],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",51269],"trw":["lipi",125],"lp":[],"rp":["pl","poi","pli","opi","lip","pil","pol","poli","opii","opil","plo","ipl","lipi","lop","piil","ilip","ipo","lp","opol","ipil"]},"225":{"input":[1,6,7,8],"tlp":["apoi",14490],"trp":["pla",21202],"tlw":["apoi",11964],"trw":["ploaia",308],"lp":["apoi","apl","alp","apli","alpi","aipo"],"rp":["pla","lipa","pal","poz","pozi","opia","pala","ipal","pali","ploa","pila","lap","poal","ploz"]},"226":{"input":[2,6,7,8],"tlp":["spl",128],"trp":["posi",2885],"trw":["lipsi",96],"lp":["spl","spio"],"rp":["posi","lips","ispo","oisp","ipos"]},"227":{"input":[1,2,6,7,8],"tlw":["spala",165],"trw":["lipsa",702],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",2223],"trp":["ple",12048],"trw":["piele",586],"lp":["epl","epli","elep"],"rp":["ple","opie","pel","piel","iple","lep","lipe","pele","lope","pile","pelo","ipel","pleo","ople","lpe","opei","i-p"]},"229":{"input":[1,3,6,7,8],"tlw":["apele",237],"trw":["pielea",663],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spele",82],"trw":["leopold",96],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["deplasa",142],"trw":["pilda",452],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",144],"trp":["poti",3337],"tlw":["topi",76],"trw":["poti",3337],"lp":["topi","gip","gipt"],"rp":["poti","pov","opti","plit","pito","ptil","ipot","opit","poit"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",379],"trw":["pozitia",504],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["copii",1305],"trw":["lipsit",548],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["clipa",4697],"trw":["politica",737],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["opri",1970],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["apropie",1375],"trw":["propria",852],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["clipe",748],"trw":["plece",755],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["spatele",2337],"trw":["picioare",2645],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mul",40796],"trw":["omul",2345],"lp":[],"rp":["mul","pul","mpl","lum","umi","mnul","lumi","impo","mil","umin","plu","impu","impl","plin","mpul","lim","mili","imu","mplu","imul"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["numai",8412],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simplu",2223],"trw":["plus",1041],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["simpla",704],"trw":["psihanaliza",445],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mele",3338],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exemplu",767],"trw":["oameni",4178],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["domnule",3620],"trw":["limpede",719],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["sa-mi",4566],"trw":["mesajul",279],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["timpul",4000],"trw":["mult",13114],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["faptul",2300],"trw":["multa",2401],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chipul",1320],"trw":["mijlocul",1212],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["capul",3813],"trw":["placut",782],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["trupul",1201],"trw":["multe",4923],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["ti-am",981],"trw":["probabil",2719],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["sigmund",4378],"trw":["inceput",3590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["dumneavoastra",3116],"trw":["pardaillan",1106],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",511],"tlw":["a",83146],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",3507],"tlw":["s",933],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",334071],"tlw":["sa",168486],"lp":["sa","as","asa","sas","ssa","asas","wa","aw","sw","ass","ws","was"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",21380],"tlw":["e",25573],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",331408],"tlw":["ea",17717],"lp":["ea","ex","eea","ae","xa","exa","xe","exe","ax"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",474727],"tlw":["de",299045],"lp":["de","se","es","ed","des","ese","ede","ses","sese","dee","sed","dese","sse","ess","edes","esed","sede","dd","eed","eses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",156223],"tlw":["da",10448],"lp":["da","ad","ase","eas","dea","sea","ada","ade","dad","esa","edea","deas","ases","adea","asea","esea","sase","eeas","dade","ew"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",3013],"tlw":["t",835],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",414820],"tlw":["fata",15507],"lp":["at","ta","ata","fa","tat","af","fat","atat","fata","tf","afa","tata","ft","afat","fta","ff","att","tta","ftat","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",311126],"tlw":["c",706],"lp":["st","sc","ct","cc","tc","ts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",523509],"tlw":["ca",133317],"lp":["ca","ac","sta","ast","cat","aca","fac","asta","sca","asc","cas","asca","act","sf","stat","sat","casa","sfa","tac","faca"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",521801],"tlw":["te",15374],"lp":["re","te","er","tr","tre","et","rt","ere","rte","ter","ete","ret","tere","etr","ert","rer","tet","etre","rere","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",509043],"tlw":["era",39299],"lp":["ar","ra","are","ate","era","rea","ara","tea","fe","tra","art","rat","arte","tar","tate","far","rta","area","fara","fr"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",303452],"tlw":["ce",59249],"lp":["ce","ec","est","ste","este","cr","str","ces","dr","rec","cest","rc","rs","cre","res","cer","dec","esc","rd","cee"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["car",108000],"tlw":["care",72655],"lp":["car","care","ace","dar","cea","dat","eca","ras","aces","dac","daca","stra","data","acea","ecat","ceea","face","rca","east","astr"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",3834],"trw":["n",1145],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",216706],"trp":["na",142605],"tlw":["an",1202],"trw":["na",594],"lp":["an","ana","ann","anan","anna","aq","anaq"],"rp":["na","nan","nna","naq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",3093],"trp":["ns",69609],"trw":["j",435],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",20324],"trp":["nsa",12265],"tlw":["sansa",539],"trw":["nas",518],"lp":["aj","ans","san","ansa","anj","sana","aja","saj","sans","anja","asan","wn","anas","awn"],"rp":["nsa","ja","nas","nja","nsas","jan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",157322],"trp":["ne",182563],"tlw":["en",86],"trw":["ne",11044],"lp":["en","ene","ey","eyn","enn","eye","een","enen","eyne","enny","enne"],"rp":["ne","yn","nen","nne","ny","nee","ye","nny","yne"]},"21":{"input":[1,3,5],"tlp":["ane",10158],"trp":["nea",30604],"tlw":["anne",526],"trw":["nea",342],"lp":["ane","enea","ena","ean","anee","ay","anne","anea","anen","xan","exan","eann","aye","eane","anx"],"rp":["nea","ya","nay","yx","nx"]},"22":{"input":[2,3,5],"tlp":["ej",6230],"trp":["nd",131965],"tlw":["sens",684],"trw":["je",103],"lp":["ej","sen","den","ens","dej","end","dy","sens","sey","ssey","seyn"],"rp":["nd","nde","nse","je","nes","ndes","nses","jd","ys"]},"23":{"input":[1,2,3,5],"tlp":["and",65203],"trp":["nda",9766],"tlw":["deja",3062],"trw":["new",498],"lp":["and","dan","anda","ande","eja","deja","adan","anse","dane","dans","esan","esaj","eaj"],"rp":["nda","ndea","nsea","neas","nand","new","jea"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",2355],"trp":["nt",306047],"tlw":["b",322],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",71864],"trp":["nta",47119],"tlw":["ba",2052],"trw":["nat",115],"lp":["ba","ant","ab","tan","bat","anta","aba","ban","tant","bab","tana","bata","anat","fan","tab"],"rp":["nta","nat","nf","ntat","nata"]},"26":{"input":[2,4,5],"tlp":["bs",4364],"trp":["nc",92637],"lp":["bs","cn","bc","bst","sb","tj"],"rp":["nc","nst","nct","jb"]},"27":{"input":[1,2,4,5],"tlp":["can",32837],"trp":["nca",22051],"tlw":["banca",519],"trw":["nasca",92],"lp":["can","anc","stan","anca","cant","bas","abs","bast","cab","taj","tanc","acan","banc","sab"],"rp":["nca","ncat","nsta","nast","nanc","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",84157],"trp":["ntr",104253],"tlw":["brett",483],"trw":["nr",169],"lp":["ent","entr","eb","reb","treb","be","rb","br","rn","ten","ren","ern","rbe","tent"],"rp":["ntr","nte","ntre","ner","nter","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",24100],"trp":["ntra",6602],"tlw":["barbat",1660],"lp":["ran","enta","bar","eba","reba","rba","bra","tran","arb","rab","arba","bea","barb","rbat","rant","ante"],"rp":["ntra","nar","ntea","neat"]},"30":{"input":[2,3,4,5],"tlp":["cen",5052],"trp":["nce",27047],"tlw":["recent",181],"trw":["jerry",121],"lp":["cen","dent","bes","cent","rbes","bse","sten","sent","bser","best"],"rp":["nce","ncer","ndr","nec","ndre","ncet","ncr","ndc","ncre","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["cand",24121],"trw":["jeff",677],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",110946],"trw":["ii",23134],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",175637],"trp":["ia",127873],"tlw":["ai",14411],"trw":["ia",3588],"lp":["ai","zi","az","za","aza","aia","azi","zia","zii","azia","aii","aiz","azii"],"rp":["ia","iz","iza","izi","iaz","iaza","izii"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",392768],"trp":["is",116257],"tlw":["si",229731],"trw":["isi",19173],"lp":["si","sis","sii","sk","ski","ssi","sisi","siss"],"rp":["is","isi","ki","ik","ks","iis","isk","iss","iki","kik","kiki","isis"]},"35":{"input":[1,2,6],"tlp":["asi",21012],"trp":["isa",3757],"tlw":["zis",2561],"trw":["iasa",754],"lp":["asi","zis","sai","sia","ak","wi","asis","sasi","wis","ais","aias","saiz","asii","zas","zias"],"rp":["isa","ias","ka","iasa","iasi"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",94946],"trp":["ie",135041],"tlw":["ei",24160],"trw":["iei",524],"lp":["ei","eie","eii"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",32829],"trp":["ize",3487],"tlw":["zeii",292],"trw":["izea",421],"lp":["ez","ze","eze","ezi","xi","exi","aie","eza","eia","eaz","eaza","aze","zea","zie","zei","eai","eiz","eize"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",145395],"trp":["id",28001],"tlw":["desi",3541],"trw":["iesi",1561],"lp":["di","esi","edi","dis","desi","sie","sid","side","die","sise","sei","sedi"],"rp":["id","ise","ide","ies","idi","iesi","ke","idee"]},"39":{"input":[1,2,3,6],"tlp":["zise",7538],"trp":["ida",1906],"tlw":["zise",6592],"trw":["ideea",1322],"lp":["zise","xis","exis","adi","dia","sez","asez","edia","seza","easi","dai","zid","esia","aies","dez","aid","ezis","aide","ake"],"rp":["ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",295163],"trp":["it",151806],"tlw":["ti",1335],"trw":["iti",3989],"lp":["ti","vi","tii","tit","tiv","vit","vii","titi","viit","tivi","tv"],"rp":["it","iv","iti","ivi","ivit","iit","itii","itiv","itit"]},"41":{"input":[1,4,6],"tlp":["va",110914],"trp":["ita",36266],"tlw":["fi",38843],"trw":["iata",1833],"lp":["va","fi","ati","av","tia","fii","vaz","zit","via","viat","ava","tai","tati","atii"],"rp":["ita","iat","itat","iata","iva","if"]},"42":{"input":[2,4,6],"tlp":["ci",156406],"trp":["ic",148028],"tlw":["ci",3836],"trw":["ici",186],"lp":["ci","sti","sit","cit","cti","tic","stii","stit","tis","vic","ctiv","vis","cii","sist"],"rp":["ic","ici","ist","isc","isti","itic"]},"43":{"input":[1,2,4,6],"tlp":["aci",11683],"trp":["ica",34598],"tlw":["aici",9541],"lp":["aci","aic","aici","caz","stia","acti","zic","fic","cati","caci","cia","asti","tica","faci","cai"],"rp":["ica","ista","icat","isca","ific"]},"44":{"input":[3,4,6],"tlp":["ri",261934],"trp":["ir",38667],"tlw":["trei",5142],"trw":["ieri",560],"lp":["ri","ve","ev","eri","vr","vre","tie","riv","tri","eti","rie","rei","rit","rivi","rti"],"rp":["ir","ire","ite","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",33520],"trp":["iar",32094],"tlw":["avea",12237],"trw":["iar",16087],"lp":["eva","ari","ave","vea","fie","avea","rez","var","ria","evar","arti","reze","feri","vrea","vara","teva","rai","raz"],"rp":["iar","irea"]},"46":{"input":[2,3,4,6],"tlp":["ric",22696],"trp":["ice",14452],"tlw":["cei",7477],"trw":["iesit",918],"lp":["ric","eci","esti","dev","dic","cev","cei","ris","cri","ved","vede","rid","ves","ridi","eric","scri"],"rp":["ice","iste","iec","idic"]},"47":{"input":[1,2,3,4,6],"tlw":["ceva",11423],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",750933],"trw":["in",184145],"lp":[],"rp":["in","ni","hi","ini","nii","iin","hii","nin","ih","hn","inii","nni","ihn","iini","hin","inn","ihi","nh","hni","inin"]},"49":{"input":[1,5,6],"tlp":["ani",21231],"trp":["ina",49485],"tlw":["ani",6375],"trw":["hai",1393],"lp":["ani","ain","aini","ah","aha","anii","zin","zan"],"rp":["ina","ha","hia","nai","inai","nain","nz","hai","nia","han","ian","nza"]},"50":{"input":[2,5,6],"tlp":["sin",18411],"trp":["ins",33866],"tlw":["sin",190],"trw":["jh",411],"lp":["sin","sh","sih","sini","sni"],"rp":["ins","nis","ij","his","nsi","inis","ji","isn","iji","insi","jin","ijin","nsis","nk","nik"]},"51":{"input":[1,2,5,6],"tlp":["asin",3239],"trp":["insa",9893],"tlw":["ash",252],"trw":["insa",7993],"lp":["asin","sina","aji","ank","siha","sha","ash","ansi","ajii","anis","asni"],"rp":["insa","ija","hisa","hans","jak","kan","jah","ijah","hka"]},"52":{"input":[3,5,6],"tlp":["eni",33619],"trp":["ine",65502],"tlw":["eh",87],"trw":["hei",371],"lp":["eni","enii","ein","enin","eh","enie"],"rp":["ine","he","nei","ien","nie","hei","nein","inei","hen","heie","nnie","niei","hne","hie"]},"53":{"input":[1,3,5,6],"tlp":["aine",3733],"trp":["inea",7586],"trw":["haine",380],"lp":["aine","zen","ezen","enz","anie","ezin","enza","zne","azne","ezn","ezna","enzi"],"rp":["inea","nez","neze","hea","iena","nze","heia","neaz"]},"54":{"input":[2,3,5,6],"tlp":["din",90282],"trp":["ind",36487],"tlw":["din",67566],"trw":["iesind",261],"lp":["din","sine","dine","edin","enis","ensi"],"rp":["ind","ndi","inse","inde","iind","indi","hise","iden","nsid","hid","nise","hes","hide","nind"]},"55":{"input":[1,2,3,5,6],"tlw":["sinea",401],"trw":["jake",478],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",58255],"trp":["int",156160],"tlw":["vin",1566],"trw":["intii",232],"lp":["bi","tin","bin","vin","th","bit","vint","tint"],"rp":["int","nti","ib","nit","inti","ntin","nv","ibi","iint","inv","nvi","ntii"]},"57":{"input":[1,4,5,6],"tlp":["abi",11731],"trp":["inta",22656],"tlw":["abia",2225],"trw":["nava",1620],"lp":["abi","aint","van","fiin","zb","tina","vant","bia","atin","bai","abia","babi","vina","bati","aib"],"rp":["inta","inf","nav","iba","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",61576],"trp":["inc",60349],"tlw":["cinci",2724],"trw":["nici",22847],"lp":["ch","chi","cin","sch","schi","chii","chis","stin","cinc","bis"],"rp":["inc","nic","nici","nci","nist","inci","nch","nchi","inch","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["stiinta",654],"trw":["inca",8005],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",33243],"trp":["intr",61098],"tlw":["bine",14803],"trw":["intre",5472],"lp":["rin","bine","ven","veni","tine","rint","enti","rni","enit","rbi","even","bir","bie"],"rp":["intr","inte","nev","ient","inev","ibe","iber"]},"61":{"input":[1,3,4,5,6],"tlw":["tinea",1218],"trw":["inainte",6948],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dintre",7665],"trw":["niste",5419],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["chiar",12228],"trw":["incerca",1941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1200],"trw":["o",113236],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",642],"trp":["oa",151490],"trw":["oa",179],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",36626],"trp":["os",73956],"tlw":["so",137],"trw":["os",129],"lp":["so","sos","sso"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",8768],"trp":["oas",22126],"lp":["soa","aso","wo","swo","sow","woo","asoa","sowa","asso","ssow","aos"],"rp":["oas","oasa","ow","osa","ossa","owa","oass","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",29604],"trp":["-o",27659],"trw":["-",97955],"lp":["e-","eo","e-o"],"rp":["-o","oe","-e","o-","-o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",46041],"trp":["-a",104204],"tlw":["a-",97],"trw":["-a",320],"lp":["a-","e-a","eoa","a-a","a-o"],"rp":["-a","ox","-a-"]},"70":{"input":[2,3,7],"tlp":["do",69536],"trp":["od",23024],"tlw":["s-o",6502],"lp":["do","s-","s-o","de-","deo","eod","deod","eso","eos","deos","eose","e-s"],"rp":["od","-s","ose","-se","ode","odo","oses","osse"]},"71":{"input":[1,2,3,7],"tlp":["sa-",34714],"trp":["oda",11577],"tlw":["s-a",12787],"trw":["oase",184],"lp":["sa-","s-a","doa","a-s","sa-s","de-a","eoda","deoa","ado","asa-","da-"],"rp":["oda","oase","-as","-ad","-ade","osea","oad","oada","odea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",107166],"trp":["ot",74165],"tlw":["tot",13553],"trw":["otto",232],"lp":["to","tot","go","tog","tto","toto","gg","got","gt","gto","togo","tg"],"rp":["ot","og","oto","ott","otog","ogo","otto","oog"]},"73":{"input":[1,4,7],"tlp":["ga",71011],"trp":["oat",31855],"tlw":["toata",5023],"trw":["ofta",463],"lp":["ga","fo","toa","ag","toat","gat","ato","foa","aga","atoa","gata","ago","goa"],"rp":["oat","of","oata","ota","oga","oft","ogat"]},"74":{"input":[2,4,7],"tlp":["co",95698],"trp":["oc",55455],"tlw":["scos",703],"lp":["co","sco","sto","cto","cot","sot","soc","toc","gos","cos","gost","scot","goss"],"rp":["oc","ost","osc","oct","octo","oco","ocot"]},"75":{"input":[1,2,4,7],"tlp":["fos",18330],"trp":["oast",12711],"tlw":["fost",18063],"trw":["ostas",97],"lp":["fos","fost","aco","gas","coa","scoa","foc","coas","agos","coat","asto","sato","cato","sfo"],"rp":["oast","oca","oac","osta","ocat","oasc"]},"76":{"input":[3,4,7],"tlp":["ro",71384],"trp":["or",188766],"tlw":["rog",1945],"trw":["ore",1272],"lp":["ro","ge","eg","tor","gr","r-","tr-","rg","reg","ege","r-o","tr-o","gre","erg","reo"],"rp":["or","ort","-t","ore","ote"]},"77":{"input":[1,3,4,7],"tlp":["foar",10466],"trp":["oar",59190],"tlw":["toate",11462],"trw":["oare",2672],"lp":["foar","toar","for","roa","rag","ega","ator","gra","egat","a-t","arg","gea"],"rp":["oar","oare","oate","oart","ora","-ar","orta","oara"]},"78":{"input":[2,3,4,7],"tlp":["dor",9727],"trp":["ord",7233],"tlw":["rost",832],"lp":["dor","ros","cor","ce-","sor","rost","rso","ctor","deg","erso","stor","dege","roc","totd","doc"],"rp":["ord","oce","ostr","otd","otde"]},"79":{"input":[1,2,3,4,7],"tlw":["doar",7637],"trw":["oras",1618],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",291116],"trw":["nu",113453],"lp":[],"rp":["un","nu","on","no","ou","unu","uno","nou","nun","onu","ono","onn","non","oon","oun","uu","nuu","nno","onun","onon"]},"81":{"input":[1,5,7],"tlp":["au",127814],"trp":["ua",38098],"tlw":["au",14003],"trw":["una",3763],"lp":["au","anu","aun","auna","qu","anun","ano"],"rp":["ua","una","oua","noa","ona","nua","oan","noua","unoa","oana","nau","naun","nuna"]},"82":{"input":[2,5,7],"tlp":["su",87996],"trp":["us",98070],"tlw":["sus",2880],"trw":["jos",3880],"lp":["su","sun","sus","son","snu"],"rp":["us","ju","uns","jo","jun","nos","ons","unos","jos","juns","nsu","uso","nus","osu","nsus"]},"83":{"input":[1,2,5,7],"tlp":["sau",22053],"trp":["noas",7379],"tlw":["sau",21799],"trw":["usa",4343],"lp":["sau","asu","aju","ajun","soan","suna","sona","aus","ajo","anus","asun","ason","saju"],"rp":["noas","usa","joa","uas","usoa","nasu","ouas"]},"84":{"input":[3,5,7],"tlp":["eu",42582],"trp":["une",33961],"tlw":["eu",16688],"trw":["n-o",3069],"lp":["eu","enu","eun","enun","eno"],"rp":["une","n-","u-","nu-","-u","-un","ne-","ue","n-o","neo","one","uneo","-n","ony","une-"]},"85":{"input":[1,3,5,7],"tlp":["eau",24032],"trp":["n-a",17307],"trw":["n-a",2864],"lp":["eau","eaun","euna","que","xu","exu","e-au","eaua","xua","exua"],"rp":["n-a","-au","unea","ne-a","oane","neau","n-au","uque","ux","onea"]},"86":{"input":[2,3,5,7],"tlp":["du",82602],"trp":["use",37853],"tlw":["dus",2022],"trw":["unde",9415],"lp":["du","dou","dus","duse","eus","du-","esu","du-s"],"rp":["use","und","unde","ud","ndu","uses","unse","ond","u-s","ndo","ndu-","ude"]},"87":{"input":[1,2,3,5,7],"tlw":["doua",9678],"trw":["n-as",944],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",124429],"trp":["ut",118950],"tlw":["tu",6631],"trw":["unt",87],"lp":["tu","bu","gu","bo","tun","bun","totu"],"rp":["ut","ng","unt","ob","ub","ntu","otu","nto","ont","ung","ngu","utu","ug"]},"89":{"input":[1,4,5,7],"tlp":["atu",33704],"trp":["uta",13540],"tlw":["buna",3510],"trw":["nota",476],"lp":["atu","fu","gan","atun","ang","aut","anga","tau","buna","antu","fun","gatu","tua"],"rp":["uta","nga","uf","uat","ntoa","uga","oba"]},"90":{"input":[2,4,5,7],"tlp":["cu",251869],"trp":["uc",41800],"tlw":["cu",107724],"trw":["joc",840],"lp":["cu","con","cut","sunt","scu","cun","tunc","stu","cont","cuno","sub","cons","scut","tus"],"rp":["uc","unc","ocu","onst","ust","nost"]},"91":{"input":[1,2,4,5,7],"tlw":["facut",6146],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",139075],"trp":["ur",142738],"tlw":["greu",2486],"trw":["unor",2218],"lp":["ru","tru","ebu","tur","gur","rebu","reu","rob","run","r-u","tr-u","r-un","eru"],"rp":["ur","ntru","ute","ntr-","orb","oru","ngur"]},"93":{"input":[1,3,4,5,7],"tlw":["erau",9639],"trw":["n-ar",2738],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["trecut",2015],"trw":["usor",3025],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["fusese",5088],"trw":["noastra",2596],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",100912],"trw":["il",17933],"lp":[],"rp":["il","lo","li","oi","ol","io","olo","ilo","ili","oli","ll","iil","ill","lio","lii","oil","ilio","iol","lli","iilo"]},"97":{"input":[1,6,7],"tlp":["al",157962],"trp":["la",223904],"tlw":["al",17061],"trw":["la",103939],"lp":["al","ala","ali","zil","zo","alal"],"rp":["la","ioa","lal","ial","ila","oz","oia","loa","ozi","oal","ola","lia","iala","ilal"]},"98":{"input":[2,6,7],"tlp":["sol",5524],"trp":["osi",9398],"tlw":["sol",477],"trw":["ok",68],"lp":["sol","sl","sil","sosi","sio","sili"],"rp":["osi","los","olos","iso","ios","losi","ko","ls","lis","osii","ois","kil","kilo","iko"]},"99":{"input":[1,2,6,7],"tlp":["sal",9118],"trp":["las",16180],"tlw":["sala",1335],"trw":["lasa",3143],"lp":["sal","sla","sala","sola","alis","salo","wil","sall","als","sali","will"],"rp":["las","lasa","lasi","isoa","ioas","olas","llas","law","low"]},"100":{"input":[3,6,7],"tlp":["el",182428],"trp":["le",217374],"tlw":["el",30829],"trw":["le",16173],"lp":["el","ele","elo","eli","e-i","eil"],"rp":["le","ile","i-","-i","-l","l-","oie","lie","iile","lel","le-","ole","i-l","i-o"]},"101":{"input":[1,3,6,7],"tlp":["ale",32820],"trp":["i-a",24465],"tlw":["ale",8429],"trw":["i-a",2798],"lp":["ale","a-i","ela","a-l","eal","zile","eala","e-ai","elea","elal","eila","alea","zel","eali"],"rp":["i-a","-ai","lea","l-a","le-a","i-ai"]},"102":{"input":[2,3,6,7],"tlp":["si-",10078],"trp":["-si",12424],"tlw":["doi",4637],"trw":["ideile",361],"lp":["si-","doi","sel","eles","del","sele","delo","si-l","dio","si-i","esel"],"rp":["-si","les","iod","ld","lose","odi","old","lid","i-s"]},"103":{"input":[1,2,3,6,7],"tlw":["sa-i",9425],"trw":["lase",794],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",55302],"trp":["lt",70688],"tlw":["voi",6798],"trw":["lovi",446],"lp":["vo","gi","voi","toti","til","gl","tio"],"rp":["lt","ig","oti","ov","lti","lit","ito","ovi","olit","liti","lov","lig","lv"]},"105":{"input":[1,4,6,7],"tlp":["alt",31331],"trp":["lta",15965],"tlw":["afla",4776],"lp":["alt","fl","tal","fla","afl","afla","alta","voa","alti","val","avo","fol","folo","alat"],"rp":["lta","lat","lalt","iga","lita","lati"]},"106":{"input":[2,4,6,7],"tlp":["col",18912],"trp":["loc",16849],"tlw":["colt",621],"trw":["loc",5973],"lp":["col","cl","sig","cio","colo","cli","voc","cil","soci","soti"],"rp":["loc","icio","lic","osti","oci","ico","ltc","lc","osit","isto"]},"107":{"input":[1,2,4,6,7],"tlw":["acolo",7879],"trw":["lasat",1202],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",33441],"trp":["ori",36339],"tlw":["vor",6208],"trw":["lor",11526],"lp":["tel","tele","vor","ril","rile","rel","tori","rio","elor","rele","evo","egi","erio","evoi"],"rp":["ori","lor","leg","lte","ilor","-ti"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",7250],"trw":["i-ar",1059],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cel",9164],"trw":["orice",4726],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["astfel",4825],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ul",257995],"trw":["lui",42818],"lp":[],"rp":["ul","lu","ui","lui","iu","nul","ulu","ului","lin","lul","inu","nui","uni","noi","iul","lun","iun","ho","unul","unui"]},"113":{"input":[1,5,6,7],"tlp":["zu",17502],"trp":["uz",18000],"tlw":["ziua",2202],"trw":["lua",3594],"lp":["zu","azu","auz","alu","anul","auzi","ziu","zul","alul"],"rp":["uz","lan","lua","nal","uzi","uia","inua","uza","inal","ula","onal"]},"114":{"input":[2,5,6,7],"tlp":["sul",13027],"trp":["usi",13886],"tlw":["solul",203],"trw":["insusi",1408],"lp":["sul","solu","snui","siu","siun","sulu"],"rp":["usi","insu","jul","onsi","jl","ijl","jlo","ijlo","nsul","isnu","lus","ius","isu","niso"]},"115":{"input":[1,2,5,6,7],"tlw":["salon",359],"trw":["nasul",473],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",10235],"trp":["uie",12750],"trw":["nu-i",6710],"lp":["elu","elul","elui","enul"],"rp":["uie","u-i","nu-i","nel","unei","ule","iune","nele","nile","nule","ley","u-l","len","nu-l","inel","unel"]},"117":{"input":[1,3,5,6,7],"tlw":["auzea",594],"trw":["n-ai",1802],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seldon",899],"trw":["nu-si",1718],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["daneel",945],"trw":["indoiala",1534],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",54201],"trp":["ult",36980],"tlw":["totul",5658],"trw":["lungul",1158],"lp":["tul","bui","bil","tiu","bl","gin","tinu"],"rp":["ult","ing","uti","uit","into","ntul","utin","igu","ingu","uv","otul","itu","ulti"]},"121":{"input":[1,4,5,6,7],"tlw":["vazut",3775],"trw":["langa",4102],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["stiu",5950],"trw":["ochii",6711],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["atunci",10484],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trebuie",10427],"trw":["intr-o",7901],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vorba",4095],"trw":["legatura",2214],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["sigur",2888],"trw":["lucru",5287],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["singura",2707],"trw":["niciodata",5038],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",639],"trw":["p",1061],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",93968],"trp":["pa",161658],"tlw":["apa",3245],"trw":["pa",666],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",103043],"trp":["ps",4877],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["asp",12078],"trp":["pas",8637],"tlw":["apasa",575],"trw":["pas",1350],"lp":["asp","spa","sap","apas","aspa","aps","apsa","sapa"],"rp":["pas","pasa","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",52344],"trp":["pe",216440],"trw":["pe",110407],"lp":["ep","epe"],"rp":["pe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",10151],"trp":["pea",1505],"tlw":["ape",142],"lp":["ape","epa","xp","exp","eap","xpe","expe","eapa","epea","a'","apea"],"rp":["pea","'a","pape"]},"134":{"input":[2,3,8],"tlp":["esp",14229],"trp":["pes",7355],"tlw":["spe",120],"trw":["pese",104],"lp":["esp","desp","spe","dep","eped","espe","d'","sep","depe","eps","edep","deps"],"rp":["pes","ped","pede","pse","pese","pses","'d"]},"135":{"input":[1,2,3,8],"tlp":["depa",6164],"trp":["pad",2363],"tlw":["da'",470],"trw":["pedeapsa",277],"lp":["depa","aspe","epas","d'a","dap","apad","adap","da'","espa","deap","spad","sepa","xped","eaps","dape","apes"],"rp":["pad","pada","pase","psea"]},"136":{"input":[4,8],"trp":["pt",44775],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",16520],"trp":["pat",19529],"tlw":["fapt",2580],"trw":["pat",1592],"lp":["apt","fap","fapt","apta","tap","apat","tapa"],"rp":["pat","pta","ptat","pata"]},"138":{"input":[2,4,8],"tlp":["tsp",179],"trp":["pc",487],"lp":["tsp"],"rp":["pc","pts","ptsp"]},"139":{"input":[1,2,4,8],"tlp":["cap",19242],"trp":["pac",5660],"tlw":["cap",4694],"trw":["pacat",460],"lp":["cap","spat","capa","stap","sapt","scap","apac","apc","capc","apca"],"rp":["pac","past","paca","ptas","pca"]},"140":{"input":[3,4,8],"tlp":["ept",20779],"trp":["pr",175984],"tlw":["trepte",244],"trw":["perete",698],"lp":["ept","rep","rept","tep","tept","repe","rp","epte","rpr","epet","epr"],"rp":["pr","pre","per","pte","pet","pere","petr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",12184],"trp":["par",57159],"tlw":["repeta",897],"trw":["prea",8562],"lp":["apr","epta","apar","epar","apte","eapt","rap","reap","xper","xpr"],"rp":["par","part","pra","pare","prea","para","patr","pate","pera","ptea"]},"142":{"input":[2,3,4,8],"tlp":["spr",29330],"trp":["pest",6829],"tlw":["spre",12456],"trw":["peste",6431],"lp":["spr","spre","cep","espr","drep","step","spec","sper","resp","cept","cepe","ccep","spet","ecep"],"rp":["pest","pres","pec","pers","pect","prec"]},"143":{"input":[1,2,3,4,8],"tlw":["departe",3651],"trw":["parca",3176],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",55904],"trw":["m",611],"lp":[],"rp":["mp","mn","mm","pn","nm"]},"145":{"input":[1,5,8],"tlp":["am",164027],"trp":["ma",278091],"tlw":["am",32990],"trw":["ma",23028],"lp":["am","ama","aman","amn","amp","amna","apan"],"rp":["ma","man","pan","mana","pana","mna","pam","pama","mpa","mam","nap","mama","mpan"]},"146":{"input":[2,5,8],"tlp":["sm",3780],"trp":["nsp",2667],"lp":["sm"],"rp":["nsp","ms","nsm","jm"]},"147":{"input":[1,2,5,8],"tlp":["amas",5157],"trp":["mas",15541],"tlw":["sam",974],"trw":["masa",3415],"lp":["amas","sam","sma","sman","wm","wma","wman","ansp","ansm","ajm","ajma","asm","asam"],"rp":["mas","masa","maj","nspa","jma","paj","msw"]},"148":{"input":[3,5,8],"tlp":["em",62631],"trp":["me",133398],"tlw":["emmy",120],"trw":["pen",562],"lp":["em","eme","emn","emen","emp","emne","epen"],"rp":["me","pen","men","mne","mene","mpe","mem","nem","nep","my","mey","meye","meme"]},"149":{"input":[1,3,5,8],"tlp":["ame",19413],"trp":["mea",17220],"tlw":["amy",498],"trw":["mea",8040],"lp":["ame","eam","amen","eama","ema","emna","eamn","emea","eman","amne","xem","exem","xemp"],"rp":["mea","mnea","mane","max","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",11901],"trp":["med",6644],"tlw":["semn",1590],"trw":["mese",274],"lp":["sem","semn","seme","dem","dm","edem","demn","esem"],"rp":["med","mes","ndep","nsem","mese","mens","md","mped","mej","mejd","ndem","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["seama",5586],"trw":["newman",723],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",1176],"trp":["mb",18560],"lp":["tm"],"rp":["mb","mt","mpt","ntm"]},"153":{"input":[1,4,5,8],"tlp":["tam",11107],"trp":["mat",12972],"tlw":["tam",65],"trw":["pamant",2358],"lp":["tam","tamp","amb","fam","tama","apab","atm","amba"],"rp":["mat","ntam","mba","mant","mata","ptam","pant","mnat","pab","mbat","mta","ptan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3183],"trp":["mc",201],"lp":["cm"],"rp":["mc","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",2462],"trw":["manca",317],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",42362],"trp":["pent",38307],"tlw":["tem",615],"trw":["merry",352],"lp":["rm","rem","tem","erm","reme","rme","term","trem"],"rp":["pent","mer","ment","mbr","mpr","mpre","met","mte","mbe","mere","ntem","perm"]},"157":{"input":[1,3,4,5,8],"tlw":["eram",2315],"trw":["mare",9405],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["cemp",522],"trw":["mers",716],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["camera",2871],"trw":["macar",2850],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",47365],"trw":["pi",147],"lp":[],"rp":["pi","ip","pii","ipi","pip","piii","ipp","ppi","pipp","ippi","ipii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2966],"trp":["ipa",7902],"trw":["pai",991],"lp":["api","zap","zapa","aip"],"rp":["ipa","pia","pai","paz","paza","pipa","paia","ipai"]},"162":{"input":[2,6,8],"tlp":["spi",4099],"trp":["isp",6275],"lp":["spi","sip","sipi"],"rp":["isp","ips","psi","ipsi","pis","isip","pisi"]},"163":{"input":[1,2,6,8],"tlp":["spai",782],"trp":["ispa",2264],"trw":["pasi",1282],"lp":["spai","wisp","aisp"],"rp":["ispa","pasi","ipsa","pais","pias"]},"164":{"input":[3,6,8],"tlp":["epi",929],"trp":["pie",11267],"lp":["epi"],"rp":["pie","ipe","iep","piep","pipe","pei","ipei"]},"165":{"input":[1,3,6,8],"tlp":["epez",640],"trp":["pez",756],"tlw":["apei",412],"trw":["paie",113],"lp":["epez","apei"],"rp":["pez","pezi","paie","piez"]},"166":{"input":[2,3,6,8],"tlp":["disp",4472],"trp":["pid",1040],"trw":["piese",120],"lp":["disp","espi","depi","epis","eisp","dip","edip","epsi"],"rp":["pid","pied","ipse","ispe","pedi","pies","peis","pide","psei"]},"167":{"input":[1,2,3,6,8],"tlw":["zapada",443],"trw":["piesa",219],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2064],"trp":["pit",3627],"tlw":["tip",589],"lp":["tip","tipi"],"rp":["pit","pti","ptii","ipit","piti","ipt","piv","ptit"]},"169":{"input":[1,4,6,8],"tlp":["apit",1785],"trp":["piat",2890],"tlw":["tipa",384],"trw":["piata",623],"lp":["apit","tipa","fip","fipt","tapi"],"rp":["piat","pita","pati","pav","ptia","ipat","pavi","ptz"]},"170":{"input":[2,4,6,8],"tlp":["cip",1891],"trp":["pic",7270],"tlw":["tipic",72],"trw":["pic",662],"lp":["cip","spit","cipi","cisp","scip","spic"],"rp":["pic","pici","psit","pist","pci","pisc","icip","pict","ipic"]},"171":{"input":[1,2,4,6,8],"tlw":["twisp",358],"trw":["pisica",266],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1804],"trp":["pri",68428],"trw":["privi",2867],"lp":["rip","rpri","epti","ripi","tipe"],"rp":["pri","priv","peri","pier","prie","pir","iept","piri","iper","prii","prit","piet","ptie","prir","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["aparitia",471],"trw":["privirea",2009],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spirit",395],"trw":["priveste",1176],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["expresie",605],"trw":["paris",654],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",133805],"trw":["imi",6836],"lp":[],"rp":["mi","im","min","imp","imi","nim","nimi","pin","him","hip","mii","mni","inim","mpi","imin","mini","impi","mpin","imii","hm"]},"177":{"input":[1,5,6,8],"tlp":["ami",12341],"trp":["mai",98477],"tlw":["amiaza",160],"trw":["mai",80029],"lp":["ami","amin","zam","anim","aim","aima"],"rp":["mai","ima","mina","main","nima","pina","mani","inap","pani","iam","impa","mia","miaz","hipa"]},"178":{"input":[2,5,6,8],"tlp":["sim",14730],"trp":["mis",9725],"tlw":["sim",169],"trw":["nisip",353],"lp":["sim","simp","smi","spin","smin","smis"],"rp":["mis","mij","imis","insp","mnis","psih","misi","pins","ism","nsmi","jim","nism","nspi","mik"]},"179":{"input":[1,2,5,6,8],"tlw":["spaima",491],"trw":["masina",2136],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emei",6102],"trp":["ime",17305],"trw":["mine",8864],"lp":["emei","emi","enim","emni","epin"],"rp":["ime","meni","mine","mei","imen","nime","mie","meie","impe","hem","mpie","hme","nemi","mnei","hmey"]},"181":{"input":[1,3,5,6,8],"tlw":["examina",267],"trw":["maine",960],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["depinde",317],"trw":["mesei",432],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["asemeni",170],"trw":["inseamna",2064],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",26063],"trp":["mit",11574],"tlw":["timp",11216],"trw":["mintii",377],"lp":["tim","timp","timi","bim"],"rp":["mit","mint","imt","imb","mti","imti","himb","imit","ntim","mbi","mv","mtit","imbi","miti","mbin","mnit"]},"185":{"input":[1,4,5,6,8],"tlw":["zambi",959],"trw":["pamint",327],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["simti",2661],"trw":["nimic",9112],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["stiam",937],"trw":["mica",2010],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vreme",4271],"trw":["prin",13288],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["femeie",2003],"trw":["prima",3179],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["trimis",946],"trw":["incepe",1001],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["dimineata",2070],"trw":["imediat",2866],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",78466],"trw":["po",250],"lp":[],"rp":["po","op","opo","pop","popo","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",15763],"trp":["poa",16012],"lp":["apo","apoa"],"rp":["poa","oap","opa","oapa","opoa"]},"194":{"input":[2,7,8],"tlp":["spo",1393],"trp":["pos",4845],"lp":["spo","sop"],"rp":["pos","osp","ppos","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",506],"trp":["oasp",820],"lp":["apos","soap"],"rp":["oasp","pow"]},"196":{"input":[3,7,8],"tlp":["eop",544],"trp":["ope",5829],"trw":["pe-o",124],"lp":["eop","epo","eopo"],"rp":["ope","pe-","poe","o'","pe-o","oep","-p","-po"]},"197":{"input":[1,3,7,8],"tlp":["eopa",329],"trp":["oape",5724],"lp":["eopa","eoap"],"rp":["oape","pa-","pa-a","pe-a","-ap","-apo"]},"198":{"input":[2,3,7,8],"tlp":["deop",448],"trp":["pod",1174],"trw":["pod",151],"lp":["deop","espo","depo"],"rp":["pod","pode","oped","o'd","'do","o'do","pose","podo","ospe"]},"199":{"input":[1,2,3,7,8],"trw":["podea",484],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",280],"trp":["pot",14753],"trw":["pot",6200],"lp":["top","topo"],"rp":["pot","opt","pto","poto","opot"]},"201":{"input":[1,4,7,8],"trp":["poat",13885],"trw":["poata",1395],"lp":[],"rp":["poat","oapt","pof","pag","poft","opat","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["cop",12351],"trp":["post",1578],"tlw":["scop",481],"trw":["post",334],"lp":["cop","scop","sopt","stop"],"rp":["post","poc","opts"]},"203":{"input":[1,2,4,7,8],"tlw":["soapta",372],"trw":["ostap",497],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",9845],"trp":["pro",33227],"trw":["pro",584],"lp":["rop","ropr","torp","ropo"],"rp":["pro","por","prop","port","opr","oper","potr","orp","preg","opor","prot","preo","opre","pote","prog","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["aproape",5419],"trw":["poate",12490],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corp",515],"trw":["prost",652],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["castorp",852],"trw":["profesor",467],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["pu",141518],"trw":["om",4434],"lp":[],"rp":["pu","um","mu","om","up","mo","pun","num","omn","mun","mnu","umn","omnu","mpo","mpu","mom","omu","upu","omp","umu"]},"209":{"input":[1,5,7,8],"tlp":["apu",6837],"trp":["upa",22884],"trw":["puna",1094],"lp":["apu","anum","amu"],"rp":["upa","uma","oam","numa","moa","oma","oamn","noap","puna","oman","manu","napo","uman","umoa","ompa","mau","umpa"]},"210":{"input":[2,5,7,8],"tlp":["spu",46684],"trp":["pus",30635],"tlw":["spus",7687],"trw":["pus",1846],"lp":["spu","spun","spus","sup","supu","smu","sum","som","somn"],"rp":["pus","puns","mos","jum","mus","umos","mons","usm","opus","mpos","upus"]},"211":{"input":[1,2,5,7,8],"tlw":["spuna",1588],"trw":["pusa",270],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",10511],"trp":["ume",17000],"trw":["meu",6128],"lp":["epu","emu","emo","e-m"],"rp":["ume","pune","-m","m-","ome","omen","umne","nume","meu","mome","u-m","nu-m","upe","umen","unem","pome"]},"213":{"input":[1,3,5,7,8],"tlw":["anume",1489],"trw":["m-am",5385],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["spuse",11543],"trw":["mod",2741],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dupa",19290],"trw":["m-as",588],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gm",4573],"trp":["put",44011],"tlw":["tom",831],"trw":["putut",3710],"lp":["gm","gmu","gmun","tum","tom","gom","gomo"],"rp":["put","ptu","putu","mot","upt","mpot","umb","pub","munt","omot","nopt","mut","omb"]},"217":{"input":[1,4,5,7,8],"tlw":["fum",415],"trw":["muta",298],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["cum",21263],"trw":["punct",1203],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["acum",14119],"trw":["munca",1233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",794],"trw":["pentru",38307],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2036],"trw":["putea",12961],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["drum",2045],"trw":["precum",1277],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["asupra",4961],"trw":["jumatate",2548],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",51269],"trw":["lipi",125],"lp":[],"rp":["pl","poi","pli","opi","lip","pil","pol","poli","opii","opil","plo","ipl","lipi","lop","piil","ilip","ipo","lp","opol","ipil"]},"225":{"input":[1,6,7,8],"tlp":["apoi",14490],"trp":["pla",21202],"tlw":["apoi",11964],"trw":["ploaia",308],"lp":["apoi","apl","alp","apli","alpi","aipo"],"rp":["pla","lipa","pal","poz","pozi","opia","pala","ipal","pali","ploa","pila","lap","poal","ploz"]},"226":{"input":[2,6,7,8],"tlp":["spl",128],"trp":["posi",2885],"trw":["lipsi",96],"lp":["spl","spio"],"rp":["posi","lips","ispo","oisp","ipos"]},"227":{"input":[1,2,6,7,8],"tlw":["spala",165],"trw":["lipsa",702],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",2223],"trp":["ple",12048],"trw":["piele",586],"lp":["epl","epli","elep"],"rp":["ple","opie","pel","piel","iple","lep","lipe","pele","lope","pile","pelo","ipel","pleo","ople","lpe","opei","i-p"]},"229":{"input":[1,3,6,7,8],"tlw":["apele",237],"trw":["pielea",663],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spele",82],"trw":["leopold",96],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["deplasa",142],"trw":["pilda",452],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",144],"trp":["poti",3337],"tlw":["topi",76],"trw":["poti",3337],"lp":["topi","gip","gipt"],"rp":["poti","pov","opti","plit","pito","ptil","ipot","opit","poit"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",379],"trw":["pozitia",504],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["copii",1305],"trw":["lipsit",548],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["clipa",4697],"trw":["politica",737],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["opri",1970],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["apropie",1375],"trw":["propria",852],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["clipe",748],"trw":["plece",755],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["spatele",2337],"trw":["picioare",2645],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mul",40796],"trw":["omul",2345],"lp":[],"rp":["mul","pul","mpl","lum","umi","mnul","lumi","impo","mil","umin","plu","impu","impl","plin","mpul","lim","mili","imu","mplu","imul"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["numai",8412],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simplu",2223],"trw":["plus",1041],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["simpla",704],"trw":["psihanaliza",445],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mele",3338],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exemplu",767],"trw":["oameni",4178],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["domnule",3620],"trw":["limpede",719],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["sa-mi",4566],"trw":["mesajul",279],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["timpul",4000],"trw":["mult",13114],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["faptul",2300],"trw":["multa",2401],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chipul",1320],"trw":["mijlocul",1212],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["capul",3813],"trw":["placut",782],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["trupul",1201],"trw":["multe",4923],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["ti-am",981],"trw":["probabil",2719],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["sigmund",4378],"trw":["inceput",3590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["dumneavoastra",3116],"trw":["pardaillan",1106],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json index 7f37672f41..0e62a33d0f 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",697],"tlw":["a",9529],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",67011],"tlw":["s",3622],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",278948],"tlw":["sa",80180],"lp":["sa","as","ssa","ass","wa","assa","asa","was","sas","aw","ww","awa","sw","www","ws","swa","swas","wass","sass","saa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6371],"tlw":["e",4153],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",11230],"tlw":["ae",267],"lp":["ex","ea","ax","ae","xe","xa","exe","exa","axe","axa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",849873],"tlw":["de",70970],"lp":["de","ed","se","es","des","dd","ess","sed","dde","ds","sse","dess","ede","edd","esse","edde","ese","see","eds","ses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",298347],"tlw":["da",17349],"lp":["ad","ade","da","eda","sad","ada","seda","sade","ades","add","sada","dda","dad","we","essa","dade","ase","sex","ew","esa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",430036],"tlw":["t",873],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",420129],"tlw":["att",208516],"lp":["at","ta","att","fa","ft","tta","atta","af","ff","ata","tat","fat","fatt","aff","ffa","affa","aft","tf","fta","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",283811],"tlw":["c",718],"lp":["st","ts","sst","sc","ct","cc","tst","tc","tts","cts","cs","sts","tss","css","stst","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",95542],"tlw":["satt",11381],"lp":["sta","ast","sat","ac","satt","tsa","asta","ats","ca","tsat","tac","fas","fast","stat","tas","ssta","stas","tast","sats","stac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",462362],"tlw":["ett",56585],"lp":["et","er","te","re","ter","rt","tr","ett","tte","rr","tre","ete","ret","tet","rre","tter","ert","eter","ere","ttr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",760793],"tlw":["ar",85841],"lp":["ar","ra","fr","ara","fra","are","era","ef","rat","fte","art","fter","tar","eft","efte","far","tra","ratt","fe","atte"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",223222],"tlw":["det",200915],"lp":["det","rs","dr","rd","der","ste","rde","rst","ers","est","res","red","str","ser","ec","ce","set","ster","rts","ters"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dar",44203],"tlw":["dar",26310],"lp":["dar","rad","dra","tad","tade","rade","aste","rsta","ars","ttad","ras","erad","ard","star","sar","esta","reda","dare","stra","dera"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",152794],"trw":["n",1184],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",778026],"trp":["na",315512],"tlw":["an",15455],"trw":["nan",1595],"lp":["an","ann","anna","ana","anan","aan","aana","aq"],"rp":["na","nna","nan","nnan","nq","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sj",21534],"trp":["ns",134271],"trw":["j",959],"lp":["sj","sn","ssn","sjn"],"rp":["ns","nns","nss","nj","jn","js"]},"19":{"input":[1,2,5],"tlp":["ans",66128],"trp":["ja",200724],"tlw":["san",954],"trw":["ja",6931],"lp":["ans","san","sja","sna","anns","sann","ssna","ansa","anss","aj","ssan"],"rp":["ja","nas","nsa","jan","nnas","jans","jana","nja","nans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",686772],"trp":["ne",122568],"tlw":["en",141247],"trw":["ny",2216],"lp":["en","enn","enne","ene","een","ey","enen","enny"],"rp":["ne","nne","nen","ny","yn","nnen","ye","yne","nny","ynn","ynen","ynne"]},"21":{"input":[1,3,5],"tlp":["ena",17736],"trp":["ya",3990],"tlw":["ena",2504],"trw":["nya",3694],"lp":["ena","anne","ane","enna","ay","aen","any","anen","xan","exan","ean","xen","xn","xna","enq"],"rp":["ya","nya","yx","yea","nea"]},"22":{"input":[2,3,5],"tlp":["den",113774],"trp":["nd",217577],"tlw":["den",78914],"trw":["nej",5908],"lp":["den","sen","ens","ej","end","sy","dn","ende","dj"],"rp":["nd","nde","je","ys","nes","nnes","yd","nden","nej","jd","nse"]},"23":{"input":[1,2,3,5],"tlp":["and",132309],"trp":["nda",24974],"tlw":["sedan",13315],"trw":["new",1697],"lp":["and","ande","dan","edan","anda","sena","adan","enda","aden","anad","ensa","enas","aend","anse"],"rp":["nda","nad","nade","jad","jade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",13062],"trp":["nt",180386],"tlw":["b",734],"lp":["bb","tn","ttn","bt","bbt","tb"],"rp":["nt","nb","ntn","ntb"]},"25":{"input":[1,4,5],"tlp":["ba",80692],"trp":["nat",22606],"tlw":["annat",5472],"trw":["nat",1860],"lp":["ba","tan","ant","fan","anta","fann","ab","ban","abb","anf","bat","bba","tna"],"rp":["nat","nta","nf","nnat","nab","nabb","natt"]},"26":{"input":[2,4,5],"tlp":["tj",8505],"trp":["nst",17861],"tlw":["bbc",225],"lp":["tj","bj","bs","stn","sb","sjt","stj","sjtj","tsn","ttj","bc","bbc","stb"],"rp":["nst","nc","jt","nts","jtj","nsc","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",20169],"trp":["nast",10284],"tlw":["fanns",8575],"trw":["nastan",4851],"lp":["stan","bas","snab","anst","sant","bast","tja","tans","stna","tjan","bac","can","abs","snac"],"rp":["nast","nsta","jat","nac","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["be",75593],"trp":["nte",109829],"tlw":["be",2398],"trw":["ner",9674],"lp":["be","rn","ten","br","ty","ent","ren","ry","ern","ber","bet","rb"],"rp":["nte","ner","yt","ytt","yr","nner","ntr","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",60950],"trp":["nar",65863],"tlw":["fran",27093],"trw":["nar",38189],"lp":["ran","rna","bar","fran","arn","bara","arna","erna","bra","aran","aren","enar","barn","bera","arb","fy","arbe","beta"],"rp":["nar","nare"]},"30":{"input":[2,3,4,5],"tlp":["rj",17958],"trp":["yc",35067],"tlw":["tyst",1977],"lp":["rj","bes","tyc","sten","tys","tyd","dern","ryc","tryc","best","tyst","rden","rje","cen"],"rp":["yc","nder","ndr","yst","ndet","jer"]},"31":{"input":[1,2,3,4,5],"tlw":["andra",13622],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1872],"trw":["i",182908],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",2800],"trp":["ia",13569],"tlw":["ai",142],"trw":["ia",109],"lp":["ai","za","zi","az","zia","azi","zz","zzi","zza"],"rp":["ia","iz","iza","izz","izza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["sk",180550],"trp":["is",102522],"trw":["is",3657],"lp":["sk","si","ski","sik","sis","ssi","sisk","ssis"],"rp":["is","ik","isk","ks","ki","iss","iks","kis","isi","iki","kisk","kss"]},"35":{"input":[1,2,6],"tlp":["ak",74294],"trp":["ka",235111],"tlw":["ska",12542],"trw":["kaka",73],"lp":["ak","ska","sak","aka","wi","ask","skak","asi","aska","aks","aki"],"rp":["ka","ika","ksa","iska","isa","kas","issa","kak","kaka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",3018],"trp":["ie",21160],"tlw":["ei",236],"trw":["ie",545],"lp":["ei","eii","eiie"],"rp":["ie","iie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",1347],"trp":["ix",677],"tlw":["xii",198],"trw":["iae",103],"lp":["xi","ez","axi","exi","ezi","ezia","eiz","ze","xii","eza","aie","zie","zzie","eizi"],"rp":["ix","ixa","iae"]},"38":{"input":[2,3,6],"tlp":["di",49953],"trp":["ke",99121],"tlw":["skedde",390],"trw":["ide",614],"lp":["di","ek","ske","sid","dis","disk","sek","edi","esk","dsk","die"],"rp":["ke","id","ide","idi","ike","ise","idd","isse","iske"]},"39":{"input":[1,2,3,6],"tlp":["ake",15029],"trp":["kad",24793],"tlw":["sida",1628],"trw":["kikade",168],"lp":["ake","sake","sida","eka","skad","adi","akad","ekad","dska","xak","exak"],"rp":["kad","kade","ida","isad","idda","kada","kae","ikae","ikad"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",221703],"trp":["it",120245],"tlw":["vi",40006],"trw":["it",2563],"lp":["ti","vi","tv","vit","tit","titt","tvi","vt","tiv","tti","vitt","tivt","viv"],"rp":["it","itt","iv","ivi","iti","ivit","ivt"]},"41":{"input":[1,4,6],"tlp":["va",353292],"trp":["itta",13428],"tlw":["av",76117],"trw":["if",757],"lp":["va","av","fi","ati","tva","vat","vatt","ava","avi","tav","ativ","vita","via","tia","tati"],"rp":["itta","if","iva","ita","ift"]},"42":{"input":[2,4,6],"tlp":["ck",135164],"trp":["kt",95132],"tlw":["sitt",8546],"trw":["its",666],"lp":["ck","sv","vis","sit","cks","ci","sti","sitt","viss","tis","ckt","tisk"],"rp":["kt","ic","ick","kv","ikt","kti","ist","isst"]},"43":{"input":[1,2,4,6],"tlp":["cka",27505],"trp":["kva",11609],"tlw":["fick",13643],"lp":["cka","sva","akt","ack","fic","fick","cksa","akti","tack","visa","acka","avs","tak","akta","fak"],"rp":["kva","icka","kta","kat","ista"]},"44":{"input":[3,4,6],"tlp":["ri",112888],"trp":["ite",18519],"tlw":["vet",9572],"trw":["iver",119],"lp":["ri","ve","ver","ev","vet","rit","eri","rv","riv","rti","rev","eve","erv","vr","rie","tri"],"rp":["ite","ir","ive","ivet"]},"45":{"input":[1,3,4,6],"tlp":["var",212597],"trp":["ifr",5093],"tlw":["var",117709],"lp":["var","vara","ari","vari","ave","arit","vart","rva","varf","vare","arti","rav","ria","veta","fri","eva","rati","riva"],"rp":["ifr","ifra"]},"46":{"input":[2,3,4,6],"tlp":["rk",39613],"trp":["kr",38960],"tlw":["vid",15758],"lp":["rk","tid","cke","vid","rik","cket","skr","erk","dri","verk","sve","ckte","tidi","ris","ekt"],"rp":["kr","kte","ker","ket","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vad",23975],"trw":["kvar",4233],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",374950],"trw":["in",24928],"lp":[],"rp":["in","ni","inn","nin","hi","nni","ih","nh","hin","ini","nnin","hn","hinn","hnn","inni","ninn","inh","nih","ihi","nihi"]},"49":{"input":[1,5,6],"tlp":["anni",10319],"trp":["ha",405073],"tlw":["ah",652],"trw":["han",135757],"lp":["anni","ani","anin","ah","anh","ain","aha","anha"],"rp":["ha","han","ina","inna","hann","ian","nha","iha","nhan","nina","naz","nazi"]},"50":{"input":[2,5,6],"tlp":["sin",33457],"trp":["nk",33920],"tlw":["sin",19809],"trw":["his",717],"lp":["sin","sh"],"rp":["nk","nsk","kn","ins","nis","nsi","inns","hj","nisk","nnis","his","nsik","nik","kni","kh","kin","nnik","kj"]},"51":{"input":[1,2,5,6],"tlp":["ank",24052],"trp":["kan",66516],"tlw":["sina",10070],"trw":["hans",21333],"lp":["ank","ansk","sina","anka","ansi","zj","akn","akna","wh","skan"],"rp":["kan","hans","kans","nska","kna","kann","nka","hja","has","nika"]},"52":{"input":[3,5,6],"tlp":["eh",10650],"trp":["he",119485],"tlw":["eh",118],"trw":["henne",15609],"lp":["eh","enh","enhe","eni","enin","enni"],"rp":["he","hen","henn","inne","ien","nhe","ine","hy","nie","hey","neh","nneh","hei","nnie"]},"53":{"input":[1,3,5,6],"tlp":["eha",2865],"trp":["neha",654],"tlw":["annie",246],"lp":["eha","anie","ehan","anhe","enha","xin","axin","eani"],"rp":["neha","hea","hay","iane","hae","ynha","hane"]},"54":{"input":[2,3,5,6],"tlp":["dni",7195],"trp":["ken",21208],"tlw":["din",3500],"trw":["hennes",10942],"lp":["dni","dnin","ensk","din","sky","enk","edni","enke"],"rp":["ken","nske","nke","ind","iden","ky","ysk","ndi","isen","yk","iken","inde"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",3037],"trw":["hade",75973],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",42119],"trp":["int",110738],"tlw":["bit",873],"trw":["hit",1552],"lp":["th","bi","vin","tin","vinn","tni","tnin","thi","vb","ttni"],"rp":["int","nti","hit","ntin","nv","hitt","ib","nit","ith","nnit"]},"57":{"input":[1,4,5,6],"tlp":["van",36400],"trp":["hat",6563],"tlw":["that",4254],"trw":["haft",3590],"lp":["van","fin","finn","vant","tha","that","vann","anv","anva","vana","vani"],"rp":["hat","nva","haf","haft","inf","nvan","hav","hant","nati"]},"58":{"input":[2,4,5,6],"tlp":["ch",278681],"trp":["nkt",10498],"tlw":["this",1111],"trw":["nick",290],"lp":["ch","vj","ckh","sch","stin","ckn","this","svin","tch"],"rp":["nkt","kvin","inst","nic","nick","hist","nsv","nist","nsti","ich","nsiv"]},"59":{"input":[1,2,4,5,6],"tlw":["finns",6035],"trw":["kvinna",2323],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",26354],"trp":["inte",103570],"tlw":["the",18662],"trw":["inte",98723],"lp":["the","rin","ven","beh","rh","enti","bri","ther","erh","rhe","rhet","erin"],"rp":["inte","het","hete","her","intr","iten","nhet","hr"]},"61":{"input":[1,3,4,5,6],"tlw":["aven",6437],"trw":["har",67488],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tiden",4874],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["tankte",6155],"trw":["kanner",3200],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2318],"trw":["o",784],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",454],"trp":["oa",4643],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",206463],"trp":["os",36642],"tlw":["so",864],"trw":["oss",8697],"lp":["so","sso","soo"],"rp":["os","oss","oso","osso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",2187],"trp":["ow",2946],"tlw":["wow",58],"lp":["wo","aso","asso","saso","aos","woo","wow","sao"],"rp":["ow","osa","ossa","ows","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2376],"trp":["oe",2841],"trw":["-",1201],"lp":["eo"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",397],"trp":["ox",399],"lp":["xo","a-"],"rp":["ox","-a","oxe"]},"70":{"input":[2,3,7],"tlp":["do",35235],"trp":["od",40189],"tlw":["dod",2129],"trw":["ode",316],"lp":["do","dod","eso","edo","sod","sode","esso","dode","doe","does","dsso","dods"],"rp":["od","ode","odd","odde","ose","ods","ood","oes"]},"71":{"input":[1,2,3,7],"tlp":["doda",2068],"trp":["oda",5346],"tlw":["doda",1277],"lp":["doda","ado","sado","dow","easo","dosa","wood"],"rp":["oda","oad","odad","owe","oade","odda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",90775],"trp":["ot",87066],"tlw":["tog",9006],"trw":["otto",257],"lp":["to","go","gt","got","gg","tog","gott","tto","tot","tg","tott"],"rp":["ot","og","ott","ogo","oto","ogt","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["ag",317285],"trp":["of",22543],"tlw":["ga",7744],"trw":["of",10904],"lp":["ag","fo","ga","ago","aga","agot","tag","gat","agg","agt","gga","gatt","fot","agga"],"rp":["of","oft","off","ota","ofta","oga"]},"74":{"input":[2,4,7],"tlp":["sto",40954],"trp":["oc",289376],"tlw":["sot",305],"trw":["ost",163],"lp":["sto","gs","co","gst","toc","stoc","soc","stot","sog","sot","sogo","togs","gts"],"rp":["oc","ost","ots","ogs","ogst","otst","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",35425],"trp":["osta",1492],"tlw":["sag",13608],"trw":["oftast",553],"lp":["sag","saga","ags","sagt","gas","gast","gsa","sof","aco","soff","asto","sags","gsta","stag","ggas","agas","two"],"rp":["osta","otsa","osca"]},"76":{"input":[3,4,7],"tlp":["ge",165737],"trp":["or",421801],"tlw":["gor",5705],"trw":["or",1673],"lp":["ge","ro","gr","ger","tor","eg","tro","gor","rg","get","ror","ege","gre","rot"],"rp":["or","ort","ore","orr","org","orre"]},"77":{"input":[1,3,4,7],"tlp":["for",206825],"trp":["ora",29125],"tlw":["for",86020],"lp":["for","gar","age","gra","rag","fort","frag","agr","raga","agra","gora","ager","rfo","rfor","fore","arfo","gare","agar","tora"],"rp":["ora"]},"78":{"input":[2,3,4,7],"tlp":["rso",20201],"trp":["ors",42598],"tlw":["stod",7497],"trw":["ord",2401],"lp":["rso","stor","erso","tod","stod","gd","dor","rod","gde","ros","dro","dorr","rost","sor"],"rp":["ors","ord","orde","orst","orso","orts"]},"79":{"input":[1,2,3,4,7],"tlw":["sager",8656],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",215270],"trw":["nu",20433],"lp":[],"rp":["on","un","no","nu","ono","unn","ou","nno","nnu","onn","non","oun","oon","onnu","nou"]},"81":{"input":[1,5,7],"tlp":["au",4722],"trp":["unna",7691],"tlw":["annu",3706],"lp":["au","annu","anno","ano","qu","anu","anua","anon","aou"],"rp":["unna","ua","ona","oan","nua","onna","una","oona","nqu","oann","uan"]},"82":{"input":[2,5,7],"tlp":["son",18325],"trp":["ju",46060],"tlw":["son",1353],"trw":["ju",10993],"lp":["son","su","sson","sju","ssu","sjo","sjon","sjun"],"rp":["ju","jo","us","oj","ons","jus","jon","nsso","uss","jun","jou","noj"]},"83":{"input":[1,2,5,7],"tlp":["aus",996],"trp":["usa",2823],"tlw":["sonja",276],"trw":["usa",1340],"lp":["aus","sona","wou","susa","ajo","ason"],"rp":["usa","oja","now","joa","own","janu","usan","onsa","onja","jua","jusa","ojan","nown","joan"]},"84":{"input":[3,5,7],"tlp":["eno",11644],"trp":["one",21213],"tlw":["eu",207],"trw":["you",1411],"lp":["eno","eu","eun","enou","enu"],"rp":["one","onen","yo","ue","you","unne","oen","une","n-","ony","oy","neu","y-","yon","nony"]},"85":{"input":[1,3,5,7],"tlp":["xu",643],"trp":["ux",939],"tlw":["anyone",56],"lp":["xu","exu","xue","exue","enqu","que","xua","exua","ann-","anyo"],"rp":["ux","uxn","uxna","yxo","uxe","uxen","na-","nna-","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",45128],"trp":["und",57348],"tlw":["du",40597],"trw":["nojd",538],"lp":["du","essu","sone","dju","esu","don"],"rp":["und","unde","ud","use","ude","jud","ond","ojd","ojde","ndo","jude","nod","usen","oend"]},"87":{"input":[1,2,3,5,7],"tlw":["down",202],"trw":["undan",1747],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",46434],"trp":["ng",167442],"tlw":["but",1259],"trw":["ut",23705],"lp":["bo","gon","tu","gn","ton","tun","gu","bu"],"rp":["ng","ut","ob","ung","ont","ug","ogon","ngt","unt","obb","uto","nog"]},"89":{"input":[1,4,5,7],"tlp":["ang",59439],"trp":["nag",48054],"tlw":["gang",6284],"trw":["nagot",17486],"lp":["ang","gan","agon","gang","anga","fu","gna","fon","angt","anfo","fun","atu"],"rp":["nag","nago","nga","uta","utan","nfo","natu","uf"]},"90":{"input":[2,4,5,7],"tlp":["gj",14385],"trp":["ust",11850],"tlw":["tjugo",984],"trw":["just",6345],"lp":["gj","gjo","stu","sut","stun","ssut","suto","gons","ston","bjo"],"rp":["ust","job","onst","just","ngs","jobb","uc","uts","jut","jug"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",726],"trw":["jag",133333],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",96318],"trp":["nge",54194],"tlw":["bort",5520],"trw":["ur",6494],"lp":["gen","ru","bor","geno","run","bort","bro","egen","gent","tur"],"rp":["nge","ur","ngen","yg","ngr","ute","nor","orn","nger","unge"]},"93":{"input":[1,3,4,5,7],"tlw":["gangen",3207],"trw":["nagra",10760],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",8777],"trw":["under",14292],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["borjade",6021],"trw":["undrade",1668],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",353262],"trw":["ol",691],"lp":[],"rp":["ll","li","il","ill","ol","lo","io","oli","oll","lli","ili","lil","lill","olo","illi","ilo","llo","oi","lio","ool"]},"97":{"input":[1,6,7],"tlp":["al",238639],"trp":["la",255368],"tlw":["alla",16475],"trw":["lilla",2283],"lp":["al","all","alla","ala","ali","alli","zl","zla","zo"],"rp":["la","lla","illa","ola","ial","lia","ila","olla","ilia","oal","oz"]},"98":{"input":[2,6,7],"tlp":["sl",40951],"trp":["ko",98099],"tlw":["sol",152],"trw":["loss",451],"lp":["sl","sok","sko","slo","skil","sli"],"rp":["ko","kl","ls","ok","lk","lik","kli","lls","lis","kil","ilk","olis","ills","kol"]},"99":{"input":[1,2,6,7],"tlp":["sla",15876],"trp":["kla",20340],"tlw":["alls",1882],"trw":["lika",4448],"lp":["sla","als","sal","ako","skal","alls","soka","alsk","wal"],"rp":["kla","las","kal","kall","lika","oka","lsa","lska","llsa","lak","lka"]},"100":{"input":[3,6,7],"tlp":["el",123518],"trp":["le",182809],"tlw":["el",140],"trw":["le",410],"lp":["el","ell","elle","ele","eli","elo","elie"],"rp":["le","lle","ille","ile","olle","ole","lie","iel","lee","iell","lei","ilie","leo"]},"101":{"input":[1,3,6,7],"tlp":["ela",19365],"trp":["lex",1360],"tlw":["alex",558],"trw":["ozzie",67],"lp":["ela","alle","ale","ella","alex","ael","xl","axl","xla","axla","alie","xel","axel","eal","zoe","elal"],"rp":["lex","lexa","lea","oale"]},"102":{"input":[2,3,6,7],"tlp":["del",18169],"trp":["ld",45006],"tlw":["del",4570],"trw":["ledde",906],"lp":["del","els","dl","else","dli","dele"],"rp":["ld","lde","lld","led","lse","llde","lke","oke","ild","ilke","les","kel","lise","lek"]},"103":{"input":[1,2,3,6,7],"tlw":["alldeles",2595],"trw":["lade",1957],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",104652],"trp":["ig",244414],"tlw":["till",78901],"trw":["liv",4044],"lp":["til","till","gi","vil","vill","tio","tig","gl","tl"],"rp":["ig","lig","lt","ov","igt","llt","ligt","lv","lit","liv","log"]},"105":{"input":[1,4,6,7],"tlp":["tal",36626],"trp":["lat",26260],"tlw":["allt",11228],"trw":["lag",5318],"lp":["tal","allt","val","fl","alv","vag","tall","fal","fol","fall","atio","tala","alt","gla"],"rp":["lat","lag","iga","liga","ova","lva"]},"106":{"input":[2,4,6,7],"tlp":["sig",64325],"trp":["ock",24775],"tlw":["sig",62876],"trw":["likt",416],"lp":["sig","gic","gick","vilk","sokt","sov","ckl"],"rp":["ock","ocks","lic","ktig","lick","klig","okt","loc","lock","lst","kov","lts","llts"]},"107":{"input":[1,2,4,6,7],"tlw":["alltsa",3917],"trw":["ocksa",11852],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",28320],"trp":["ler",39552],"tlw":["eller",21635],"trw":["over",17755],"lp":["rl","rig","rli","elt","rlig","tel","rol","erl","rige"],"rp":["ler","ige","ller","ove","over","lev","lige","let","lite","llet","lir"]},"109":{"input":[1,3,4,6,7],"tlw":["varfor",5432],"trw":["later",1516],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dig",9388],"trw":["kort",3076],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",8974],"trw":["klart",1941],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",156427],"trw":["hon",71785],"lp":[],"rp":["ho","hon","ul","ull","hu","lu","hono","ion","nl","lin","nli","hol","ln","holl","oh","iho","uni","hun","lun","ino"]},"113":{"input":[1,5,6,7],"tlp":["anl",7509],"trp":["lan",56925],"tlw":["quinn",114],"trw":["halla",3206],"lp":["anl","anli","alin","alln","alan"],"rp":["lan","hal","hall","llan","nal","oha","ohan","ula","nali","olan","lina","ulla","lna","nla","inal"]},"114":{"input":[2,5,6,7],"tlp":["sku",43264],"trp":["ku",78375],"tlw":["skull",1127],"trw":["hos",4276],"lp":["sku","skul","slu"],"rp":["ku","kul","kull","kun","lj","uk","kon","hus","ilj","juk","kunn","olj","jl","ojl","jli","ojli","hos"]},"115":{"input":[1,2,5,6,7],"tlw":["skolan",1295],"trw":["kunna",5127],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",7167],"trp":["ulle",40111],"tlw":["elin",222],"trw":["hel",1084],"lp":["eho","eln","enl","enli"],"rp":["ulle","hel","len","ly","ione","llen","yl","hell","ilen","yll","olen","nle","uel","uell","leen","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["elina",933],"trw":["hela",8378],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulle",39287],"trw":["kunde",19109],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["skillnad",573],"trw":["handlade",1198],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",59992],"trp":["ing",86010],"tlw":["bli",9179],"trw":["hogt",1449],"lp":["bl","bli","tion","bil","vu","ting","gh"],"rp":["ing","ning","lut","lb","nlig","llb","illb","hog","uv","hov","huv","uvu","huvu"]},"121":{"input":[1,4,5,6,7],"tlw":["vanligt",1746],"trw":["inga",3339],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["slut",3258],"trw":["och",261930],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sjalv",9343],"trw":["klockan",2663],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",11880],"trw":["hur",18534],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagen",2479],"trw":["langre",3962],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["verkligen",3128],"trw":["huvudet",3819],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["bland",3152],"trw":["ibland",2952],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",78667],"trw":["p",2050],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",29927],"trp":["pa",207370],"trw":["pa",144323],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",19698],"trp":["ps",3998],"lp":["sp"],"rp":["ps","pps","psp","ppsp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4537],"trp":["pas",7949],"tlw":["asp",86],"trw":["pass",549],"lp":["spa","sap","asp","aps","spas","aspa"],"rp":["pas","pass","ppas","psa","ppsa","pspa","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",6152],"trp":["pe",48173],"trw":["'",472],"lp":["ep","epp","e'","eppe","e'e","eep"],"rp":["pe","ppe","'e","pee","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",3130],"trp":["pape",411],"lp":["ape","appe","xp","exp","epa","xpe","expe","eap","eape","eppa"],"rp":["pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",8127],"trp":["pd",798],"tlw":["esp",72],"trw":["'de",96],"lp":["spe","esp","espe","sep","desp","dp","dsp","eps","dspe","dep","e's","d'","d'e"],"rp":["pd","ppd","'s","'d","'de","pse","'es"]},"135":{"input":[1,2,3,8],"tlp":["apad",573],"trp":["pad",4572],"trw":["passade",486],"lp":["apad","epad","dap","adap","spad","aspe","we'"],"rp":["pad","pade","ppad","pase","pesa"]},"136":{"input":[4,8],"tlp":["tp",509],"trp":["pt",11645],"trw":["pt",359],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",2622],"trp":["pat",2945],"tlw":["tappa",242],"trw":["pat",56],"lp":["appt","tap","tapp","apt","apat","tpa","apta"],"rp":["pat","pf","ppf","pta","ppta","pfa","ppfa","pfat","ppat","ptat","pata","paf","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",635],"trp":["pst",539],"lp":["tsp","stp","ttsp"],"rp":["pst","ppst"]},"139":{"input":[1,2,4,8],"tlp":["stpa",148],"trp":["past",2465],"trw":["pasta",175],"lp":["stpa","cap","astp","tpas","spac"],"rp":["past","ptac","pac","psta","psat","pats"]},"140":{"input":[3,4,8],"tlp":["rep",3339],"trp":["pr",31793],"tlw":["rep",90],"trw":["per",1755],"lp":["rep","ept","rp","epte","repp"],"rp":["pr","per","pre","pet","pte","pper","ppr","pete","ppte","'t","ppet","pter","petr","ppre","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",2854],"trp":["par",13633],"tlw":["trappa",178],"trw":["par",3758],"lp":["rap","rapp","trap","arp","rpa","arpa","apet","xper","repa","apr"],"rp":["par","pra","prat","part","pera","ppar","patr","pare","perf","para"]},"142":{"input":[2,3,4,8],"tlp":["spr",4496],"trp":["pers",6327],"tlw":["spred",228],"trw":["press",442],"lp":["spr","spec","cep","cept","resp","ccep","sept","t's","rsp","spre","etsp","sper","rspr","ecep"],"rp":["pers","prec","pres","pec","pdr","ppdr"]},"143":{"input":[1,2,3,4,8],"tlw":["spar",785],"trw":["pratade",1339],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",66159],"trw":["m",1599],"lp":[],"rp":["mm","mn","mp","pn","ppn","pm","ppm","nm","np"]},"145":{"input":[1,5,8],"tlp":["am",108972],"trp":["ma",166775],"tlw":["am",93],"trw":["man",29921],"lp":["am","amm","amma","amn","amna"],"rp":["ma","man","mma","mann","mna","mman","pan","nam","mam","mamm","pna","namn","ppna","nap","napp"]},"146":{"input":[2,5,8],"tlp":["sm",12954],"trp":["ms",5095],"tlw":["sms",163],"trw":["jp",57],"lp":["sm","sms","spj","ssm"],"rp":["ms","mj","nsp","nsm","pj","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",33659],"trp":["mas",17101],"tlw":["samma",6340],"trw":["massa",827],"lp":["sam","samm","sma","span","ams","sman","asm","smas","sama"],"rp":["mas","mans","nsam","jam","mass","maj","mmas","jap","japa","pans","jamn"]},"148":{"input":[3,5,8],"tlp":["em",51088],"trp":["me",242113],"tlw":["e'en",102],"trw":["men",54243],"lp":["em","eme","emm","emp","empe","emen"],"rp":["me","men","mme","my","pen","ppen","ym","mpe","mne","yp","mmen","n'","mnen","ymm"]},"149":{"input":[1,3,5,8],"tlp":["ame",4829],"trp":["mena",3740],"tlw":["amy",218],"trw":["mannen",4191],"lp":["ame","emma","amne","xem","exem","xemp","amme","ema","apen","eman","amen","an'","apne"],"rp":["mena","mea","yma","yman","many","may","pany"]},"150":{"input":[2,3,5,8],"tlp":["dem",15113],"trp":["med",110013],"tlw":["dem",13812],"trw":["med",97131],"lp":["dem","ems","sme","smy","sem","seme","emes"],"rp":["med","mes","md","mde","mede","psy","mej","mens","medd","mnd","pens","mnde","mynd"]},"151":{"input":[1,2,3,5,8],"tlw":["ensam",1863],"trw":["medan",4549],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3262],"trp":["mt",19904],"lp":["tm","bm"],"rp":["mt","mb","mnt","pb"]},"153":{"input":[1,4,5,8],"tlp":["amt",15300],"trp":["mat",7731],"tlw":["famn",168],"trw":["mat",1157],"lp":["amt","tam","amf","amta","fam","amb","atm","tamm","amba","amat","tamt","tma"],"rp":["mat","mf","mta","mba","matt","mnat","mban","mfa"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["tsm",656],"trp":["mst",2612],"lp":["tsm","ttsm"],"rp":["mst","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",1065],"trw":["mats",293],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",23979],"trp":["mer",31601],"tlw":["typ",630],"trw":["mer",11323],"lp":["rm","rme","rmen","tem","rem","emb","embe","erm","typ","emt"],"rp":["mer","mmer","met","mmet","mr","ment","mbe","mber","mete","penb"]},"157":{"input":[1,3,4,5,8],"tlw":["fram",10772],"trw":["menar",2322],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["september",636],"trw":["mest",3296],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["bestamde",1009],"trw":["maste",10840],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",5476],"lp":[],"rp":["pi","ip","ipp","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1326],"trp":["ippa",1060],"trw":["pia",366],"lp":["api"],"rp":["ippa","ipa","pia","pipa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",447],"trp":["pis",1842],"tlw":["skip",66],"lp":["spi","spis","spik","skip"],"rp":["pis","ips","psk","ppsk","pisk","isp","ksp","pik","psi","ppsi","psik","pk","ppk","kip"]},"163":{"input":[1,2,6,8],"tlp":["skap",4614],"trp":["kap",6395],"tlw":["skapa",567],"trw":["kapp",67],"lp":["skap"],"rp":["kap","kapi","kapa","pska","pisa","pak","kapp","ispa","ipas","ikap"]},"164":{"input":[3,6,8],"trp":["ipe",417],"lp":[],"rp":["ipe","pie","pei","ippe","i'"]},"165":{"input":[1,3,6,8],"lp":[],"rp":[]},"166":{"input":[2,3,6,8],"tlp":["spek",1307],"trp":["pek",3334],"tlw":["skepp",67],"trw":["keep",74],"lp":["spek","skep","disp","dip","espi"],"rp":["pek","idp","kep","pise","peis","kspe","pike","keep","ipse","kepp","keps","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["skapade",297],"trw":["pekade",973],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",162],"trp":["pit",1381],"lp":["tip"],"rp":["pit","pti","ippt","pv","ppv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1525],"trp":["pav",1648],"lp":["vap","apit"],"rp":["pav","pati","pita","pva","ppva","pif","ppif"]},"170":{"input":[2,4,6,8],"tlp":["cip",532],"trp":["pist",342],"tlw":["tips",162],"lp":["cip","tips","cksp","visp","scip","spit"],"rp":["pist","ptis","istp","pic"]},"171":{"input":[1,2,4,6,8],"tlw":["skapat",225],"trw":["packa",130],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1494],"trp":["pri",4672],"trw":["pierre",295],"lp":["rip","epti","vep","ripe","vept","epri"],"rp":["pri","peri","pite","priv","it'","prit","pier","iper","ppri","'ti"]},"173":{"input":[1,3,4,6,8],"tlw":["varpa",108],"trw":["partiet",469],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["respekt",485],"trw":["precis",3817],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",390],"trw":["patrik",492],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",102861],"trw":["min",13506],"lp":[],"rp":["mi","min","im","mmi","imm","minn","mh","ph","him","mpi","mini","pph","imi","imp","hm","imin","mni","mnin","pni","ppni"]},"177":{"input":[1,5,6,8],"tlp":["ami",5806],"trp":["mina",5578],"trw":["mina",5090],"lp":["ami","amh","amin","amha","amni","ahm"],"rp":["mina","ham","imma","hamn","manh","mha","pami","pani","ima","hap","hami","mani","mia","iam"]},"178":{"input":[2,5,6,8],"tlp":["smi",1160],"trp":["mis",5636],"tlw":["smink",63],"trw":["minns",1738],"lp":["smi","smin","sim","simp","simm"],"rp":["mis","miss","mins","mk","mik","ism","mpis","mmis","misk","msk","kim","msi","insp","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["smak",323],"trw":["manniska",1359],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",765],"trp":["hem",10392],"trw":["hem",4760],"lp":["emi","ehm"],"rp":["hem","hemm","ime","mhe","imme","meni","mine","phy","ypi","imen","iem","phe","hemi","iemi","hym","meh","hme","mehm"]},"181":{"input":[1,3,5,6,8],"trw":["hemma",2590],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spisen",158],"trw":["mindes",642],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["spanien",197],"trw":["make",607],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",4993],"trp":["mit",12022],"tlw":["bmi",74],"trw":["mitt",7427],"lp":["tim","timm","tmi","tmin","vtim","vm"],"rp":["mit","mitt","mti","mmit","mv","ntim","http","mbi","mith","pbi","mbin","imb","imt","htm"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",168],"trw":["hamta",775],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",142],"trw":["minst",1383],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["skamt",390],"trw":["knappt",1332],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",3834],"trw":["mitten",567],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["timmar",1675],"trw":["paven",682],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["centimeter",252],"trw":["mycket",13594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikanska",1014],"trw":["marken",865],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",29076],"lp":[],"rp":["op","po","opp","ppo","pop","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",1452],"trp":["oppa",4532],"lp":["appo","apo"],"rp":["oppa","opa","poa"]},"194":{"input":[2,7,8],"tlp":["spo",1053],"trp":["pos",1604],"tlw":["sop",69],"lp":["spo","sop","sopp"],"rp":["pos","poss","osp","osop","opps"]},"195":{"input":[1,2,7,8],"tlp":["sapo",311],"trp":["pow",123],"tlw":["sapo",311],"lp":["sapo","apos"],"rp":["pow","opas"]},"196":{"input":[3,7,8],"tlp":["epo",584],"trp":["oppe",3306],"trw":["o'",107],"lp":["epo","eop"],"rp":["oppe","ope","peo","peop","o'","poe","o'e"]},"197":{"input":[1,3,7,8],"tlp":["xpo",151],"tlw":["expo",95],"lp":["xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",66],"trp":["pose",156],"lp":["dop","espo"],"rp":["pose","ospe","osep","pod"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",2236],"trp":["pg",2205],"tlw":["topp",124],"lp":["top","topp","gp"],"rp":["pg","ppg","opt","pot","pott","pto"]},"201":{"input":[1,4,7,8],"tlp":["gap",69],"trp":["pag",1136],"trw":["pagatt",71],"lp":["gap","gapa"],"rp":["pag","pfo","ppfo","paga","ptag","pota","pga","ppga","opag"]},"202":{"input":[2,4,7,8],"tlp":["stop",1589],"trp":["post",535],"tlw":["stopp",156],"trw":["post",266],"lp":["stop","gsp","tspo","spot"],"rp":["post","psto"]},"203":{"input":[1,2,4,7,8],"tlw":["stoppa",368],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6174],"trp":["pro",9288],"tlw":["grepp",356],"trw":["oppet",450],"lp":["rop","ropp","grep","repo","epor","rope","rpo","rrop"],"rp":["pro","por","port","oper","ppor","opte","prog","ppro","pror","prot","peg","pege"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",324],"trw":["page",231],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["greps",172],"trw":["process",250],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["ropade",806],"trw":["pastod",364],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",354658],"trw":["om",75959],"lp":[],"rp":["om","mo","up","upp","nom","omm","onom","um","mu","umm","oppn","pu","mun","num","omp","mon","pon","omn","munn","pun"]},"209":{"input":[1,5,7,8],"tlp":["amo",397],"trp":["omma",9507],"trw":["oppna",1197],"lp":["amo","amu","ampo","amon","ammo"],"rp":["omma","oma","pau","omna","upa","umma","uma","uman","ompa","uppa","moa","oman","poan","mona","ooma"]},"210":{"input":[2,5,7,8],"tlp":["som",155381],"trp":["moj",5297],"tlw":["som",144609],"trw":["puss",75],"lp":["som","somm","somn","smu","smo","sum","summ"],"rp":["moj","jup","mos","upps","poj","mus","oms","omoj","mju","mons","mjo","mso","omso"]},"211":{"input":[1,2,5,7,8],"tlw":["somna",238],"trw":["paus",417],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",10795],"trp":["omme",12449],"trw":["uppe",1318],"lp":["enom","emo","emon"],"rp":["omme","umme","ome","uppe","ume","omen","nume","umen","pone","memo","meu","open","-m","on'","upe","onem","mue"]},"213":{"input":[1,3,5,7,8],"tlw":["anonym",71],"trw":["umea",222],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",4177],"trw":["mod",240],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["djupa",306],"trw":["oppnade",1540],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8905],"trp":["mot",29248],"tlw":["tom",739],"trw":["mot",18572],"lp":["tom","gom","tum","tomm"],"rp":["mot","utom","mg","uppg","uppt","omt","mob","upt","pub","mott","utm","omg","omb","mog","mut","moto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomma",544],"trw":["manga",6574],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",216],"trw":["most",517],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tomas",242],"trw":["magnus",263],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genom",7651],"trw":["mor",2097],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["framfor",3779],"trw":["pengar",2420],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["dessutom",3021],"trw":["person",1635],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["eftersom",5237],"trw":["omradet",633],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",19160],"trw":["lopp",92],"lp":[],"rp":["pl","pol","poli","plo","lp","ppl","lip","lipp","pli","lop","ilip","opl","oppl","opi","lopp","ipl","llop","ipli","pio","ppli"]},"225":{"input":[1,6,7,8],"tlp":["alp",4565],"trp":["pla",9629],"trw":["lapp",124],"lp":["alp","alpa","appl","apl","apli","apol"],"rp":["pla","lap","lapp","lpa","pal","ppla","lapa","pala","pola","lopa","opia","plai","pall"]},"226":{"input":[2,6,7,8],"tlp":["slip",785],"trp":["kop",4334],"tlw":["slips",162],"trw":["polis",999],"lp":["slip","spl","spol","skop","spok","spio"],"rp":["kop","kopp","posi","klip","kopi","lips","plik","lsp","llsp","pok","ispl","pols","psl","ppsl"]},"227":{"input":[1,2,6,7,8],"tlw":["sallskap",673],"trw":["kopa",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",483],"trp":["pel",7276],"trw":["people",483],"lp":["eopl","elop","elp","e'l","e'll"],"rp":["pel","ple","pple","ople","lpe","pole","pell","lope","opei","pele","ppel","'l","'ll","opie"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",405],"trw":["pela",641],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spel",332],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spelade",1035],"trw":["klappade",170],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["gpl",562],"trp":["plot",3391],"trw":["pigg",86],"lp":["gpl","gip","tiop"],"rp":["plot","pgi","ppgi","lpt","plig","ptio","pig","lopt","pgiv","pitl","pigg","pigt"]},"233":{"input":[1,4,6,7,8],"tlw":["filippa",520],"trw":["pavliga",154],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["plotsligt",3109],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slappt",216],"trw":["plats",2333],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",561],"trw":["prov",161],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",550],"trw":["lappar",380],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["speciellt",540],"trw":["kropp",1211],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["slappte",734],"trw":["kapitel",1031],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",11059],"trw":["honom",25475],"lp":[],"rp":["ml","mil","hop","lm","ommi","mli","ihop","hopp","inom","minu","lom","olm","holm","mill","uppl","mili","iml","ilm","omi","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["allihop",335],"trw":["lamna",1453],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["slump",168],"trw":["kom",13274],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smala",395],"trw":["komma",5926],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mille",982],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exempel",1422],"trw":["mellan",5596],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ekonomi",202],"trw":["polisen",2473],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlade",437],"trw":["lamnade",1603],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glomt",566],"trw":["mig",33025],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamla",2772],"trw":["lamnat",936],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["stockholm",1670],"trw":["kommit",3251],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["bakom",3858],"trw":["langsamt",1192],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["igenom",2222],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["tvartom",521],"trw":["information",924],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["emellertid",640],"trw":["kommer",10071],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidigt",3340],"trw":["manniskor",3295],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",697],"tlw":["a",9529],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",67011],"tlw":["s",3622],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",278948],"tlw":["sa",80180],"lp":["sa","as","ssa","ass","wa","assa","asa","was","sas","aw","ww","awa","sw","www","ws","swa","swas","wass","sass","saa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6371],"tlw":["e",4153],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",11230],"tlw":["ae",267],"lp":["ex","ea","ax","ae","xe","xa","exe","exa","axe","axa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",849873],"tlw":["de",70970],"lp":["de","ed","se","es","des","dd","ess","sed","dde","ds","sse","dess","ede","edd","esse","edde","ese","see","eds","ses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",298347],"tlw":["da",17349],"lp":["ad","ade","da","eda","sad","ada","seda","sade","ades","add","sada","dda","dad","we","essa","dade","ase","sex","ew","esa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",430036],"tlw":["t",873],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",420129],"tlw":["att",208516],"lp":["at","ta","att","fa","ft","tta","atta","af","ff","ata","tat","fat","fatt","aff","ffa","affa","aft","tf","fta","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",283811],"tlw":["c",718],"lp":["st","ts","sst","sc","ct","cc","tst","tc","tts","cts","cs","sts","tss","css","stst","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",95542],"tlw":["satt",11381],"lp":["sta","ast","sat","ac","satt","tsa","asta","ats","ca","tsat","tac","fas","fast","stat","tas","ssta","stas","tast","sats","stac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",462362],"tlw":["ett",56585],"lp":["et","er","te","re","ter","rt","tr","ett","tte","rr","tre","ete","ret","tet","rre","tter","ert","eter","ere","ttr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",760793],"tlw":["ar",85841],"lp":["ar","ra","fr","ara","fra","are","era","ef","rat","fte","art","fter","tar","eft","efte","far","tra","ratt","fe","atte"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",223222],"tlw":["det",200915],"lp":["det","rs","dr","rd","der","ste","rde","rst","ers","est","res","red","str","ser","ec","ce","set","ster","rts","ters"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dar",44203],"tlw":["dar",26310],"lp":["dar","rad","dra","tad","tade","rade","aste","rsta","ars","ttad","ras","erad","ard","star","sar","esta","reda","dare","stra","dera"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",152794],"trw":["n",1184],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",778026],"trp":["na",315512],"tlw":["an",15455],"trw":["nan",1595],"lp":["an","ann","anna","ana","anan","aan","aana","aq"],"rp":["na","nna","nan","nnan","nq","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sj",21534],"trp":["ns",134271],"trw":["j",959],"lp":["sj","sn","ssn","sjn"],"rp":["ns","nns","nss","nj","jn","js"]},"19":{"input":[1,2,5],"tlp":["ans",66128],"trp":["ja",200724],"tlw":["san",954],"trw":["ja",6931],"lp":["ans","san","sja","sna","anns","sann","ssna","ansa","anss","aj","ssan"],"rp":["ja","nas","nsa","jan","nnas","jans","jana","nja","nans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",686772],"trp":["ne",122568],"tlw":["en",141247],"trw":["ny",2216],"lp":["en","enn","enne","ene","een","ey","enen","enny"],"rp":["ne","nne","nen","ny","yn","nnen","ye","yne","nny","ynn","ynen","ynne"]},"21":{"input":[1,3,5],"tlp":["ena",17736],"trp":["ya",3990],"tlw":["ena",2504],"trw":["nya",3694],"lp":["ena","anne","ane","enna","ay","aen","any","anen","xan","exan","ean","xen","xn","xna","enq"],"rp":["ya","nya","yx","yea","nea"]},"22":{"input":[2,3,5],"tlp":["den",113774],"trp":["nd",217577],"tlw":["den",78914],"trw":["nej",5908],"lp":["den","sen","ens","ej","end","sy","dn","ende","dj"],"rp":["nd","nde","je","ys","nes","nnes","yd","nden","nej","jd","nse"]},"23":{"input":[1,2,3,5],"tlp":["and",132309],"trp":["nda",24974],"tlw":["sedan",13315],"trw":["new",1697],"lp":["and","ande","dan","edan","anda","sena","adan","enda","aden","anad","ensa","enas","aend","anse"],"rp":["nda","nad","nade","jad","jade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",13062],"trp":["nt",180386],"tlw":["b",734],"lp":["bb","tn","ttn","bt","bbt","tb"],"rp":["nt","nb","ntn","ntb"]},"25":{"input":[1,4,5],"tlp":["ba",80692],"trp":["nat",22606],"tlw":["annat",5472],"trw":["nat",1860],"lp":["ba","tan","ant","fan","anta","fann","ab","ban","abb","anf","bat","bba","tna"],"rp":["nat","nta","nf","nnat","nab","nabb","natt"]},"26":{"input":[2,4,5],"tlp":["tj",8505],"trp":["nst",17861],"tlw":["bbc",225],"lp":["tj","bj","bs","stn","sb","sjt","stj","sjtj","tsn","ttj","bc","bbc","stb"],"rp":["nst","nc","jt","nts","jtj","nsc","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",20169],"trp":["nast",10284],"tlw":["fanns",8575],"trw":["nastan",4851],"lp":["stan","bas","snab","anst","sant","bast","tja","tans","stna","tjan","bac","can","abs","snac"],"rp":["nast","nsta","jat","nac","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["be",75593],"trp":["nte",109829],"tlw":["be",2398],"trw":["ner",9674],"lp":["be","rn","ten","br","ty","ent","ren","ry","ern","ber","bet","rb"],"rp":["nte","ner","yt","ytt","yr","nner","ntr","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",60950],"trp":["nar",65863],"tlw":["fran",27093],"trw":["nar",38189],"lp":["ran","rna","bar","fran","arn","bara","arna","erna","bra","aran","aren","enar","barn","bera","arb","fy","arbe","beta"],"rp":["nar","nare"]},"30":{"input":[2,3,4,5],"tlp":["rj",17958],"trp":["yc",35067],"tlw":["tyst",1977],"lp":["rj","bes","tyc","sten","tys","tyd","dern","ryc","tryc","best","tyst","rden","rje","cen"],"rp":["yc","nder","ndr","yst","ndet","jer"]},"31":{"input":[1,2,3,4,5],"tlw":["andra",13622],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1872],"trw":["i",182908],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",2800],"trp":["ia",13569],"tlw":["ai",142],"trw":["ia",109],"lp":["ai","za","zi","az","zia","azi","zz","zzi","zza"],"rp":["ia","iz","iza","izz","izza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["sk",180550],"trp":["is",102522],"trw":["is",3657],"lp":["sk","si","ski","sik","sis","ssi","sisk","ssis"],"rp":["is","ik","isk","ks","ki","iss","iks","kis","isi","iki","kisk","kss"]},"35":{"input":[1,2,6],"tlp":["ak",74294],"trp":["ka",235111],"tlw":["ska",12542],"trw":["kaka",73],"lp":["ak","ska","sak","aka","wi","ask","skak","asi","aska","aks","aki"],"rp":["ka","ika","ksa","iska","isa","kas","issa","kak","kaka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",3018],"trp":["ie",21160],"tlw":["ei",236],"trw":["ie",545],"lp":["ei","eii","eiie"],"rp":["ie","iie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",1347],"trp":["ix",677],"tlw":["xii",198],"trw":["iae",103],"lp":["xi","ez","axi","exi","ezi","ezia","eiz","ze","xii","eza","aie","zie","zzie","eizi"],"rp":["ix","ixa","iae"]},"38":{"input":[2,3,6],"tlp":["di",49953],"trp":["ke",99121],"tlw":["skedde",390],"trw":["ide",614],"lp":["di","ek","ske","sid","dis","disk","sek","edi","esk","dsk","die"],"rp":["ke","id","ide","idi","ike","ise","idd","isse","iske"]},"39":{"input":[1,2,3,6],"tlp":["ake",15029],"trp":["kad",24793],"tlw":["sida",1628],"trw":["kikade",168],"lp":["ake","sake","sida","eka","skad","adi","akad","ekad","dska","xak","exak"],"rp":["kad","kade","ida","isad","idda","kada","kae","ikae","ikad"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",221703],"trp":["it",120245],"tlw":["vi",40006],"trw":["it",2563],"lp":["ti","vi","tv","vit","tit","titt","tvi","vt","tiv","tti","vitt","tivt","viv"],"rp":["it","itt","iv","ivi","iti","ivit","ivt"]},"41":{"input":[1,4,6],"tlp":["va",353292],"trp":["itta",13428],"tlw":["av",76117],"trw":["if",757],"lp":["va","av","fi","ati","tva","vat","vatt","ava","avi","tav","ativ","vita","via","tia","tati"],"rp":["itta","if","iva","ita","ift"]},"42":{"input":[2,4,6],"tlp":["ck",135164],"trp":["kt",95132],"tlw":["sitt",8546],"trw":["its",666],"lp":["ck","sv","vis","sit","cks","ci","sti","sitt","viss","tis","ckt","tisk"],"rp":["kt","ic","ick","kv","ikt","kti","ist","isst"]},"43":{"input":[1,2,4,6],"tlp":["cka",27505],"trp":["kva",11609],"tlw":["fick",13643],"lp":["cka","sva","akt","ack","fic","fick","cksa","akti","tack","visa","acka","avs","tak","akta","fak"],"rp":["kva","icka","kta","kat","ista"]},"44":{"input":[3,4,6],"tlp":["ri",112888],"trp":["ite",18519],"tlw":["vet",9572],"trw":["iver",119],"lp":["ri","ve","ver","ev","vet","rit","eri","rv","riv","rti","rev","eve","erv","vr","rie","tri"],"rp":["ite","ir","ive","ivet"]},"45":{"input":[1,3,4,6],"tlp":["var",212597],"trp":["ifr",5093],"tlw":["var",117709],"lp":["var","vara","ari","vari","ave","arit","vart","rva","varf","vare","arti","rav","ria","veta","fri","eva","rati","riva"],"rp":["ifr","ifra"]},"46":{"input":[2,3,4,6],"tlp":["rk",39613],"trp":["kr",38960],"tlw":["vid",15758],"lp":["rk","tid","cke","vid","rik","cket","skr","erk","dri","verk","sve","ckte","tidi","ris","ekt"],"rp":["kr","kte","ker","ket","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vad",23975],"trw":["kvar",4233],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",374950],"trw":["in",24928],"lp":[],"rp":["in","ni","inn","nin","hi","nni","ih","nh","hin","ini","nnin","hn","hinn","hnn","inni","ninn","inh","nih","ihi","nihi"]},"49":{"input":[1,5,6],"tlp":["anni",10319],"trp":["ha",405073],"tlw":["ah",652],"trw":["han",135757],"lp":["anni","ani","anin","ah","anh","ain","aha","anha"],"rp":["ha","han","ina","inna","hann","ian","nha","iha","nhan","nina","naz","nazi"]},"50":{"input":[2,5,6],"tlp":["sin",33457],"trp":["nk",33920],"tlw":["sin",19809],"trw":["his",717],"lp":["sin","sh"],"rp":["nk","nsk","kn","ins","nis","nsi","inns","hj","nisk","nnis","his","nsik","nik","kni","kh","kin","nnik","kj"]},"51":{"input":[1,2,5,6],"tlp":["ank",24052],"trp":["kan",66516],"tlw":["sina",10070],"trw":["hans",21333],"lp":["ank","ansk","sina","anka","ansi","zj","akn","akna","wh","skan"],"rp":["kan","hans","kans","nska","kna","kann","nka","hja","has","nika"]},"52":{"input":[3,5,6],"tlp":["eh",10650],"trp":["he",119485],"tlw":["eh",118],"trw":["henne",15609],"lp":["eh","enh","enhe","eni","enin","enni"],"rp":["he","hen","henn","inne","ien","nhe","ine","hy","nie","hey","neh","nneh","hei","nnie"]},"53":{"input":[1,3,5,6],"tlp":["eha",2865],"trp":["neha",654],"tlw":["annie",246],"lp":["eha","anie","ehan","anhe","enha","xin","axin","eani"],"rp":["neha","hea","hay","iane","hae","ynha","hane"]},"54":{"input":[2,3,5,6],"tlp":["dni",7195],"trp":["ken",21208],"tlw":["din",3500],"trw":["hennes",10942],"lp":["dni","dnin","ensk","din","sky","enk","edni","enke"],"rp":["ken","nske","nke","ind","iden","ky","ysk","ndi","isen","yk","iken","inde"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",3037],"trw":["hade",75973],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",42119],"trp":["int",110738],"tlw":["bit",873],"trw":["hit",1552],"lp":["th","bi","vin","tin","vinn","tni","tnin","thi","vb","ttni"],"rp":["int","nti","hit","ntin","nv","hitt","ib","nit","ith","nnit"]},"57":{"input":[1,4,5,6],"tlp":["van",36400],"trp":["hat",6563],"tlw":["that",4254],"trw":["haft",3590],"lp":["van","fin","finn","vant","tha","that","vann","anv","anva","vana","vani"],"rp":["hat","nva","haf","haft","inf","nvan","hav","hant","nati"]},"58":{"input":[2,4,5,6],"tlp":["ch",278681],"trp":["nkt",10498],"tlw":["this",1111],"trw":["nick",290],"lp":["ch","vj","ckh","sch","stin","ckn","this","svin","tch"],"rp":["nkt","kvin","inst","nic","nick","hist","nsv","nist","nsti","ich","nsiv"]},"59":{"input":[1,2,4,5,6],"tlw":["finns",6035],"trw":["kvinna",2323],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",26354],"trp":["inte",103570],"tlw":["the",18662],"trw":["inte",98723],"lp":["the","rin","ven","beh","rh","enti","bri","ther","erh","rhe","rhet","erin"],"rp":["inte","het","hete","her","intr","iten","nhet","hr"]},"61":{"input":[1,3,4,5,6],"tlw":["aven",6437],"trw":["har",67488],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tiden",4874],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["tankte",6155],"trw":["kanner",3200],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2318],"trw":["o",784],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",454],"trp":["oa",4643],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",206463],"trp":["os",36642],"tlw":["so",864],"trw":["oss",8697],"lp":["so","sso","soo"],"rp":["os","oss","oso","osso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",2187],"trp":["ow",2946],"tlw":["wow",58],"lp":["wo","aso","asso","saso","aos","woo","wow","sao"],"rp":["ow","osa","ossa","ows","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2376],"trp":["oe",2841],"trw":["-",1201],"lp":["eo"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",397],"trp":["ox",399],"lp":["xo","a-"],"rp":["ox","-a","oxe"]},"70":{"input":[2,3,7],"tlp":["do",35235],"trp":["od",40189],"tlw":["dod",2129],"trw":["ode",316],"lp":["do","dod","eso","edo","sod","sode","esso","dode","doe","does","dsso","dods"],"rp":["od","ode","odd","odde","ose","ods","ood","oes"]},"71":{"input":[1,2,3,7],"tlp":["doda",2068],"trp":["oda",5346],"tlw":["doda",1277],"lp":["doda","ado","sado","dow","easo","dosa","wood"],"rp":["oda","oad","odad","owe","oade","odda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",90775],"trp":["ot",87066],"tlw":["tog",9006],"trw":["otto",257],"lp":["to","go","gt","got","gg","tog","gott","tto","tot","tg","tott"],"rp":["ot","og","ott","ogo","oto","ogt","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["ag",317285],"trp":["of",22543],"tlw":["ga",7744],"trw":["of",10904],"lp":["ag","fo","ga","ago","aga","agot","tag","gat","agg","agt","gga","gatt","fot","agga"],"rp":["of","oft","off","ota","ofta","oga"]},"74":{"input":[2,4,7],"tlp":["sto",40954],"trp":["oc",289376],"tlw":["sot",305],"trw":["ost",163],"lp":["sto","gs","co","gst","toc","stoc","soc","stot","sog","sot","sogo","togs","gts"],"rp":["oc","ost","ots","ogs","ogst","otst","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",35425],"trp":["osta",1492],"tlw":["sag",13608],"trw":["oftast",553],"lp":["sag","saga","ags","sagt","gas","gast","gsa","sof","aco","soff","asto","sags","gsta","stag","ggas","agas","two"],"rp":["osta","otsa","osca"]},"76":{"input":[3,4,7],"tlp":["ge",165737],"trp":["or",421801],"tlw":["gor",5705],"trw":["or",1673],"lp":["ge","ro","gr","ger","tor","eg","tro","gor","rg","get","ror","ege","gre","rot"],"rp":["or","ort","ore","orr","org","orre"]},"77":{"input":[1,3,4,7],"tlp":["for",206825],"trp":["ora",29125],"tlw":["for",86020],"lp":["for","gar","age","gra","rag","fort","frag","agr","raga","agra","gora","ager","rfo","rfor","fore","arfo","gare","agar","tora"],"rp":["ora"]},"78":{"input":[2,3,4,7],"tlp":["rso",20201],"trp":["ors",42598],"tlw":["stod",7497],"trw":["ord",2401],"lp":["rso","stor","erso","tod","stod","gd","dor","rod","gde","ros","dro","dorr","rost","sor"],"rp":["ors","ord","orde","orst","orso","orts"]},"79":{"input":[1,2,3,4,7],"tlw":["sager",8656],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",215270],"trw":["nu",20433],"lp":[],"rp":["on","un","no","nu","ono","unn","ou","nno","nnu","onn","non","oun","oon","onnu","nou"]},"81":{"input":[1,5,7],"tlp":["au",4722],"trp":["unna",7691],"tlw":["annu",3706],"lp":["au","annu","anno","ano","qu","anu","anua","anon","aou"],"rp":["unna","ua","ona","oan","nua","onna","una","oona","nqu","oann","uan"]},"82":{"input":[2,5,7],"tlp":["son",18325],"trp":["ju",46060],"tlw":["son",1353],"trw":["ju",10993],"lp":["son","su","sson","sju","ssu","sjo","sjon","sjun"],"rp":["ju","jo","us","oj","ons","jus","jon","nsso","uss","jun","jou","noj"]},"83":{"input":[1,2,5,7],"tlp":["aus",996],"trp":["usa",2823],"tlw":["sonja",276],"trw":["usa",1340],"lp":["aus","sona","wou","susa","ajo","ason"],"rp":["usa","oja","now","joa","own","janu","usan","onsa","onja","jua","jusa","ojan","nown","joan"]},"84":{"input":[3,5,7],"tlp":["eno",11644],"trp":["one",21213],"tlw":["eu",207],"trw":["you",1411],"lp":["eno","eu","eun","enou","enu"],"rp":["one","onen","yo","ue","you","unne","oen","une","n-","ony","oy","neu","y-","yon","nony"]},"85":{"input":[1,3,5,7],"tlp":["xu",643],"trp":["ux",939],"tlw":["anyone",56],"lp":["xu","exu","xue","exue","enqu","que","xua","exua","ann-","anyo"],"rp":["ux","uxn","uxna","yxo","uxe","uxen","na-","nna-","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",45128],"trp":["und",57348],"tlw":["du",40597],"trw":["nojd",538],"lp":["du","essu","sone","dju","esu","don"],"rp":["und","unde","ud","use","ude","jud","ond","ojd","ojde","ndo","jude","nod","usen","oend"]},"87":{"input":[1,2,3,5,7],"tlw":["down",202],"trw":["undan",1747],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",46434],"trp":["ng",167442],"tlw":["but",1259],"trw":["ut",23705],"lp":["bo","gon","tu","gn","ton","tun","gu","bu"],"rp":["ng","ut","ob","ung","ont","ug","ogon","ngt","unt","obb","uto","nog"]},"89":{"input":[1,4,5,7],"tlp":["ang",59439],"trp":["nag",48054],"tlw":["gang",6284],"trw":["nagot",17486],"lp":["ang","gan","agon","gang","anga","fu","gna","fon","angt","anfo","fun","atu"],"rp":["nag","nago","nga","uta","utan","nfo","natu","uf"]},"90":{"input":[2,4,5,7],"tlp":["gj",14385],"trp":["ust",11850],"tlw":["tjugo",984],"trw":["just",6345],"lp":["gj","gjo","stu","sut","stun","ssut","suto","gons","ston","bjo"],"rp":["ust","job","onst","just","ngs","jobb","uc","uts","jut","jug"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",726],"trw":["jag",133333],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",96318],"trp":["nge",54194],"tlw":["bort",5520],"trw":["ur",6494],"lp":["gen","ru","bor","geno","run","bort","bro","egen","gent","tur"],"rp":["nge","ur","ngen","yg","ngr","ute","nor","orn","nger","unge"]},"93":{"input":[1,3,4,5,7],"tlw":["gangen",3207],"trw":["nagra",10760],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",8777],"trw":["under",14292],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["borjade",6021],"trw":["undrade",1668],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",353262],"trw":["ol",691],"lp":[],"rp":["ll","li","il","ill","ol","lo","io","oli","oll","lli","ili","lil","lill","olo","illi","ilo","llo","oi","lio","ool"]},"97":{"input":[1,6,7],"tlp":["al",238639],"trp":["la",255368],"tlw":["alla",16475],"trw":["lilla",2283],"lp":["al","all","alla","ala","ali","alli","zl","zla","zo"],"rp":["la","lla","illa","ola","ial","lia","ila","olla","ilia","oal","oz"]},"98":{"input":[2,6,7],"tlp":["sl",40951],"trp":["ko",98099],"tlw":["sol",152],"trw":["loss",451],"lp":["sl","sok","sko","slo","skil","sli"],"rp":["ko","kl","ls","ok","lk","lik","kli","lls","lis","kil","ilk","olis","ills","kol"]},"99":{"input":[1,2,6,7],"tlp":["sla",15876],"trp":["kla",20340],"tlw":["alls",1882],"trw":["lika",4448],"lp":["sla","als","sal","ako","skal","alls","soka","alsk","wal"],"rp":["kla","las","kal","kall","lika","oka","lsa","lska","llsa","lak","lka"]},"100":{"input":[3,6,7],"tlp":["el",123518],"trp":["le",182809],"tlw":["el",140],"trw":["le",410],"lp":["el","ell","elle","ele","eli","elo","elie"],"rp":["le","lle","ille","ile","olle","ole","lie","iel","lee","iell","lei","ilie","leo"]},"101":{"input":[1,3,6,7],"tlp":["ela",19365],"trp":["lex",1360],"tlw":["alex",558],"trw":["ozzie",67],"lp":["ela","alle","ale","ella","alex","ael","xl","axl","xla","axla","alie","xel","axel","eal","zoe","elal"],"rp":["lex","lexa","lea","oale"]},"102":{"input":[2,3,6,7],"tlp":["del",18169],"trp":["ld",45006],"tlw":["del",4570],"trw":["ledde",906],"lp":["del","els","dl","else","dli","dele"],"rp":["ld","lde","lld","led","lse","llde","lke","oke","ild","ilke","les","kel","lise","lek"]},"103":{"input":[1,2,3,6,7],"tlw":["alldeles",2595],"trw":["lade",1957],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",104652],"trp":["ig",244414],"tlw":["till",78901],"trw":["liv",4044],"lp":["til","till","gi","vil","vill","tio","tig","gl","tl"],"rp":["ig","lig","lt","ov","igt","llt","ligt","lv","lit","liv","log"]},"105":{"input":[1,4,6,7],"tlp":["tal",36626],"trp":["lat",26260],"tlw":["allt",11228],"trw":["lag",5318],"lp":["tal","allt","val","fl","alv","vag","tall","fal","fol","fall","atio","tala","alt","gla"],"rp":["lat","lag","iga","liga","ova","lva"]},"106":{"input":[2,4,6,7],"tlp":["sig",64325],"trp":["ock",24775],"tlw":["sig",62876],"trw":["likt",416],"lp":["sig","gic","gick","vilk","sokt","sov","ckl"],"rp":["ock","ocks","lic","ktig","lick","klig","okt","loc","lock","lst","kov","lts","llts"]},"107":{"input":[1,2,4,6,7],"tlw":["alltsa",3917],"trw":["ocksa",11852],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",28320],"trp":["ler",39552],"tlw":["eller",21635],"trw":["over",17755],"lp":["rl","rig","rli","elt","rlig","tel","rol","erl","rige"],"rp":["ler","ige","ller","ove","over","lev","lige","let","lite","llet","lir"]},"109":{"input":[1,3,4,6,7],"tlw":["varfor",5432],"trw":["later",1516],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dig",9388],"trw":["kort",3076],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",8974],"trw":["klart",1941],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",156427],"trw":["hon",71785],"lp":[],"rp":["ho","hon","ul","ull","hu","lu","hono","ion","nl","lin","nli","hol","ln","holl","oh","iho","uni","hun","lun","ino"]},"113":{"input":[1,5,6,7],"tlp":["anl",7509],"trp":["lan",56925],"tlw":["quinn",114],"trw":["halla",3206],"lp":["anl","anli","alin","alln","alan"],"rp":["lan","hal","hall","llan","nal","oha","ohan","ula","nali","olan","lina","ulla","lna","nla","inal"]},"114":{"input":[2,5,6,7],"tlp":["sku",43264],"trp":["ku",78375],"tlw":["skull",1127],"trw":["hos",4276],"lp":["sku","skul","slu"],"rp":["ku","kul","kull","kun","lj","uk","kon","hus","ilj","juk","kunn","olj","jl","ojl","jli","ojli","hos"]},"115":{"input":[1,2,5,6,7],"tlw":["skolan",1295],"trw":["kunna",5127],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",7167],"trp":["ulle",40111],"tlw":["elin",222],"trw":["hel",1084],"lp":["eho","eln","enl","enli"],"rp":["ulle","hel","len","ly","ione","llen","yl","hell","ilen","yll","olen","nle","uel","uell","leen","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["elina",933],"trw":["hela",8378],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulle",39287],"trw":["kunde",19109],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["skillnad",573],"trw":["handlade",1198],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",59992],"trp":["ing",86010],"tlw":["bli",9179],"trw":["hogt",1449],"lp":["bl","bli","tion","bil","vu","ting","gh"],"rp":["ing","ning","lut","lb","nlig","llb","illb","hog","uv","hov","huv","uvu","huvu"]},"121":{"input":[1,4,5,6,7],"tlw":["vanligt",1746],"trw":["inga",3339],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["slut",3258],"trw":["och",261930],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sjalv",9343],"trw":["klockan",2663],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",11880],"trw":["hur",18534],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagen",2479],"trw":["langre",3962],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["verkligen",3128],"trw":["huvudet",3819],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["bland",3152],"trw":["ibland",2952],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",78667],"trw":["p",2050],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",29927],"trp":["pa",207370],"trw":["pa",144323],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",19698],"trp":["ps",3998],"lp":["sp"],"rp":["ps","pps","psp","ppsp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4537],"trp":["pas",7949],"tlw":["asp",86],"trw":["pass",549],"lp":["spa","sap","asp","aps","spas","aspa"],"rp":["pas","pass","ppas","psa","ppsa","pspa","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",6152],"trp":["pe",48173],"trw":["'",472],"lp":["ep","epp","e'","eppe","e'e","eep"],"rp":["pe","ppe","'e","pee","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",3130],"trp":["pape",411],"lp":["ape","appe","xp","exp","epa","xpe","expe","eap","eape","eppa"],"rp":["pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",8127],"trp":["pd",798],"tlw":["esp",72],"trw":["'de",96],"lp":["spe","esp","espe","sep","desp","dp","dsp","eps","dspe","dep","e's","d'","d'e"],"rp":["pd","ppd","'s","'d","'de","pse","'es"]},"135":{"input":[1,2,3,8],"tlp":["apad",573],"trp":["pad",4572],"trw":["passade",486],"lp":["apad","epad","dap","adap","spad","aspe","we'"],"rp":["pad","pade","ppad","pase","pesa"]},"136":{"input":[4,8],"tlp":["tp",509],"trp":["pt",11645],"trw":["pt",359],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",2622],"trp":["pat",2945],"tlw":["tappa",242],"trw":["pat",56],"lp":["appt","tap","tapp","apt","apat","tpa","apta"],"rp":["pat","pf","ppf","pta","ppta","pfa","ppfa","pfat","ppat","ptat","pata","paf","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",635],"trp":["pst",539],"lp":["tsp","stp","ttsp"],"rp":["pst","ppst"]},"139":{"input":[1,2,4,8],"tlp":["stpa",148],"trp":["past",2465],"trw":["pasta",175],"lp":["stpa","cap","astp","tpas","spac"],"rp":["past","ptac","pac","psta","psat","pats"]},"140":{"input":[3,4,8],"tlp":["rep",3339],"trp":["pr",31793],"tlw":["rep",90],"trw":["per",1755],"lp":["rep","ept","rp","epte","repp"],"rp":["pr","per","pre","pet","pte","pper","ppr","pete","ppte","'t","ppet","pter","petr","ppre","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",2854],"trp":["par",13633],"tlw":["trappa",178],"trw":["par",3758],"lp":["rap","rapp","trap","arp","rpa","arpa","apet","xper","repa","apr"],"rp":["par","pra","prat","part","pera","ppar","patr","pare","perf","para"]},"142":{"input":[2,3,4,8],"tlp":["spr",4496],"trp":["pers",6327],"tlw":["spred",228],"trw":["press",442],"lp":["spr","spec","cep","cept","resp","ccep","sept","t's","rsp","spre","etsp","sper","rspr","ecep"],"rp":["pers","prec","pres","pec","pdr","ppdr"]},"143":{"input":[1,2,3,4,8],"tlw":["spar",785],"trw":["pratade",1339],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",66159],"trw":["m",1599],"lp":[],"rp":["mm","mn","mp","pn","ppn","pm","ppm","nm","np"]},"145":{"input":[1,5,8],"tlp":["am",108972],"trp":["ma",166775],"tlw":["am",93],"trw":["man",29921],"lp":["am","amm","amma","amn","amna"],"rp":["ma","man","mma","mann","mna","mman","pan","nam","mam","mamm","pna","namn","ppna","nap","napp"]},"146":{"input":[2,5,8],"tlp":["sm",12954],"trp":["ms",5095],"tlw":["sms",163],"trw":["jp",57],"lp":["sm","sms","spj","ssm"],"rp":["ms","mj","nsp","nsm","pj","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",33659],"trp":["mas",17101],"tlw":["samma",6340],"trw":["massa",827],"lp":["sam","samm","sma","span","ams","sman","asm","smas","sama"],"rp":["mas","mans","nsam","jam","mass","maj","mmas","jap","japa","pans","jamn"]},"148":{"input":[3,5,8],"tlp":["em",51088],"trp":["me",242113],"tlw":["e'en",102],"trw":["men",54243],"lp":["em","eme","emm","emp","empe","emen"],"rp":["me","men","mme","my","pen","ppen","ym","mpe","mne","yp","mmen","n'","mnen","ymm"]},"149":{"input":[1,3,5,8],"tlp":["ame",4829],"trp":["mena",3740],"tlw":["amy",218],"trw":["mannen",4191],"lp":["ame","emma","amne","xem","exem","xemp","amme","ema","apen","eman","amen","an'","apne"],"rp":["mena","mea","yma","yman","many","may","pany"]},"150":{"input":[2,3,5,8],"tlp":["dem",15113],"trp":["med",110013],"tlw":["dem",13812],"trw":["med",97131],"lp":["dem","ems","sme","smy","sem","seme","emes"],"rp":["med","mes","md","mde","mede","psy","mej","mens","medd","mnd","pens","mnde","mynd"]},"151":{"input":[1,2,3,5,8],"tlw":["ensam",1863],"trw":["medan",4549],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3262],"trp":["mt",19904],"lp":["tm","bm"],"rp":["mt","mb","mnt","pb"]},"153":{"input":[1,4,5,8],"tlp":["amt",15300],"trp":["mat",7731],"tlw":["famn",168],"trw":["mat",1157],"lp":["amt","tam","amf","amta","fam","amb","atm","tamm","amba","amat","tamt","tma"],"rp":["mat","mf","mta","mba","matt","mnat","mban","mfa"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["tsm",656],"trp":["mst",2612],"lp":["tsm","ttsm"],"rp":["mst","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",1065],"trw":["mats",293],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",23979],"trp":["mer",31601],"tlw":["typ",630],"trw":["mer",11323],"lp":["rm","rme","rmen","tem","rem","emb","embe","erm","typ","emt"],"rp":["mer","mmer","met","mmet","mr","ment","mbe","mber","mete","penb"]},"157":{"input":[1,3,4,5,8],"tlw":["fram",10772],"trw":["menar",2322],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["september",636],"trw":["mest",3296],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["bestamde",1009],"trw":["maste",10840],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",5476],"lp":[],"rp":["pi","ip","ipp","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1326],"trp":["ippa",1060],"trw":["pia",366],"lp":["api"],"rp":["ippa","ipa","pia","pipa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",447],"trp":["pis",1842],"tlw":["skip",66],"lp":["spi","spis","spik","skip"],"rp":["pis","ips","psk","ppsk","pisk","isp","ksp","pik","psi","ppsi","psik","pk","ppk","kip"]},"163":{"input":[1,2,6,8],"tlp":["skap",4614],"trp":["kap",6395],"tlw":["skapa",567],"trw":["kapp",67],"lp":["skap"],"rp":["kap","kapi","kapa","pska","pisa","pak","kapp","ispa","ipas","ikap"]},"164":{"input":[3,6,8],"trp":["ipe",417],"lp":[],"rp":["ipe","pie","pei","ippe","i'"]},"165":{"input":[1,3,6,8],"lp":[],"rp":[]},"166":{"input":[2,3,6,8],"tlp":["spek",1307],"trp":["pek",3334],"tlw":["skepp",67],"trw":["keep",74],"lp":["spek","skep","disp","dip","espi"],"rp":["pek","idp","kep","pise","peis","kspe","pike","keep","ipse","kepp","keps","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["skapade",297],"trw":["pekade",973],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",162],"trp":["pit",1381],"lp":["tip"],"rp":["pit","pti","ippt","pv","ppv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1525],"trp":["pav",1648],"lp":["vap","apit"],"rp":["pav","pati","pita","pva","ppva","pif","ppif"]},"170":{"input":[2,4,6,8],"tlp":["cip",532],"trp":["pist",342],"tlw":["tips",162],"lp":["cip","tips","cksp","visp","scip","spit"],"rp":["pist","ptis","istp","pic"]},"171":{"input":[1,2,4,6,8],"tlw":["skapat",225],"trw":["packa",130],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1494],"trp":["pri",4672],"trw":["pierre",295],"lp":["rip","epti","vep","ripe","vept","epri"],"rp":["pri","peri","pite","priv","it'","prit","pier","iper","ppri","'ti"]},"173":{"input":[1,3,4,6,8],"tlw":["varpa",108],"trw":["partiet",469],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["respekt",485],"trw":["precis",3817],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",390],"trw":["patrik",492],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",102861],"trw":["min",13506],"lp":[],"rp":["mi","min","im","mmi","imm","minn","mh","ph","him","mpi","mini","pph","imi","imp","hm","imin","mni","mnin","pni","ppni"]},"177":{"input":[1,5,6,8],"tlp":["ami",5806],"trp":["mina",5578],"trw":["mina",5090],"lp":["ami","amh","amin","amha","amni","ahm"],"rp":["mina","ham","imma","hamn","manh","mha","pami","pani","ima","hap","hami","mani","mia","iam"]},"178":{"input":[2,5,6,8],"tlp":["smi",1160],"trp":["mis",5636],"tlw":["smink",63],"trw":["minns",1738],"lp":["smi","smin","sim","simp","simm"],"rp":["mis","miss","mins","mk","mik","ism","mpis","mmis","misk","msk","kim","msi","insp","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["smak",323],"trw":["manniska",1359],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",765],"trp":["hem",10392],"trw":["hem",4760],"lp":["emi","ehm"],"rp":["hem","hemm","ime","mhe","imme","meni","mine","phy","ypi","imen","iem","phe","hemi","iemi","hym","meh","hme","mehm"]},"181":{"input":[1,3,5,6,8],"trw":["hemma",2590],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spisen",158],"trw":["mindes",642],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["spanien",197],"trw":["make",607],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",4993],"trp":["mit",12022],"tlw":["bmi",74],"trw":["mitt",7427],"lp":["tim","timm","tmi","tmin","vtim","vm"],"rp":["mit","mitt","mti","mmit","mv","ntim","http","mbi","mith","pbi","mbin","imb","imt","htm"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",168],"trw":["hamta",775],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",142],"trw":["minst",1383],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["skamt",390],"trw":["knappt",1332],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",3834],"trw":["mitten",567],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["timmar",1675],"trw":["paven",682],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["centimeter",252],"trw":["mycket",13594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikanska",1014],"trw":["marken",865],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",29076],"lp":[],"rp":["op","po","opp","ppo","pop","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",1452],"trp":["oppa",4532],"lp":["appo","apo"],"rp":["oppa","opa","poa"]},"194":{"input":[2,7,8],"tlp":["spo",1053],"trp":["pos",1604],"tlw":["sop",69],"lp":["spo","sop","sopp"],"rp":["pos","poss","osp","osop","opps"]},"195":{"input":[1,2,7,8],"tlp":["sapo",311],"trp":["pow",123],"tlw":["sapo",311],"lp":["sapo","apos"],"rp":["pow","opas"]},"196":{"input":[3,7,8],"tlp":["epo",584],"trp":["oppe",3306],"trw":["o'",107],"lp":["epo","eop"],"rp":["oppe","ope","peo","peop","o'","poe","o'e"]},"197":{"input":[1,3,7,8],"tlp":["xpo",151],"tlw":["expo",95],"lp":["xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",66],"trp":["pose",156],"lp":["dop","espo"],"rp":["pose","ospe","osep","pod"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",2236],"trp":["pg",2205],"tlw":["topp",124],"lp":["top","topp","gp"],"rp":["pg","ppg","opt","pot","pott","pto"]},"201":{"input":[1,4,7,8],"tlp":["gap",69],"trp":["pag",1136],"trw":["pagatt",71],"lp":["gap","gapa"],"rp":["pag","pfo","ppfo","paga","ptag","pota","pga","ppga","opag"]},"202":{"input":[2,4,7,8],"tlp":["stop",1589],"trp":["post",535],"tlw":["stopp",156],"trw":["post",266],"lp":["stop","gsp","tspo","spot"],"rp":["post","psto"]},"203":{"input":[1,2,4,7,8],"tlw":["stoppa",368],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6174],"trp":["pro",9288],"tlw":["grepp",356],"trw":["oppet",450],"lp":["rop","ropp","grep","repo","epor","rope","rpo","rrop"],"rp":["pro","por","port","oper","ppor","opte","prog","ppro","pror","prot","peg","pege"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",324],"trw":["page",231],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["greps",172],"trw":["process",250],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["ropade",806],"trw":["pastod",364],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",354658],"trw":["om",75959],"lp":[],"rp":["om","mo","up","upp","nom","omm","onom","um","mu","umm","oppn","pu","mun","num","omp","mon","pon","omn","munn","pun"]},"209":{"input":[1,5,7,8],"tlp":["amo",397],"trp":["omma",9507],"trw":["oppna",1197],"lp":["amo","amu","ampo","amon","ammo"],"rp":["omma","oma","pau","omna","upa","umma","uma","uman","ompa","uppa","moa","oman","poan","mona","ooma"]},"210":{"input":[2,5,7,8],"tlp":["som",155381],"trp":["moj",5297],"tlw":["som",144609],"trw":["puss",75],"lp":["som","somm","somn","smu","smo","sum","summ"],"rp":["moj","jup","mos","upps","poj","mus","oms","omoj","mju","mons","mjo","mso","omso"]},"211":{"input":[1,2,5,7,8],"tlw":["somna",238],"trw":["paus",417],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",10795],"trp":["omme",12449],"trw":["uppe",1318],"lp":["enom","emo","emon"],"rp":["omme","umme","ome","uppe","ume","omen","nume","umen","pone","memo","meu","open","-m","on'","upe","onem","mue"]},"213":{"input":[1,3,5,7,8],"tlw":["anonym",71],"trw":["umea",222],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",4177],"trw":["mod",240],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["djupa",306],"trw":["oppnade",1540],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8905],"trp":["mot",29248],"tlw":["tom",739],"trw":["mot",18572],"lp":["tom","gom","tum","tomm"],"rp":["mot","utom","mg","uppg","uppt","omt","mob","upt","pub","mott","utm","omg","omb","mog","mut","moto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomma",544],"trw":["manga",6574],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",216],"trw":["most",517],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tomas",242],"trw":["magnus",263],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genom",7651],"trw":["mor",2097],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["framfor",3779],"trw":["pengar",2420],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["dessutom",3021],"trw":["person",1635],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["eftersom",5237],"trw":["omradet",633],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",19160],"trw":["lopp",92],"lp":[],"rp":["pl","pol","poli","plo","lp","ppl","lip","lipp","pli","lop","ilip","opl","oppl","opi","lopp","ipl","llop","ipli","pio","ppli"]},"225":{"input":[1,6,7,8],"tlp":["alp",4565],"trp":["pla",9629],"trw":["lapp",124],"lp":["alp","alpa","appl","apl","apli","apol"],"rp":["pla","lap","lapp","lpa","pal","ppla","lapa","pala","pola","lopa","opia","plai","pall"]},"226":{"input":[2,6,7,8],"tlp":["slip",785],"trp":["kop",4334],"tlw":["slips",162],"trw":["polis",999],"lp":["slip","spl","spol","skop","spok","spio"],"rp":["kop","kopp","posi","klip","kopi","lips","plik","lsp","llsp","pok","ispl","pols","psl","ppsl"]},"227":{"input":[1,2,6,7,8],"tlw":["sallskap",673],"trw":["kopa",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",483],"trp":["pel",7276],"trw":["people",483],"lp":["eopl","elop","elp","e'l","e'll"],"rp":["pel","ple","pple","ople","lpe","pole","pell","lope","opei","pele","ppel","'l","'ll","opie"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",405],"trw":["pela",641],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spel",332],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spelade",1035],"trw":["klappade",170],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["gpl",562],"trp":["plot",3391],"trw":["pigg",86],"lp":["gpl","gip","tiop"],"rp":["plot","pgi","ppgi","lpt","plig","ptio","pig","lopt","pgiv","pitl","pigg","pigt"]},"233":{"input":[1,4,6,7,8],"tlw":["filippa",520],"trw":["pavliga",154],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["plotsligt",3109],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slappt",216],"trw":["plats",2333],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",561],"trw":["prov",161],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",550],"trw":["lappar",380],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["speciellt",540],"trw":["kropp",1211],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["slappte",734],"trw":["kapitel",1031],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",11059],"trw":["honom",25475],"lp":[],"rp":["ml","mil","hop","lm","ommi","mli","ihop","hopp","inom","minu","lom","olm","holm","mill","uppl","mili","iml","ilm","omi","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["allihop",335],"trw":["lamna",1453],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["slump",168],"trw":["kom",13274],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smala",395],"trw":["komma",5926],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mille",982],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exempel",1422],"trw":["mellan",5596],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ekonomi",202],"trw":["polisen",2473],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlade",437],"trw":["lamnade",1603],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glomt",566],"trw":["mig",33025],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamla",2772],"trw":["lamnat",936],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["stockholm",1670],"trw":["kommit",3251],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["bakom",3858],"trw":["langsamt",1192],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["igenom",2222],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["tvartom",521],"trw":["information",924],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["emellertid",640],"trw":["kommer",10071],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidigt",3340],"trw":["manniskor",3295],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json index 338d9a62a5..567cde878b 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",4698],"tlw":["a",3554],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",4821],"tlw":["s",2414],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",119382],"tlw":["www",328],"lp":["as","sa","asa","saa","sas","asas","ww","ssa","ass","www","assa","aw","ssas","wa","was","aas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",787],"tlw":["e",2415],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",1611],"tlw":["x",136],"lp":["ea","ax","ex","ae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",225606],"tlw":["de",36223],"lp":["de","se","ed","es","ede","ded","ses","ese","dd","des","ess","dde","sed","sse","sess","ds","ssed","sede","dede","ddes"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",206254],"tlw":["da",34321],"lp":["da","ad","ada","ade","sad","das","sade","adas","esa","dad","add","we","asad","adde","dea","dada","eda","ew","esas","ades"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",24695],"tlw":["t",1015],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",77585],"tlw":["ta",701],"lp":["ta","at","fa","af","att","ata","aat","afa","tta","atta","ft","tat","fta","aft","afta","tf","taf","tafa","fat","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",68030],"tlw":["c",1161],"lp":["st","ct","ts","tc","sc","cs","cc","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",58921],"tlw":["saat",1953],"lp":["ca","ac","aca","sta","ast","tas","saat","asta","sac","cas","sat","fas","afas","act","ats","saf","tsa","fac","cat","staf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",226224],"tlw":["r",1919],"lp":["er","re","te","et","ere","rt","ter","ett","ret","tr","rr","ete","rer","ert","etr","tte","eter","tre","tere","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265101],"tlw":["ara",805],"lp":["ar","ra","ara","tar","ef","fe","art","rar","are","rta","raf","tara","efe","ate","far","araf","arar","era","aret","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",94145],"tlw":["eder",1592],"lp":["rd","ce","ec","rs","ece","ste","der","erd","rc","rde","erc","rce","erce","tes","ster","erde","eder","cer","dec","dece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",24858],"tlw":["sadece",3474],"lp":["ard","dar","adar","rad","rada","sar","ars","ras","aras","rda","arda","rsa","adec","car","arc","rca","arca","sara","arad","ates"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",4449],"trw":["n",2786],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",238539],"trp":["na",72648],"tlw":["an",2138],"trw":["na",265],"lp":["an","ana","ann","anan","anna","anaa"],"rp":["na","nan","nana","nna","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",731],"trp":["ns",19851],"trw":["j",258],"lp":["sn","sj"],"rp":["ns"]},"19":{"input":[1,2,5],"tlp":["san",27441],"trp":["nsa",12550],"tlw":["sana",3065],"trw":["jan",70],"lp":["san","sana","ans","asan","aj","sans","anas","sna","ansa","saj","wn","snas","aja","ajan"],"rp":["nsa","nsan","nas","ja","jan","jas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",210551],"trp":["ne",100917],"tlw":["en",11061],"trw":["ne",21701],"lp":["en","ey","eye","ene","eyen","enn","enen","enne","eyn","eney"],"rp":["ne","ye","yen","yn","ny","nne","ney","nen","neye","yey"]},"21":{"input":[1,3,5],"tlp":["ay",82752],"trp":["ya",146697],"tlw":["ay",1315],"trw":["ya",9294],"lp":["ay","aya","ayn","ayan","eya","aye","anne","ane","ena","ean","ayna"],"rp":["ya","yan","nya","yana","yay","yna","nyan","nyay","nay"]},"22":{"input":[2,3,5],"tlp":["den",42341],"trp":["nd",145890],"tlw":["sey",11559],"trw":["neden",3186],"lp":["den","end","sey","sen","eden","eyd","sy","ende","eys","eyse","dey"],"rp":["nd","nde","yd","nden","ned","nede","nes","ys","yse"]},"23":{"input":[1,2,3,5],"tlp":["dan",31876],"trp":["nda",59116],"tlw":["anda",2147],"trw":["yandan",1000],"lp":["dan","and","anda","adan","say","ayd","day","sya","daya","saya"],"rp":["nda","ndan","yas","yasa","yda","yad","yand","yada","ydan","nyad"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",403],"trp":["nt",8039],"tlw":["b",1063],"lp":["bb","bn","tn"],"rp":["nt","nb","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",93513],"trp":["nat",1344],"tlw":["bana",7207],"lp":["ba","ab","tan","aba","ban","bana","bab","baba","tab","aban","ant","bat","anb","tanb","atan","anat","anta","taba"],"rp":["nat","nta"]},"26":{"input":[2,4,5],"tlp":["cb",5912],"trp":["nc",43318],"lp":["cb","sb","bs"],"rp":["nc","nst","nts","nct","ncs"]},"27":{"input":[1,2,4,5],"tlp":["bas",33680],"trp":["nca",9555],"tlw":["bas",1003],"lp":["bas","anc","anca","can","sab","stan","saba","cab","abas","basa","banc","caba","bast","acab","bac","baca","acan"],"rp":["nca","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",64335],"trp":["nr",22775],"tlw":["ben",11408],"trw":["yere",2638],"lp":["be","ben","ren","ten","ber","rb","bey","eb","ry","rn","rey","rry","bet"],"rp":["nr","yer","yet","ner","yr","yere","nere"]},"29":{"input":[1,3,4,5],"tlp":["ran",8536],"trp":["nra",19010],"tlw":["bay",1366],"trw":["nefret",613],"lp":["ran","ray","ayr","bay","ayat","rab","fen","anr","tanr","raya","abe","aber","bar","tay","aran","efen"],"rp":["nra","yar","yat","yara"]},"30":{"input":[2,3,4,5],"tlp":["enc",7430],"trp":["nce",17802],"tlw":["bes",2395],"trw":["yerde",2084],"lp":["enc","rden","bes","cen","ence","ecen","bend","bed","eyec","seb","sebe","cey","bede","denb","renc"],"rp":["nce","yerd","yec","ncer","yece"]},"31":{"input":[1,2,3,4,5],"tlw":["cay",353],"trw":["nefes",591],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3027],"trw":["i",6002],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",37543],"trp":["iz",67417],"tlw":["az",2781],"trw":["iz",185],"lp":["az","zi","za","azi","ai","aza","zz","zza","ziz","aziz","azz","azza","aiz","zizi"],"rp":["iz","izi","ia","iza","izz","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",195648],"trp":["is",144843],"tlw":["sik",1643],"trw":["ki",13823],"lp":["si","sk","sik","ski","sis"],"rp":["is","ki","ik","isi","iki","kis","ks","kisi","kk","kki","ksi","isik","isk","iss","ikk"]},"35":{"input":[1,2,6],"tlp":["ak",120301],"trp":["ka",146870],"tlw":["siz",2295],"trw":["kiz",2838],"lp":["ak","asi","aki","siz","ask","aka","ska","aska","aks","sizi","akk","sak"],"rp":["ka","ika","isa","kiz","ksa","kas","kasi","kka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1119],"trp":["ie",1447],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",32460],"trp":["ize",5154],"lp":["ze","ez","aze","eza","ezi","eze","xi","axi","zize","ezz","zze","ezze"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",240613],"trp":["ke",66794],"tlw":["dedi",14715],"trw":["ise",4856],"lp":["di","ek","edi","esi","dedi","eki","dis","disi","dik","sek","eke","esk","dek","eski"],"rp":["ke","id","ide","ise","kes","idi"]},"39":{"input":[1,2,3,6],"tlp":["adi",32039],"trp":["kad",29760],"tlw":["size",2133],"trw":["kez",2647],"lp":["adi","dak","zd","daki","zde","dasi","disa","size","dai","zdi","diz","aske","azd"],"rp":["kad","kada","kadi","ida","kez","izd","izde"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",111166],"trp":["it",25283],"tlw":["v",314],"trw":["iv",158],"lp":["ti","tti","vi","vv","tit","vit","tv","vitt","vvi","titi"],"rp":["it","itt","itti","iti","iv","ivi"]},"41":{"input":[1,4,6],"tlp":["va",43131],"trp":["if",8297],"tlw":["atti",862],"trw":["itaat",146],"lp":["va","av","ati","fi","ava","afi","faz","atti","zat","avi","fif","afif","tav","ait","zav","zava"],"rp":["if","ita","ifa","ift"]},"42":{"input":[2,4,6],"tlp":["ci",93762],"trp":["ic",75936],"tlw":["cikti",1490],"trw":["ic",1182],"lp":["ci","sti","cik","tik","cti","sit","cikt","tk","tki","cis"],"rp":["ic","ici","kt","ist","isti","kti","ikt","kit","ikti","kc"]},"43":{"input":[1,2,4,6],"tlp":["cak",14208],"trp":["kat",11273],"tlw":["fakat",5422],"trw":["kac",836],"lp":["cak","aci","akt","fak","akti","acak","cika","akat","faka","vas","tak","avas","acik","zc"],"rp":["kat","kta","kac","ica","izc","kita"]},"44":{"input":[3,4,6],"tlp":["ri",163641],"trp":["ir",286103],"tlw":["ve",81408],"trw":["iri",579],"lp":["ri","ve","eri","ev","ver","tir","etti","eti","rti","evi","eve","vet","vr","veri","evet","etir","evr"],"rp":["ir","iri","ire"]},"45":{"input":[1,3,4,6],"tlp":["ari",56898],"trp":["ira",15785],"tlw":["var",7891],"trw":["itiraf",311],"lp":["ari","var","zer","zeri","arti","raz","eva","rafi","zar","tari","avr","zate","zir","zere","air","fir","azir","atir"],"rp":["ira","iraz"]},"46":{"input":[2,3,4,6],"tlp":["rk",38427],"trp":["iste",14557],"tlw":["tek",4748],"trw":["iste",3907],"lp":["rk","rdi","rek","cek","dir","erek","rke","rsi","ekt","tek","erk","sir","erke","erdi","ris"],"rp":["iste","ird","irdi","kte","kir"]},"47":{"input":[1,2,3,4,6],"tlw":["vardi",6467],"trw":["kadar",16753],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",370626],"trw":["in",526],"lp":[],"rp":["in","ni","ini","nin","hi","inin","ih","hin","ihi","nini","nih","hn","ihin","ihn","hni","ihni","hini","hnin","nni","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",50091],"trp":["ha",92564],"tlw":["ah",1397],"trw":["izin",1006],"lp":["ah","ani","aha","anin","zin","ahi","zan"],"rp":["ha","ina","niz","han","izin","iniz","hiz","nz","haz","inan","hani","nina","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",65670],"trp":["isin",17912],"tlw":["sinsi",110],"trw":["isin",932],"lp":["sin","sini","skin","sh"],"rp":["isin","kin","ins","nk","nki","ikin","his","kkin","nis","nsi","hs","nik","hiss","ji","hk","hik"]},"51":{"input":[1,2,5,6],"tlp":["asin",26353],"trp":["insa",12256],"tlw":["sanki",2615],"trw":["insan",3805],"lp":["asin","sina","akin","sah","sani","ank","sahi","anki","sank","ansi","akan"],"rp":["insa","kan","nasi","hak","hakk","has","kah","ikan","nsiz"]},"52":{"input":[3,5,6],"tlp":["eni",37090],"trp":["iy",103444],"tlw":["eh",335],"trw":["iyi",7728],"lp":["eni","eyi","enin","eh","eyin","ehi"],"rp":["iy","yi","he","ine","iye","iyi","yin","yeni","yni","niy","yine","niye","hen","hey"]},"53":{"input":[1,3,5,6],"tlp":["ayi",16661],"trp":["hay",12548],"tlw":["ayni",4770],"trw":["yani",4094],"lp":["ayi","ayni","zen","enz","aniy","ziy","ayin","enze","eniz","eyaz"],"rp":["hay","yani","iya","yaz","haya","hayi","yazi","yah","nze","iyan"]},"54":{"input":[2,3,5,6],"tlp":["endi",29457],"trp":["ind",72325],"tlw":["diye",15017],"trw":["kendi",7334],"lp":["endi","diy","din","sind","diye","esin","dini","siy","seni","sine","ediy"],"rp":["ind","ken","ndi","inde","kend","ydi","ndis","ndin","kiy"]},"55":{"input":[1,2,3,5,6],"tlw":["daha",20490],"trw":["kadin",3728],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",275568],"trp":["ib",28649],"tlw":["bin",1281],"trw":["hint",87],"lp":["bi","tin","bin","vin","th","tini","bit","bii"],"rp":["ib","ibi","ht","iht","hti","ihti","nti","nit","int","hib","hibi","inti"]},"57":{"input":[1,4,5,6],"tlp":["biz",10055],"trp":["hat",6156],"tlw":["biz",2560],"trw":["hatta",2528],"lp":["biz","abi","bizi","baz","fin","afin","bah","atin","tabi","bazi","tani","van","ahat","abah"],"rp":["hat","haf","hav","hava","hatt","hab"]},"58":{"input":[2,4,5,6],"tlp":["cin",41998],"trp":["icin",39248],"tlw":["cin",367],"trw":["icin",25984],"lp":["cin","cbi","bic","ch","bici","cini","vinc"],"rp":["icin","hic","inc","nci","icb","hicb","icbi","inci","kinc","nic","hc","nici","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["baska",6795],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bir",195972],"trp":["her",22311],"tlw":["bir",148963],"trw":["her",15822],"lp":["bir","rin","erin","rini","beni","biri","rine","tiy","riy","evin","rh","rbi","birb"],"rp":["her","irin","yeri","yir","nri","yri","irb"]},"61":{"input":[1,3,4,5,6],"tlw":["biraz",4474],"trw":["hayir",2604],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["birden",2181],"trw":["icinde",7275],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["arasinda",3496],"trw":["yavas",1614],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",542],"trw":["o",25996],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",60],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",67268],"trp":["os",16832],"tlw":["so",92],"lp":["so","sos"],"rp":["os","oso","oss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",188],"trp":["osa",584],"lp":["wo","woo"],"rp":["osa","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1196],"trp":["oe",285],"trw":["-",13834],"lp":["eo","e-"],"rp":["oe","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"trp":["-a",61],"lp":[],"rp":["-a"]},"70":{"input":[2,3,7],"tlp":["do",35030],"trp":["od",5854],"tlw":["do",161],"lp":["do","dos","eso","edo","s-","s-s","s-se","sdo","dosd","deo"],"rp":["od","ose","-s","ode","oses","ood","osed","-se","osd","osdo"]},"71":{"input":[1,2,3,7],"tlp":["ado",548],"trp":["oda",4372],"trw":["odada",430],"lp":["ado","wood","eoda"],"rp":["oda","odas","odad","-w","-we","owe","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["go",43595],"trp":["og",22300],"tlw":["g",946],"trw":["ot",144],"lp":["go","to","got","tto","gog","tog","tg","gg","gt","gto"],"rp":["og","ot","oto","ott","otto","otog","ogg","ogo"]},"73":{"input":[1,4,7],"tlp":["ag",32516],"trp":["of",2290],"tlw":["aga",174],"trw":["of",191],"lp":["ag","ga","aga","fo","tag","atag","ato","fot","foto","taga","fag","tfag","faga","ago","fog","fogg"],"rp":["of","oga","ofo","ota"]},"74":{"input":[2,4,7],"tlp":["co",29333],"trp":["oc",10369],"tlw":["goc",81],"trw":["oc",52],"lp":["co","coc","gos","gost","cog","sog","sto","sg","gs","gogs","tos","cos","gc","sgc","stos"],"rp":["oc","ost","osto","ogs","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",5201],"trp":["oca",3682],"tlw":["sag",869],"lp":["sag","cag","acag","asag","gac","agac","sof","saga","gas","sga","gaca","sofo","gasa","astg","asg"],"rp":["oca","ocas","osta","osca","ocag"]},"76":{"input":[3,4,7],"tlp":["ge",85092],"trp":["or",124494],"tlw":["gore",3389],"trw":["ote",515],"lp":["ge","eg","ger","gor","gr","gere","gore","ege","ro","rg","eger","gre","get","tor"],"rp":["or","ogr","ort","ore","ote","ogre"]},"77":{"input":[1,3,4,7],"tlp":["gar",3353],"trp":["orta",6084],"tlw":["fotograf",161],"trw":["orta",641],"lp":["gar","arg","rag","gra","efo","age","t-f","t-fa","gara","rato","ator","for","rof","graf","agr"],"rp":["orta","ora","-f","-fa","ogra"]},"78":{"input":[2,3,4,7],"tlp":["deg",18415],"trp":["ord",34113],"tlw":["gece",2933],"trw":["otede",232],"lp":["deg","gec","dog","dogr","sor","gece","gerc","gord","sord","ceg","dor","eceg","dort","gect","dost","dege","gd"],"rp":["ord","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["dag",243],"trw":["orada",2520],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",176917],"trw":["onu",9693],"lp":[],"rp":["un","on","nu","onu","unu","nun","onun","unun","no","nunu","ou","non","ono","nou","unn"]},"81":{"input":[1,5,7],"tlp":["ano",845],"trp":["una",8817],"trw":["ona",7053],"lp":["ano","anu","au","qu","anun","anon","aun"],"rp":["una","ona","unan","ua","nuna","uan","nano","onan"]},"82":{"input":[2,5,7],"tlp":["su",56434],"trp":["us",59637],"tlw":["su",6093],"trw":["us",133],"lp":["su","son","sun","sunu","sonu","sus","sons"],"rp":["us","usu","usun","nus","onus","nusu","osu","jo","ons","nsu","onsu","osun","ju"]},"83":{"input":[1,2,5,7],"tlp":["suna",877],"trp":["usa",2657],"tlw":["sona",460],"lp":["suna","sona","asu","anus","susa","ajo","sano","sau","saun","asus","anso"],"rp":["usa","usan","nusa","own","usaa","now","nown","osan","unas"]},"84":{"input":[3,5,7],"tlp":["enu",1411],"trp":["yo",85768],"trw":["onune",1033],"lp":["enu"],"rp":["yo","uy","yu","oy","uyo","uyu","une","one","uny","oyu","yun","nuy","oyun","nuyo","yon","unuy","n-","oyn","yone"]},"85":{"input":[1,3,5,7],"tlp":["anyo",338],"trp":["unya",5800],"trw":["yunan",253],"lp":["anyo","eona","eux","an-","que"],"rp":["unya","uya","uyan","oya","yuna","oyna","ux","nuya","yuya","onay","yoya","-ya","yano","oyan","yona"]},"86":{"input":[2,3,5,7],"tlp":["du",128153],"trp":["und",24604],"tlw":["dondu",1341],"trw":["onunde",1790],"lp":["du","soy","dus","dusu","don","dun","duny","duy","sund"],"rp":["und","unde","ud","ndu","ond","nund","undu","udu","ydu","uyd","uydu"]},"87":{"input":[1,2,3,5,7],"tlw":["sonunda",2463],"trw":["ondan",1762],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",129214],"trp":["ug",30997],"tlw":["bu",59152],"trw":["not",308],"lp":["bu","gu","tu","gun","bun","bo","tun","gunu","bunu","but","butu"],"rp":["ug","ugu","ut","ugun","utu","utun","otu","ng","ogu"]},"89":{"input":[1,4,5,7],"tlp":["bag",4649],"trp":["uf",2044],"tlw":["buna",2248],"lp":["bag","ang","abu","fon","buna","font","anbu","gan","guna","fu","tuta","agan"],"rp":["uf","uta","utf","ufa","utan","uga","uba","nag"]},"90":{"input":[2,4,5,7],"tlp":["cu",29850],"trp":["uc",23984],"tlw":["bos",1277],"trw":["uc",3579],"lp":["cu","stu","cun","cocu","guc","stun","sunc","bos","cug","cogu"],"rp":["uc","ust","ucu","ustu","unc","onc","ocu","ucun","nuc","onuc"]},"91":{"input":[1,2,4,5,7],"tlw":["fonts",354],"trw":["usta",320],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",61296],"trp":["ur",80226],"tlw":["gene",1320],"trw":["uygun",1047],"lp":["ru","tur","boy","buy","buyu","gru","run","gen","bur","goru"],"rp":["ur","yor","oru","onr","uru","uyor","yoru","ogru","orun","ure"]},"93":{"input":[1,3,4,5,7],"tlw":["buraya",1264],"trw":["ortaya",2163],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["dogru",6276],"trw":["once",6114],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["sonra",17553],"trw":["oradan",704],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",153361],"trw":["l",1692],"lp":[],"rp":["li","il","ol","ili","ll","lli","ill","lo","oll","oli","illi","lil","olo","io","ilo","lili","ool","llo"]},"97":{"input":[1,6,7],"tlp":["al",111125],"trp":["la",193014],"tlw":["al",750],"trw":["la",412],"lp":["al","ali","zl","ala","zla","all","zo","alla","azl","zli","azla"],"rp":["la","ola","oz","ila","lla","ozl","izl","izli","izla"]},"98":{"input":[2,6,7],"tlp":["sl",30642],"trp":["ok",45144],"tlw":["sol",615],"trw":["ilk",4866],"lp":["sl","sil","sli","sili"],"rp":["ok","ko","kl","lik","lk","lis","kli","kil","ikl","ls","isl","lki","ols","ilk","kol","likl"]},"99":{"input":[1,2,6,7],"tlp":["asl",17339],"trp":["kal",18830],"tlw":["soz",2999],"trw":["olsa",1993],"lp":["asl","sla","asla","akl","asil","soz","sal","alis","akla","asli","alk","akli"],"rp":["kal","kla","las","lak","kala","lasi","kali","lsa"]},"100":{"input":[3,6,7],"tlp":["el",88486],"trp":["le",161881],"tlw":["el",1633],"trw":["ile",9283],"lp":["el","eli","ele","ell","elli","elle","elel","elil"],"rp":["le","ile","lle","ille","ole","lel","leo","-i","lee","leli","lele","i-"]},"101":{"input":[1,3,6,7],"tlp":["zle",10682],"trp":["ozle",8085],"tlw":["aile",576],"trw":["ozel",1294],"lp":["zle","zel","ale","ela","zell","aile","alle","zeli","elal","ael","elia","eal","ezil","ezel","azel","aale"],"rp":["ozle","oze","ozel","izle"]},"102":{"input":[2,3,6,7],"tlp":["dil",10774],"trp":["ld",66610],"tlw":["sekilde",2905],"trw":["kisisel",342],"lp":["dil","ekl","eld","sle","sel","eldi","dol","dile","esl","ekli"],"rp":["ld","old","ldi","ild","ildi","kle","lde","led","ledi","ikle"]},"103":{"input":[1,2,3,6,7],"tlw":["aldi",1426],"trw":["kaldi",1084],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",137313],"trp":["ig",40159],"tlw":["gitti",1369],"trw":["ilgili",1508],"lp":["gi","gil","tl","gl","tig","tigi","git","gili","tli","vl"],"rp":["ig","igi","lt","lg","lti","ilg","lgi","ilgi","lig","ligi"]},"105":{"input":[1,4,6,7],"tlp":["agi",15275],"trp":["lat",3470],"tlw":["fazla",3194],"trw":["laf",255],"lp":["agi","goz","alt","alti","gozl","agl","atl","fazl","tal","gla","tla","zg","agla","giz","val","atli","agli","gal","gz"],"rp":["lat"]},"106":{"input":[2,4,6,7],"tlp":["cok",19740],"trp":["okt",7640],"tlw":["cok",17627],"trw":["isigi",416],"lp":["cok","cl","cil","gis","sig","gisi","cli","sigi"],"rp":["okt","likt","kot","koc","lc","ktig","lic","olc","list","isig","kto","okto"]},"107":{"input":[1,2,4,6,7],"tlw":["asagi",1220],"trw":["olacak",1662],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",31288],"trp":["ler",57971],"tlw":["geri",3197],"trw":["ileri",1117],"lp":["rl","egi","gel","egil","rli","gir","rle","erl","geli","rler","erle","gele","eler"],"rp":["ler","leri","lir","iler","irl","ilir","irli"]},"109":{"input":[1,3,4,6,7],"tlw":["agir",1726],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["degil",8435],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["farkli",1113],"trw":["olarak",9384],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["nl",58209],"trw":["unlu",539],"lp":[],"rp":["nl","lu","ul","olu","lin","ulu","unl","nli","onl","lun","inl","hu","ln","lni","uh","ulun","ho","olun","lini","ilin"]},"113":{"input":[1,5,6,7],"tlp":["anl",26128],"trp":["uz",53334],"tlw":["allah",1522],"trw":["olan",10895],"lp":["anl","zu","anla","zun","anli","aln","alni"],"rp":["uz","nla","lan","hal","uzu","olan","uzun","onla","unla","ula","lniz","ozu","uza"]},"114":{"input":[2,5,6,7],"tlp":["sul",3102],"trp":["ku",42732],"tlw":["soluk",557],"trw":["olsun",2457],"lp":["sul"],"rp":["ku","uk","kon","konu","oku","unk","kul","nku","unku","ukl","luk","nlik","kus","kun","uks","lsu","olsu","lsun","lus"]},"115":{"input":[1,2,5,6,7],"tlw":["sozunu",629],"trw":["nasil",6031],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eyl",6217],"trp":["yl",48761],"tlw":["elini",1491],"trw":["oyle",5326],"lp":["eyl","elin","eyle","elen"],"rp":["yl","iyo","yle","oyl","oyle","liy","liyo","yil","len","yol","iyl","nle","ley","luy","iliy","luyo"]},"117":{"input":[1,3,5,6,7],"trw":["yalniz",2707],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["soyle",2267],"trw":["yok",5734],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aslinda",1786],"trw":["halde",2581],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",29017],"trp":["igin",12379],"tlw":["gibi",22656],"trw":["oglu",704],"lp":["bil","gib","gibi","gin","bul","bili","gini","bunl","bulu","gul","vu","bol","glu"],"rp":["igin","ngi","uv","ltin","lb","utl","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["bulunan",1116],"trw":["hangi",1195],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cunku",5282],"trw":["kucuk",4807],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sultan",928],"trw":["kabul",2501],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bile",8084],"trw":["olur",3157],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["guzel",3729],"trw":["uzerine",3191],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["buyuk",8285],"trw":["oldugunu",7814],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["basladi",3009],"trw":["uzerinde",2861],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trw":["p",380],"lp":[],"rp":[]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",33487],"trp":["pa",24487],"trw":["papa",112],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",921],"trp":["ps",3704],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",796],"trp":["pas",1542],"trw":["pasa",973],"lp":["sap","spa","aps","asp","sapa","aspa","saps","apsa"],"rp":["pas","pasa","pasp","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9410],"trp":["pe",13191],"trw":["'",2126],"lp":["ep","e'","epe"],"rp":["pe","'e","''","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",2478],"trp":["'a",813],"lp":["a'","epa","ape","x'","ax'","a'e"],"rp":["'a","pa'"]},"134":{"input":[2,3,8],"tlp":["eps",2946],"trp":["'d",2842],"trw":["'de",625],"lp":["eps","s'","e'd","e'de","epes","d'","esp","eped","spe","s'e","es'","spee"],"rp":["'d","'de","pes","ped","pede","pse","pd","pds"]},"135":{"input":[1,2,3,8],"tlp":["sa'",753],"trp":["'da",1650],"trw":["'da",254],"lp":["sa'","a'd","a'da","asa'","esap","apad","sa'd","da'","aspe","apse","apd","apds","d'a"],"rp":["'da","pad","pa'd"]},"136":{"input":[4,8],"tlp":["tp",76],"trp":["pt",7654],"trw":["pt",1404],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",5195],"trp":["pta",1168],"trw":["pat",52],"lp":["apt","tap","apta","apat","tapt"],"rp":["pta","pat","patt","pata"]},"138":{"input":[2,4,8],"trp":["pc",141],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["apac",1249],"trp":["pac",1249],"lp":["apac","apc","apca","spat","cap"],"rp":["pac","paca","pca"]},"140":{"input":[3,4,8],"tlp":["rp",1331],"trp":["pr",3486],"tlw":["tepe",103],"trw":["'te",217],"lp":["rp","tep","tepe","r'","re'","ere'","er'","rpt","ept","epte","rpe","rper"],"rp":["pr","per","'t","pre","pet","'te","petr","pte"]},"141":{"input":[1,3,4,8],"tlp":["apar",1698],"trp":["par",11587],"tlw":["arap",301],"trw":["para",1673],"lp":["apar","rap","arp","arap","ra'","tepa","f'","rpa","arpa","ara'","arpt","apr","apra"],"rp":["par","para","pra","part","patr","'ta","pera"]},"142":{"input":[2,3,4,8],"tlp":["cep",294],"trp":["perd",423],"tlw":["cep",124],"trw":["perde",178],"lp":["cep","step","s't","s'te","tesp","r'd","er'd","sper","re'd","ecep","ste'"],"rp":["perd","perc","pers"]},"143":{"input":[1,2,3,4,8],"tlw":["sarap",440],"trw":["parca",649],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["nm",9106],"trw":["m",1569],"lp":[],"rp":["nm","pm","mm","mp","mn"]},"145":{"input":[1,5,8],"tlp":["am",92732],"trp":["ma",129330],"tlw":["ama",21666],"trw":["mana",161],"lp":["am","ama","aman","apm","apma","anm","amam","anma","apan","amm"],"rp":["ma","man","mam","pma","nma","pan","mana","mpa","nam","mama"]},"146":{"input":[2,5,8],"tlp":["sm",13256],"trp":["ms",8305],"lp":["sm"],"rp":["ms","mps"]},"147":{"input":[1,2,5,8],"tlp":["sma",8191],"trp":["mas",9911],"tlw":["sam",348],"trw":["masa",380],"lp":["sma","sam","sman","asam","sama","asm","asma","amas","ams","smas","sanm","span","ssam"],"rp":["mas","masa","msa","pmas","nmas","maj","mans"]},"148":{"input":[3,5,8],"tlp":["em",49576],"trp":["me",74751],"tlw":["epey",418],"trw":["yemeye",95],"lp":["em","eme","emen","enm","emey"],"rp":["me","men","mey","meye","nem","'n","mem","nme","yem","ym","yeme","'y","pen","pey","y'"]},"149":{"input":[1,3,5,8],"tlp":["ame",2729],"trp":["yap",17207],"tlw":["annem",417],"trw":["yapan",657],"lp":["ame","amay","ema","a'n","amen","an'","a'y","eyma","a'ya"],"rp":["yap","may","maya","yapa","yapm","yma","'ya","mame","pmay","yman","pay"]},"150":{"input":[2,3,5,8],"tlp":["dem",6920],"trp":["md",15044],"tlw":["demeye",98],"trw":["'den",147],"lp":["dem","deme","sme","esm","emed","sem","ems","edem"],"rp":["md","mse","mes","med","mde","mede","mese","msey","meyd","mden","msen","msed"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",4638],"trw":["meydana",782],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",17169],"trp":["mb",2359],"lp":["tm"],"rp":["mb","mt"]},"153":{"input":[1,4,5,8],"tlp":["tam",6202],"trp":["mat",647],"tlw":["tam",3821],"lp":["tam","tma","atm","tama","atma","bam","abam","amb","fam","amba","afam","apab","tatm","tman"],"rp":["mat","mba","mant","pab","ptan","pant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3662],"trp":["mc",1577],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",364],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",25050],"trp":["mer",5044],"tlw":["etmeye",820],"trw":["mr",413],"lp":["rm","etm","tme","rme","etme","tem","erm","erme","teme","tmey","rmey","rem","renm","term","ry'","rry'"],"rp":["mer","met","mr","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["tamamen",907],"trw":["yapar",447],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sebep",489],"trw":["pencereden",421],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["stepan",214],"trw":["jandarma",125],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["ip",23109],"trw":["ip",98],"lp":[],"rp":["ip","pi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10616],"trp":["paz",682],"trw":["papaz",183],"lp":["api","apip","apaz","zip","azip","zap","azap"],"rp":["paz","paza"]},"162":{"input":[2,6,8],"tlp":["sip",883],"trp":["kip",3619],"tlw":["sikisip",77],"trw":["pis",531],"lp":["sip","spi"],"rp":["kip","psi","pis","pk","pisi","pki","ipk","ipki","ikip","psik","isip","pik","pkk","kipk","isp","pisk","ipik","kipi"]},"163":{"input":[1,2,6,8],"tlp":["apis",1831],"trp":["kap",8447],"tlw":["sapka",135],"trw":["kapi",974],"lp":["apis","akip","asip","apk","apka","sapk","apsi"],"rp":["kap","kapi","kapa","pka","ispa","pkas","pak","kapk","paki"]},"164":{"input":[3,6,8],"tlp":["epi",576],"trp":["'i",3340],"trw":["'i",87],"lp":["epi","e'i"],"rp":["'i","i'","ipe","ie'","pie"]},"165":{"input":[1,3,6,8],"tlp":["x'i",65],"trp":["pez",51],"lp":["x'i","ax'i"],"rp":["pez","peze"]},"166":{"input":[2,3,6,8],"tlp":["epsi",2946],"trp":["pek",6932],"tlw":["edip",667],"trw":["pek",4304],"lp":["epsi","dip","edip","ekip","ski'","epk","epki","espi","esip","s'i"],"rp":["pek","peki","idip","pesi","pid","k'","is'","ipek","ki'","k'i"]},"167":{"input":[1,2,3,6,8],"trw":["kapida",236],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2155],"trp":["pti",4694],"tlw":["tip",299],"trw":["itip",81],"lp":["tip","tipi"],"rp":["pti","ipt","ipti","pit","itip"]},"169":{"input":[1,4,6,8],"tlp":["apti",4186],"trp":["itap",1997],"tlw":["atip",257],"lp":["apti","vap","atip","apit"],"rp":["itap","pav","pati","ipta","pita"]},"170":{"input":[2,4,6,8],"tlp":["cip",1668],"trp":["ptik",601],"tlw":["tipki",865],"trw":["icip",79],"lp":["cip","tipk","spit"],"rp":["ptik","pic","pici","icip","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["takip",521],"trw":["kitap",795],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3191],"trp":["irip",1440],"tlw":["verip",240],"trw":["pir",218],"lp":["rip","ri'","rpi","erip","ti'","rpti","r'i","re'i","ver'","er'i","rpip","rpri"],"rp":["irip","pir","piri","ptir","iti'","peri","irp","pri"]},"173":{"input":[1,3,4,6,8],"trw":["parti",379],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["cekip",471],"trw":["kirip",55],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["cevap",1689],"trw":["parcasi",437],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",97151],"trw":["mi",12284],"lp":[],"rp":["im","mi","min","nim","imi","nmi","mini","hip","hm","imin","inm","ph","pin","nip","pini","pmi","inmi","him","imp","nimi"]},"177":{"input":[1,5,6,8],"tlp":["zam",15802],"trp":["miz",5126],"tlw":["zaman",9588],"trw":["hanim",555],"lp":["zam","zama","ami","zim","amin","anim","ahip","zm","ahm","anmi"],"rp":["miz","maz","ima","izim","imiz","mani","mizi","mah","ham","mami"]},"178":{"input":[2,5,6,8],"tlp":["sim",12135],"trp":["mis",35215],"tlw":["simsiki",221],"trw":["kim",1847],"lp":["sim","smi"],"rp":["mis","kim","km","ism","ims","kims","ikm","misi","mk","kmi","nmis","kmis","kimi","ismi","isim","msi","ikmi","psin"]},"179":{"input":[1,2,5,6,8],"tlw":["aksam",1411],"trw":["misiniz",745],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",12554],"trp":["hem",8923],"tlw":["emin",834],"trw":["hemen",4788],"lp":["emi","enim","emin","emiy"],"rp":["hem","miy","hep","heme","'ni","'nin","piy","'in","ime","yim","yip","i'n","i'ni","hme","nemi","piyi"]},"181":{"input":[1,3,5,6,8],"tlw":["annemin",178],"trw":["hepimiz",316],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["simdi",5781],"trw":["kimse",1852],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["adamin",1501],"trw":["kapiyi",1057],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",7187],"trp":["itm",2987],"tlw":["tim",161],"trw":["mit",80],"lp":["tim","tmi","ttim","vim","timi","bitm","tmin","thm"],"rp":["itm","itmi","itim","ptim","mit","hipt","mbi","htim","ptin","imb","imbi","ntim"]},"185":{"input":[1,4,5,6,8],"tlw":["bizim",2636],"trw":["mavi",631],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cikmis",550],"trw":["mistik",111],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["canim",596],"trw":["kaptan",268],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["benim",6122],"trw":["yirmi",1140],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tanrim",479],"trw":["yapti",759],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["etmek",2074],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["devam",2432],"trw":["yardim",1282],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",8798],"lp":[],"rp":["op","po","opo","pop","popo","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",362],"trp":["opa",623],"tlw":["apo",61],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["sop",218],"trp":["pos",264],"lp":["sop","spo"],"rp":["pos","opos","osp","pso"]},"195":{"input":[1,2,7,8],"tlp":["sopa",88],"trp":["pow",86],"tlw":["sopa",88],"lp":["sopa"],"rp":["pow"]},"196":{"input":[3,7,8],"tlp":["eop",251],"trp":["ope",871],"lp":["eop"],"rp":["ope","o'"]},"197":{"input":[1,3,7,8],"tlp":["eopa",251],"lp":["eopa"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["do'",50],"trp":["od'",59],"lp":["do'"],"rp":["od'","ood'"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",5867],"trp":["opt",260],"tlw":["top",230],"lp":["top"],"rp":["opt","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apag",165],"trp":["pag",1236],"lp":["apag"],"rp":["pag","opat","opag","paga","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",181],"trp":["post",126],"tlw":["cop",181],"trw":["otostop",67],"lp":["cop","stop"],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["posta",126],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["topr",1446],"trp":["opr",1640],"trw":["potter",167],"lp":["topr","rop"],"rp":["opr","pro","-top","por","prog","peg","opeg","prop","oper","port","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["topraga",181],"trw":["page",832],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",119],"trw":["protesto",51],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["profesor",263],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",48695],"trw":["mu",2378],"lp":[],"rp":["um","mu","up","umu","om","mo","unm","mun","omu","umun","mum","nmu","onm","nup","num","onup","unmu","pu","onmu","mnu"]},"209":{"input":[1,5,7,8],"tlp":["amu",724],"trp":["uma",3601],"lp":["amu","ammu","amo","apon"],"rp":["uma","oma","upa","unma","uman","oman","mua","numa","pau","pamu","muna","namu","uam","muam"]},"210":{"input":[2,5,7,8],"tlp":["sunm",1248],"trp":["mus",15207],"trw":["musun",1010],"lp":["sunm","sup","smu","smus","sum","som"],"rp":["mus","usm","nusm","ums","osm","musu","umus","nmus","msu","usmu","umsu","usup","mos","osum"]},"211":{"input":[1,2,5,7,8],"trw":["osman",247],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emnu",603],"trp":["onem",4198],"trw":["memnun",488],"lp":["emnu","emu"],"rp":["onem","ume","yum","muy","unme","yumu","ome","uym","ymu","muyo","'u","memu","uyum","oym","onme","o'n","umuy","'un"]},"213":{"input":[1,3,5,7,8],"trw":["maymun",120],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["donup",819],"trw":["muydu",265],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dusman",463],"trw":["musaade",167],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",4398],"trp":["mut",4536],"tlw":["tum",2174],"trw":["umut",237],"lp":["tum","gum","gm","gumu","tom","tup","gmu","ttom","tutm","tumu","tmu","gom"],"rp":["mut","ugum","utm","omut","nutm","umut","utmu","utup"]},"217":{"input":[1,4,5,7,8],"tlw":["bomba",100],"trw":["mutfaga",167],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["gumus",409],"trw":["unutmus",110],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["cuma",169],"trw":["mustafa",624],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",385],"trw":["oturup",540],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["ragmen",1330],"trw":["yagmur",493],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["durum",881],"trw":["oturmus",358],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["durumda",912],"trw":["propaganda",168],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",6579],"trw":["pol",144],"lp":[],"rp":["pl","lip","opl","pil","pol","poli","ilip","ipl","lp","pli","pili","ilp","pilo","ipli","pool"]},"225":{"input":[1,6,7,8],"tlp":["apil",2908],"trp":["pla",4024],"tlw":["alip",1109],"lp":["apil","alip","apl","apla","apal","alp","apli"],"rp":["pla","opla","pila","pal","pali","ipla","lap","olap"]},"226":{"input":[2,6,7,8],"tlp":["skop",138],"trp":["kop",1470],"tlw":["silip",98],"trw":["polis",725],"lp":["skop","sipl"],"rp":["kop","lkip","kopo","pisl"]},"227":{"input":[1,2,6,7,8],"trw":["kapali",519],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elip",1112],"trp":["l'",1267],"trw":["poole",60],"lp":["elip","el'","el'i","epl","eple"],"rp":["l'","'l","ple","l'i","leop","li'","lep","'le","le'","lle'","le'i","iple","'li","ll'","ll'i"]},"229":{"input":[1,3,6,7,8],"trw":["la'e",56],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"trw":["kopek",433],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["dolasip",126],"trw":["pekala",402],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topl",3261],"trp":["ptig",2000],"trw":["popov",105],"lp":["topl","gip"],"rp":["ptig","ptil","pov","opov"]},"233":{"input":[1,4,6,7,8],"tlw":["aptal",428],"trw":["iptal",64],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",151],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["ciplak",453],"trw":["politika",153],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["gelip",1112],"trw":["piril",272],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["garip",992],"trw":["pavel",210],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gidip",1162],"trw":["polisler",126],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["toprak",602],"trw":["parlak",776],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",46943],"trw":["olup",1530],"lp":[],"rp":["lm","olm","lmi","ilm","ml","lim","lum","ilmi","lmu","mli","olmu","olum","mil","iml","ulm","ilim","lup","plu","oplu","olup"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anlamina",563],"trw":["olmaz",1004],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["sokup",136],"trw":["olmus",1359],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almak",825],"trw":["olmak",1877],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elimi",221],"trw":["onemli",2111],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almaya",456],"trw":["olmayan",1555],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["soylemek",674],"trw":["oldum",429],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["aldim",504],"trw":["olmadi",572],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bolum",547],"trw":["mutlu",849],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",181],"trw":["hamilton",186],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["gitmis",374],"trw":["olmustu",1519],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["baslamisti",1046],"trw":["kocaman",640],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["biliyorum",953],"trw":["muhtemelen",286],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zamanlar",874],"trw":["yaptigi",1060],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gormek",1084],"trw":["istiyorum",996],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["basladim",495],"trw":["olmadigini",1197],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",4698],"tlw":["a",3554],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",4821],"tlw":["s",2414],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",119382],"tlw":["www",328],"lp":["as","sa","asa","saa","sas","asas","ww","ssa","ass","www","assa","aw","ssas","wa","was","aas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",787],"tlw":["e",2415],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",1611],"tlw":["x",136],"lp":["ea","ax","ex","ae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",225606],"tlw":["de",36223],"lp":["de","se","ed","es","ede","ded","ses","ese","dd","des","ess","dde","sed","sse","sess","ds","ssed","sede","dede","ddes"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",206254],"tlw":["da",34321],"lp":["da","ad","ada","ade","sad","das","sade","adas","esa","dad","add","we","asad","adde","dea","dada","eda","ew","esas","ades"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",24695],"tlw":["t",1015],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",77585],"tlw":["ta",701],"lp":["ta","at","fa","af","att","ata","aat","afa","tta","atta","ft","tat","fta","aft","afta","tf","taf","tafa","fat","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",68030],"tlw":["c",1161],"lp":["st","ct","ts","tc","sc","cs","cc","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",58921],"tlw":["saat",1953],"lp":["ca","ac","aca","sta","ast","tas","saat","asta","sac","cas","sat","fas","afas","act","ats","saf","tsa","fac","cat","staf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",226224],"tlw":["r",1919],"lp":["er","re","te","et","ere","rt","ter","ett","ret","tr","rr","ete","rer","ert","etr","tte","eter","tre","tere","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265101],"tlw":["ara",805],"lp":["ar","ra","ara","tar","ef","fe","art","rar","are","rta","raf","tara","efe","ate","far","araf","arar","era","aret","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",94145],"tlw":["eder",1592],"lp":["rd","ce","ec","rs","ece","ste","der","erd","rc","rde","erc","rce","erce","tes","ster","erde","eder","cer","dec","dece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",24858],"tlw":["sadece",3474],"lp":["ard","dar","adar","rad","rada","sar","ars","ras","aras","rda","arda","rsa","adec","car","arc","rca","arca","sara","arad","ates"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",4449],"trw":["n",2786],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",238539],"trp":["na",72648],"tlw":["an",2138],"trw":["na",265],"lp":["an","ana","ann","anan","anna","anaa"],"rp":["na","nan","nana","nna","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",731],"trp":["ns",19851],"trw":["j",258],"lp":["sn","sj"],"rp":["ns"]},"19":{"input":[1,2,5],"tlp":["san",27441],"trp":["nsa",12550],"tlw":["sana",3065],"trw":["jan",70],"lp":["san","sana","ans","asan","aj","sans","anas","sna","ansa","saj","wn","snas","aja","ajan"],"rp":["nsa","nsan","nas","ja","jan","jas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",210551],"trp":["ne",100917],"tlw":["en",11061],"trw":["ne",21701],"lp":["en","ey","eye","ene","eyen","enn","enen","enne","eyn","eney"],"rp":["ne","ye","yen","yn","ny","nne","ney","nen","neye","yey"]},"21":{"input":[1,3,5],"tlp":["ay",82752],"trp":["ya",146697],"tlw":["ay",1315],"trw":["ya",9294],"lp":["ay","aya","ayn","ayan","eya","aye","anne","ane","ena","ean","ayna"],"rp":["ya","yan","nya","yana","yay","yna","nyan","nyay","nay"]},"22":{"input":[2,3,5],"tlp":["den",42341],"trp":["nd",145890],"tlw":["sey",11559],"trw":["neden",3186],"lp":["den","end","sey","sen","eden","eyd","sy","ende","eys","eyse","dey"],"rp":["nd","nde","yd","nden","ned","nede","nes","ys","yse"]},"23":{"input":[1,2,3,5],"tlp":["dan",31876],"trp":["nda",59116],"tlw":["anda",2147],"trw":["yandan",1000],"lp":["dan","and","anda","adan","say","ayd","day","sya","daya","saya"],"rp":["nda","ndan","yas","yasa","yda","yad","yand","yada","ydan","nyad"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",403],"trp":["nt",8039],"tlw":["b",1063],"lp":["bb","bn","tn"],"rp":["nt","nb","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",93513],"trp":["nat",1344],"tlw":["bana",7207],"lp":["ba","ab","tan","aba","ban","bana","bab","baba","tab","aban","ant","bat","anb","tanb","atan","anat","anta","taba"],"rp":["nat","nta"]},"26":{"input":[2,4,5],"tlp":["cb",5912],"trp":["nc",43318],"lp":["cb","sb","bs"],"rp":["nc","nst","nts","nct","ncs"]},"27":{"input":[1,2,4,5],"tlp":["bas",33680],"trp":["nca",9555],"tlw":["bas",1003],"lp":["bas","anc","anca","can","sab","stan","saba","cab","abas","basa","banc","caba","bast","acab","bac","baca","acan"],"rp":["nca","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",64335],"trp":["nr",22775],"tlw":["ben",11408],"trw":["yere",2638],"lp":["be","ben","ren","ten","ber","rb","bey","eb","ry","rn","rey","rry","bet"],"rp":["nr","yer","yet","ner","yr","yere","nere"]},"29":{"input":[1,3,4,5],"tlp":["ran",8536],"trp":["nra",19010],"tlw":["bay",1366],"trw":["nefret",613],"lp":["ran","ray","ayr","bay","ayat","rab","fen","anr","tanr","raya","abe","aber","bar","tay","aran","efen"],"rp":["nra","yar","yat","yara"]},"30":{"input":[2,3,4,5],"tlp":["enc",7430],"trp":["nce",17802],"tlw":["bes",2395],"trw":["yerde",2084],"lp":["enc","rden","bes","cen","ence","ecen","bend","bed","eyec","seb","sebe","cey","bede","denb","renc"],"rp":["nce","yerd","yec","ncer","yece"]},"31":{"input":[1,2,3,4,5],"tlw":["cay",353],"trw":["nefes",591],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3027],"trw":["i",6002],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",37543],"trp":["iz",67417],"tlw":["az",2781],"trw":["iz",185],"lp":["az","zi","za","azi","ai","aza","zz","zza","ziz","aziz","azz","azza","aiz","zizi"],"rp":["iz","izi","ia","iza","izz","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",195648],"trp":["is",144843],"tlw":["sik",1643],"trw":["ki",13823],"lp":["si","sk","sik","ski","sis"],"rp":["is","ki","ik","isi","iki","kis","ks","kisi","kk","kki","ksi","isik","isk","iss","ikk"]},"35":{"input":[1,2,6],"tlp":["ak",120301],"trp":["ka",146870],"tlw":["siz",2295],"trw":["kiz",2838],"lp":["ak","asi","aki","siz","ask","aka","ska","aska","aks","sizi","akk","sak"],"rp":["ka","ika","isa","kiz","ksa","kas","kasi","kka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1119],"trp":["ie",1447],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",32460],"trp":["ize",5154],"lp":["ze","ez","aze","eza","ezi","eze","xi","axi","zize","ezz","zze","ezze"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",240613],"trp":["ke",66794],"tlw":["dedi",14715],"trw":["ise",4856],"lp":["di","ek","edi","esi","dedi","eki","dis","disi","dik","sek","eke","esk","dek","eski"],"rp":["ke","id","ide","ise","kes","idi"]},"39":{"input":[1,2,3,6],"tlp":["adi",32039],"trp":["kad",29760],"tlw":["size",2133],"trw":["kez",2647],"lp":["adi","dak","zd","daki","zde","dasi","disa","size","dai","zdi","diz","aske","azd"],"rp":["kad","kada","kadi","ida","kez","izd","izde"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",111166],"trp":["it",25283],"tlw":["v",314],"trw":["iv",158],"lp":["ti","tti","vi","vv","tit","vit","tv","vitt","vvi","titi"],"rp":["it","itt","itti","iti","iv","ivi"]},"41":{"input":[1,4,6],"tlp":["va",43131],"trp":["if",8297],"tlw":["atti",862],"trw":["itaat",146],"lp":["va","av","ati","fi","ava","afi","faz","atti","zat","avi","fif","afif","tav","ait","zav","zava"],"rp":["if","ita","ifa","ift"]},"42":{"input":[2,4,6],"tlp":["ci",93762],"trp":["ic",75936],"tlw":["cikti",1490],"trw":["ic",1182],"lp":["ci","sti","cik","tik","cti","sit","cikt","tk","tki","cis"],"rp":["ic","ici","kt","ist","isti","kti","ikt","kit","ikti","kc"]},"43":{"input":[1,2,4,6],"tlp":["cak",14208],"trp":["kat",11273],"tlw":["fakat",5422],"trw":["kac",836],"lp":["cak","aci","akt","fak","akti","acak","cika","akat","faka","vas","tak","avas","acik","zc"],"rp":["kat","kta","kac","ica","izc","kita"]},"44":{"input":[3,4,6],"tlp":["ri",163641],"trp":["ir",286103],"tlw":["ve",81408],"trw":["iri",579],"lp":["ri","ve","eri","ev","ver","tir","etti","eti","rti","evi","eve","vet","vr","veri","evet","etir","evr"],"rp":["ir","iri","ire"]},"45":{"input":[1,3,4,6],"tlp":["ari",56898],"trp":["ira",15785],"tlw":["var",7891],"trw":["itiraf",311],"lp":["ari","var","zer","zeri","arti","raz","eva","rafi","zar","tari","avr","zate","zir","zere","air","fir","azir","atir"],"rp":["ira","iraz"]},"46":{"input":[2,3,4,6],"tlp":["rk",38427],"trp":["iste",14557],"tlw":["tek",4748],"trw":["iste",3907],"lp":["rk","rdi","rek","cek","dir","erek","rke","rsi","ekt","tek","erk","sir","erke","erdi","ris"],"rp":["iste","ird","irdi","kte","kir"]},"47":{"input":[1,2,3,4,6],"tlw":["vardi",6467],"trw":["kadar",16753],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",370626],"trw":["in",526],"lp":[],"rp":["in","ni","ini","nin","hi","inin","ih","hin","ihi","nini","nih","hn","ihin","ihn","hni","ihni","hini","hnin","nni","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",50091],"trp":["ha",92564],"tlw":["ah",1397],"trw":["izin",1006],"lp":["ah","ani","aha","anin","zin","ahi","zan"],"rp":["ha","ina","niz","han","izin","iniz","hiz","nz","haz","inan","hani","nina","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",65670],"trp":["isin",17912],"tlw":["sinsi",110],"trw":["isin",932],"lp":["sin","sini","skin","sh"],"rp":["isin","kin","ins","nk","nki","ikin","his","kkin","nis","nsi","hs","nik","hiss","ji","hk","hik"]},"51":{"input":[1,2,5,6],"tlp":["asin",26353],"trp":["insa",12256],"tlw":["sanki",2615],"trw":["insan",3805],"lp":["asin","sina","akin","sah","sani","ank","sahi","anki","sank","ansi","akan"],"rp":["insa","kan","nasi","hak","hakk","has","kah","ikan","nsiz"]},"52":{"input":[3,5,6],"tlp":["eni",37090],"trp":["iy",103444],"tlw":["eh",335],"trw":["iyi",7728],"lp":["eni","eyi","enin","eh","eyin","ehi"],"rp":["iy","yi","he","ine","iye","iyi","yin","yeni","yni","niy","yine","niye","hen","hey"]},"53":{"input":[1,3,5,6],"tlp":["ayi",16661],"trp":["hay",12548],"tlw":["ayni",4770],"trw":["yani",4094],"lp":["ayi","ayni","zen","enz","aniy","ziy","ayin","enze","eniz","eyaz"],"rp":["hay","yani","iya","yaz","haya","hayi","yazi","yah","nze","iyan"]},"54":{"input":[2,3,5,6],"tlp":["endi",29457],"trp":["ind",72325],"tlw":["diye",15017],"trw":["kendi",7334],"lp":["endi","diy","din","sind","diye","esin","dini","siy","seni","sine","ediy"],"rp":["ind","ken","ndi","inde","kend","ydi","ndis","ndin","kiy"]},"55":{"input":[1,2,3,5,6],"tlw":["daha",20490],"trw":["kadin",3728],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",275568],"trp":["ib",28649],"tlw":["bin",1281],"trw":["hint",87],"lp":["bi","tin","bin","vin","th","tini","bit","bii"],"rp":["ib","ibi","ht","iht","hti","ihti","nti","nit","int","hib","hibi","inti"]},"57":{"input":[1,4,5,6],"tlp":["biz",10055],"trp":["hat",6156],"tlw":["biz",2560],"trw":["hatta",2528],"lp":["biz","abi","bizi","baz","fin","afin","bah","atin","tabi","bazi","tani","van","ahat","abah"],"rp":["hat","haf","hav","hava","hatt","hab"]},"58":{"input":[2,4,5,6],"tlp":["cin",41998],"trp":["icin",39248],"tlw":["cin",367],"trw":["icin",25984],"lp":["cin","cbi","bic","ch","bici","cini","vinc"],"rp":["icin","hic","inc","nci","icb","hicb","icbi","inci","kinc","nic","hc","nici","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["baska",6795],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bir",195972],"trp":["her",22311],"tlw":["bir",148963],"trw":["her",15822],"lp":["bir","rin","erin","rini","beni","biri","rine","tiy","riy","evin","rh","rbi","birb"],"rp":["her","irin","yeri","yir","nri","yri","irb"]},"61":{"input":[1,3,4,5,6],"tlw":["biraz",4474],"trw":["hayir",2604],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["birden",2181],"trw":["icinde",7275],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["arasinda",3496],"trw":["yavas",1614],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",542],"trw":["o",25996],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",60],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",67268],"trp":["os",16832],"tlw":["so",92],"lp":["so","sos"],"rp":["os","oso","oss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",188],"trp":["osa",584],"lp":["wo","woo"],"rp":["osa","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1196],"trp":["oe",285],"trw":["-",13834],"lp":["eo","e-"],"rp":["oe","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"trp":["-a",61],"lp":[],"rp":["-a"]},"70":{"input":[2,3,7],"tlp":["do",35030],"trp":["od",5854],"tlw":["do",161],"lp":["do","dos","eso","edo","s-","s-s","s-se","sdo","dosd","deo"],"rp":["od","ose","-s","ode","oses","ood","osed","-se","osd","osdo"]},"71":{"input":[1,2,3,7],"tlp":["ado",548],"trp":["oda",4372],"trw":["odada",430],"lp":["ado","wood","eoda"],"rp":["oda","odas","odad","-w","-we","owe","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["go",43595],"trp":["og",22300],"tlw":["g",946],"trw":["ot",144],"lp":["go","to","got","tto","gog","tog","tg","gg","gt","gto"],"rp":["og","ot","oto","ott","otto","otog","ogg","ogo"]},"73":{"input":[1,4,7],"tlp":["ag",32516],"trp":["of",2290],"tlw":["aga",174],"trw":["of",191],"lp":["ag","ga","aga","fo","tag","atag","ato","fot","foto","taga","fag","tfag","faga","ago","fog","fogg"],"rp":["of","oga","ofo","ota"]},"74":{"input":[2,4,7],"tlp":["co",29333],"trp":["oc",10369],"tlw":["goc",81],"trw":["oc",52],"lp":["co","coc","gos","gost","cog","sog","sto","sg","gs","gogs","tos","cos","gc","sgc","stos"],"rp":["oc","ost","osto","ogs","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",5201],"trp":["oca",3682],"tlw":["sag",869],"lp":["sag","cag","acag","asag","gac","agac","sof","saga","gas","sga","gaca","sofo","gasa","astg","asg"],"rp":["oca","ocas","osta","osca","ocag"]},"76":{"input":[3,4,7],"tlp":["ge",85092],"trp":["or",124494],"tlw":["gore",3389],"trw":["ote",515],"lp":["ge","eg","ger","gor","gr","gere","gore","ege","ro","rg","eger","gre","get","tor"],"rp":["or","ogr","ort","ore","ote","ogre"]},"77":{"input":[1,3,4,7],"tlp":["gar",3353],"trp":["orta",6084],"tlw":["fotograf",161],"trw":["orta",641],"lp":["gar","arg","rag","gra","efo","age","t-f","t-fa","gara","rato","ator","for","rof","graf","agr"],"rp":["orta","ora","-f","-fa","ogra"]},"78":{"input":[2,3,4,7],"tlp":["deg",18415],"trp":["ord",34113],"tlw":["gece",2933],"trw":["otede",232],"lp":["deg","gec","dog","dogr","sor","gece","gerc","gord","sord","ceg","dor","eceg","dort","gect","dost","dege","gd"],"rp":["ord","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["dag",243],"trw":["orada",2520],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",176917],"trw":["onu",9693],"lp":[],"rp":["un","on","nu","onu","unu","nun","onun","unun","no","nunu","ou","non","ono","nou","unn"]},"81":{"input":[1,5,7],"tlp":["ano",845],"trp":["una",8817],"trw":["ona",7053],"lp":["ano","anu","au","qu","anun","anon","aun"],"rp":["una","ona","unan","ua","nuna","uan","nano","onan"]},"82":{"input":[2,5,7],"tlp":["su",56434],"trp":["us",59637],"tlw":["su",6093],"trw":["us",133],"lp":["su","son","sun","sunu","sonu","sus","sons"],"rp":["us","usu","usun","nus","onus","nusu","osu","jo","ons","nsu","onsu","osun","ju"]},"83":{"input":[1,2,5,7],"tlp":["suna",877],"trp":["usa",2657],"tlw":["sona",460],"lp":["suna","sona","asu","anus","susa","ajo","sano","sau","saun","asus","anso"],"rp":["usa","usan","nusa","own","usaa","now","nown","osan","unas"]},"84":{"input":[3,5,7],"tlp":["enu",1411],"trp":["yo",85768],"trw":["onune",1033],"lp":["enu"],"rp":["yo","uy","yu","oy","uyo","uyu","une","one","uny","oyu","yun","nuy","oyun","nuyo","yon","unuy","n-","oyn","yone"]},"85":{"input":[1,3,5,7],"tlp":["anyo",338],"trp":["unya",5800],"trw":["yunan",253],"lp":["anyo","eona","eux","an-","que"],"rp":["unya","uya","uyan","oya","yuna","oyna","ux","nuya","yuya","onay","yoya","-ya","yano","oyan","yona"]},"86":{"input":[2,3,5,7],"tlp":["du",128153],"trp":["und",24604],"tlw":["dondu",1341],"trw":["onunde",1790],"lp":["du","soy","dus","dusu","don","dun","duny","duy","sund"],"rp":["und","unde","ud","ndu","ond","nund","undu","udu","ydu","uyd","uydu"]},"87":{"input":[1,2,3,5,7],"tlw":["sonunda",2463],"trw":["ondan",1762],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",129214],"trp":["ug",30997],"tlw":["bu",59152],"trw":["not",308],"lp":["bu","gu","tu","gun","bun","bo","tun","gunu","bunu","but","butu"],"rp":["ug","ugu","ut","ugun","utu","utun","otu","ng","ogu"]},"89":{"input":[1,4,5,7],"tlp":["bag",4649],"trp":["uf",2044],"tlw":["buna",2248],"lp":["bag","ang","abu","fon","buna","font","anbu","gan","guna","fu","tuta","agan"],"rp":["uf","uta","utf","ufa","utan","uga","uba","nag"]},"90":{"input":[2,4,5,7],"tlp":["cu",29850],"trp":["uc",23984],"tlw":["bos",1277],"trw":["uc",3579],"lp":["cu","stu","cun","cocu","guc","stun","sunc","bos","cug","cogu"],"rp":["uc","ust","ucu","ustu","unc","onc","ocu","ucun","nuc","onuc"]},"91":{"input":[1,2,4,5,7],"tlw":["fonts",354],"trw":["usta",320],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",61296],"trp":["ur",80226],"tlw":["gene",1320],"trw":["uygun",1047],"lp":["ru","tur","boy","buy","buyu","gru","run","gen","bur","goru"],"rp":["ur","yor","oru","onr","uru","uyor","yoru","ogru","orun","ure"]},"93":{"input":[1,3,4,5,7],"tlw":["buraya",1264],"trw":["ortaya",2163],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["dogru",6276],"trw":["once",6114],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["sonra",17553],"trw":["oradan",704],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",153361],"trw":["l",1692],"lp":[],"rp":["li","il","ol","ili","ll","lli","ill","lo","oll","oli","illi","lil","olo","io","ilo","lili","ool","llo"]},"97":{"input":[1,6,7],"tlp":["al",111125],"trp":["la",193014],"tlw":["al",750],"trw":["la",412],"lp":["al","ali","zl","ala","zla","all","zo","alla","azl","zli","azla"],"rp":["la","ola","oz","ila","lla","ozl","izl","izli","izla"]},"98":{"input":[2,6,7],"tlp":["sl",30642],"trp":["ok",45144],"tlw":["sol",615],"trw":["ilk",4866],"lp":["sl","sil","sli","sili"],"rp":["ok","ko","kl","lik","lk","lis","kli","kil","ikl","ls","isl","lki","ols","ilk","kol","likl"]},"99":{"input":[1,2,6,7],"tlp":["asl",17339],"trp":["kal",18830],"tlw":["soz",2999],"trw":["olsa",1993],"lp":["asl","sla","asla","akl","asil","soz","sal","alis","akla","asli","alk","akli"],"rp":["kal","kla","las","lak","kala","lasi","kali","lsa"]},"100":{"input":[3,6,7],"tlp":["el",88486],"trp":["le",161881],"tlw":["el",1633],"trw":["ile",9283],"lp":["el","eli","ele","ell","elli","elle","elel","elil"],"rp":["le","ile","lle","ille","ole","lel","leo","-i","lee","leli","lele","i-"]},"101":{"input":[1,3,6,7],"tlp":["zle",10682],"trp":["ozle",8085],"tlw":["aile",576],"trw":["ozel",1294],"lp":["zle","zel","ale","ela","zell","aile","alle","zeli","elal","ael","elia","eal","ezil","ezel","azel","aale"],"rp":["ozle","oze","ozel","izle"]},"102":{"input":[2,3,6,7],"tlp":["dil",10774],"trp":["ld",66610],"tlw":["sekilde",2905],"trw":["kisisel",342],"lp":["dil","ekl","eld","sle","sel","eldi","dol","dile","esl","ekli"],"rp":["ld","old","ldi","ild","ildi","kle","lde","led","ledi","ikle"]},"103":{"input":[1,2,3,6,7],"tlw":["aldi",1426],"trw":["kaldi",1084],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",137313],"trp":["ig",40159],"tlw":["gitti",1369],"trw":["ilgili",1508],"lp":["gi","gil","tl","gl","tig","tigi","git","gili","tli","vl"],"rp":["ig","igi","lt","lg","lti","ilg","lgi","ilgi","lig","ligi"]},"105":{"input":[1,4,6,7],"tlp":["agi",15275],"trp":["lat",3470],"tlw":["fazla",3194],"trw":["laf",255],"lp":["agi","goz","alt","alti","gozl","agl","atl","fazl","tal","gla","tla","zg","agla","giz","val","atli","agli","gal","gz"],"rp":["lat"]},"106":{"input":[2,4,6,7],"tlp":["cok",19740],"trp":["okt",7640],"tlw":["cok",17627],"trw":["isigi",416],"lp":["cok","cl","cil","gis","sig","gisi","cli","sigi"],"rp":["okt","likt","kot","koc","lc","ktig","lic","olc","list","isig","kto","okto"]},"107":{"input":[1,2,4,6,7],"tlw":["asagi",1220],"trw":["olacak",1662],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",31288],"trp":["ler",57971],"tlw":["geri",3197],"trw":["ileri",1117],"lp":["rl","egi","gel","egil","rli","gir","rle","erl","geli","rler","erle","gele","eler"],"rp":["ler","leri","lir","iler","irl","ilir","irli"]},"109":{"input":[1,3,4,6,7],"tlw":["agir",1726],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["degil",8435],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["farkli",1113],"trw":["olarak",9384],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["nl",58209],"trw":["unlu",539],"lp":[],"rp":["nl","lu","ul","olu","lin","ulu","unl","nli","onl","lun","inl","hu","ln","lni","uh","ulun","ho","olun","lini","ilin"]},"113":{"input":[1,5,6,7],"tlp":["anl",26128],"trp":["uz",53334],"tlw":["allah",1522],"trw":["olan",10895],"lp":["anl","zu","anla","zun","anli","aln","alni"],"rp":["uz","nla","lan","hal","uzu","olan","uzun","onla","unla","ula","lniz","ozu","uza"]},"114":{"input":[2,5,6,7],"tlp":["sul",3102],"trp":["ku",42732],"tlw":["soluk",557],"trw":["olsun",2457],"lp":["sul"],"rp":["ku","uk","kon","konu","oku","unk","kul","nku","unku","ukl","luk","nlik","kus","kun","uks","lsu","olsu","lsun","lus"]},"115":{"input":[1,2,5,6,7],"tlw":["sozunu",629],"trw":["nasil",6031],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eyl",6217],"trp":["yl",48761],"tlw":["elini",1491],"trw":["oyle",5326],"lp":["eyl","elin","eyle","elen"],"rp":["yl","iyo","yle","oyl","oyle","liy","liyo","yil","len","yol","iyl","nle","ley","luy","iliy","luyo"]},"117":{"input":[1,3,5,6,7],"trw":["yalniz",2707],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["soyle",2267],"trw":["yok",5734],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aslinda",1786],"trw":["halde",2581],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",29017],"trp":["igin",12379],"tlw":["gibi",22656],"trw":["oglu",704],"lp":["bil","gib","gibi","gin","bul","bili","gini","bunl","bulu","gul","vu","bol","glu"],"rp":["igin","ngi","uv","ltin","lb","utl","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["bulunan",1116],"trw":["hangi",1195],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cunku",5282],"trw":["kucuk",4807],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sultan",928],"trw":["kabul",2501],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bile",8084],"trw":["olur",3157],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["guzel",3729],"trw":["uzerine",3191],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["buyuk",8285],"trw":["oldugunu",7814],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["basladi",3009],"trw":["uzerinde",2861],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trw":["p",380],"lp":[],"rp":[]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",33487],"trp":["pa",24487],"trw":["papa",112],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",921],"trp":["ps",3704],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",796],"trp":["pas",1542],"trw":["pasa",973],"lp":["sap","spa","aps","asp","sapa","aspa","saps","apsa"],"rp":["pas","pasa","pasp","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9410],"trp":["pe",13191],"trw":["'",2126],"lp":["ep","e'","epe"],"rp":["pe","'e","''","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",2478],"trp":["'a",813],"lp":["a'","epa","ape","x'","ax'","a'e"],"rp":["'a","pa'"]},"134":{"input":[2,3,8],"tlp":["eps",2946],"trp":["'d",2842],"trw":["'de",625],"lp":["eps","s'","e'd","e'de","epes","d'","esp","eped","spe","s'e","es'","spee"],"rp":["'d","'de","pes","ped","pede","pse","pd","pds"]},"135":{"input":[1,2,3,8],"tlp":["sa'",753],"trp":["'da",1650],"trw":["'da",254],"lp":["sa'","a'd","a'da","asa'","esap","apad","sa'd","da'","aspe","apse","apd","apds","d'a"],"rp":["'da","pad","pa'd"]},"136":{"input":[4,8],"tlp":["tp",76],"trp":["pt",7654],"trw":["pt",1404],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",5195],"trp":["pta",1168],"trw":["pat",52],"lp":["apt","tap","apta","apat","tapt"],"rp":["pta","pat","patt","pata"]},"138":{"input":[2,4,8],"trp":["pc",141],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["apac",1249],"trp":["pac",1249],"lp":["apac","apc","apca","spat","cap"],"rp":["pac","paca","pca"]},"140":{"input":[3,4,8],"tlp":["rp",1331],"trp":["pr",3486],"tlw":["tepe",103],"trw":["'te",217],"lp":["rp","tep","tepe","r'","re'","ere'","er'","rpt","ept","epte","rpe","rper"],"rp":["pr","per","'t","pre","pet","'te","petr","pte"]},"141":{"input":[1,3,4,8],"tlp":["apar",1698],"trp":["par",11587],"tlw":["arap",301],"trw":["para",1673],"lp":["apar","rap","arp","arap","ra'","tepa","f'","rpa","arpa","ara'","arpt","apr","apra"],"rp":["par","para","pra","part","patr","'ta","pera"]},"142":{"input":[2,3,4,8],"tlp":["cep",294],"trp":["perd",423],"tlw":["cep",124],"trw":["perde",178],"lp":["cep","step","s't","s'te","tesp","r'd","er'd","sper","re'd","ecep","ste'"],"rp":["perd","perc","pers"]},"143":{"input":[1,2,3,4,8],"tlw":["sarap",440],"trw":["parca",649],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["nm",9106],"trw":["m",1569],"lp":[],"rp":["nm","pm","mm","mp","mn"]},"145":{"input":[1,5,8],"tlp":["am",92732],"trp":["ma",129330],"tlw":["ama",21666],"trw":["mana",161],"lp":["am","ama","aman","apm","apma","anm","amam","anma","apan","amm"],"rp":["ma","man","mam","pma","nma","pan","mana","mpa","nam","mama"]},"146":{"input":[2,5,8],"tlp":["sm",13256],"trp":["ms",8305],"lp":["sm"],"rp":["ms","mps"]},"147":{"input":[1,2,5,8],"tlp":["sma",8191],"trp":["mas",9911],"tlw":["sam",348],"trw":["masa",380],"lp":["sma","sam","sman","asam","sama","asm","asma","amas","ams","smas","sanm","span","ssam"],"rp":["mas","masa","msa","pmas","nmas","maj","mans"]},"148":{"input":[3,5,8],"tlp":["em",49576],"trp":["me",74751],"tlw":["epey",418],"trw":["yemeye",95],"lp":["em","eme","emen","enm","emey"],"rp":["me","men","mey","meye","nem","'n","mem","nme","yem","ym","yeme","'y","pen","pey","y'"]},"149":{"input":[1,3,5,8],"tlp":["ame",2729],"trp":["yap",17207],"tlw":["annem",417],"trw":["yapan",657],"lp":["ame","amay","ema","a'n","amen","an'","a'y","eyma","a'ya"],"rp":["yap","may","maya","yapa","yapm","yma","'ya","mame","pmay","yman","pay"]},"150":{"input":[2,3,5,8],"tlp":["dem",6920],"trp":["md",15044],"tlw":["demeye",98],"trw":["'den",147],"lp":["dem","deme","sme","esm","emed","sem","ems","edem"],"rp":["md","mse","mes","med","mde","mede","mese","msey","meyd","mden","msen","msed"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",4638],"trw":["meydana",782],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",17169],"trp":["mb",2359],"lp":["tm"],"rp":["mb","mt"]},"153":{"input":[1,4,5,8],"tlp":["tam",6202],"trp":["mat",647],"tlw":["tam",3821],"lp":["tam","tma","atm","tama","atma","bam","abam","amb","fam","amba","afam","apab","tatm","tman"],"rp":["mat","mba","mant","pab","ptan","pant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3662],"trp":["mc",1577],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",364],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",25050],"trp":["mer",5044],"tlw":["etmeye",820],"trw":["mr",413],"lp":["rm","etm","tme","rme","etme","tem","erm","erme","teme","tmey","rmey","rem","renm","term","ry'","rry'"],"rp":["mer","met","mr","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["tamamen",907],"trw":["yapar",447],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sebep",489],"trw":["pencereden",421],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["stepan",214],"trw":["jandarma",125],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["ip",23109],"trw":["ip",98],"lp":[],"rp":["ip","pi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10616],"trp":["paz",682],"trw":["papaz",183],"lp":["api","apip","apaz","zip","azip","zap","azap"],"rp":["paz","paza"]},"162":{"input":[2,6,8],"tlp":["sip",883],"trp":["kip",3619],"tlw":["sikisip",77],"trw":["pis",531],"lp":["sip","spi"],"rp":["kip","psi","pis","pk","pisi","pki","ipk","ipki","ikip","psik","isip","pik","pkk","kipk","isp","pisk","ipik","kipi"]},"163":{"input":[1,2,6,8],"tlp":["apis",1831],"trp":["kap",8447],"tlw":["sapka",135],"trw":["kapi",974],"lp":["apis","akip","asip","apk","apka","sapk","apsi"],"rp":["kap","kapi","kapa","pka","ispa","pkas","pak","kapk","paki"]},"164":{"input":[3,6,8],"tlp":["epi",576],"trp":["'i",3340],"trw":["'i",87],"lp":["epi","e'i"],"rp":["'i","i'","ipe","ie'","pie"]},"165":{"input":[1,3,6,8],"tlp":["x'i",65],"trp":["pez",51],"lp":["x'i","ax'i"],"rp":["pez","peze"]},"166":{"input":[2,3,6,8],"tlp":["epsi",2946],"trp":["pek",6932],"tlw":["edip",667],"trw":["pek",4304],"lp":["epsi","dip","edip","ekip","ski'","epk","epki","espi","esip","s'i"],"rp":["pek","peki","idip","pesi","pid","k'","is'","ipek","ki'","k'i"]},"167":{"input":[1,2,3,6,8],"trw":["kapida",236],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2155],"trp":["pti",4694],"tlw":["tip",299],"trw":["itip",81],"lp":["tip","tipi"],"rp":["pti","ipt","ipti","pit","itip"]},"169":{"input":[1,4,6,8],"tlp":["apti",4186],"trp":["itap",1997],"tlw":["atip",257],"lp":["apti","vap","atip","apit"],"rp":["itap","pav","pati","ipta","pita"]},"170":{"input":[2,4,6,8],"tlp":["cip",1668],"trp":["ptik",601],"tlw":["tipki",865],"trw":["icip",79],"lp":["cip","tipk","spit"],"rp":["ptik","pic","pici","icip","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["takip",521],"trw":["kitap",795],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3191],"trp":["irip",1440],"tlw":["verip",240],"trw":["pir",218],"lp":["rip","ri'","rpi","erip","ti'","rpti","r'i","re'i","ver'","er'i","rpip","rpri"],"rp":["irip","pir","piri","ptir","iti'","peri","irp","pri"]},"173":{"input":[1,3,4,6,8],"trw":["parti",379],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["cekip",471],"trw":["kirip",55],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["cevap",1689],"trw":["parcasi",437],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",97151],"trw":["mi",12284],"lp":[],"rp":["im","mi","min","nim","imi","nmi","mini","hip","hm","imin","inm","ph","pin","nip","pini","pmi","inmi","him","imp","nimi"]},"177":{"input":[1,5,6,8],"tlp":["zam",15802],"trp":["miz",5126],"tlw":["zaman",9588],"trw":["hanim",555],"lp":["zam","zama","ami","zim","amin","anim","ahip","zm","ahm","anmi"],"rp":["miz","maz","ima","izim","imiz","mani","mizi","mah","ham","mami"]},"178":{"input":[2,5,6,8],"tlp":["sim",12135],"trp":["mis",35215],"tlw":["simsiki",221],"trw":["kim",1847],"lp":["sim","smi"],"rp":["mis","kim","km","ism","ims","kims","ikm","misi","mk","kmi","nmis","kmis","kimi","ismi","isim","msi","ikmi","psin"]},"179":{"input":[1,2,5,6,8],"tlw":["aksam",1411],"trw":["misiniz",745],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",12554],"trp":["hem",8923],"tlw":["emin",834],"trw":["hemen",4788],"lp":["emi","enim","emin","emiy"],"rp":["hem","miy","hep","heme","'ni","'nin","piy","'in","ime","yim","yip","i'n","i'ni","hme","nemi","piyi"]},"181":{"input":[1,3,5,6,8],"tlw":["annemin",178],"trw":["hepimiz",316],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["simdi",5781],"trw":["kimse",1852],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["adamin",1501],"trw":["kapiyi",1057],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",7187],"trp":["itm",2987],"tlw":["tim",161],"trw":["mit",80],"lp":["tim","tmi","ttim","vim","timi","bitm","tmin","thm"],"rp":["itm","itmi","itim","ptim","mit","hipt","mbi","htim","ptin","imb","imbi","ntim"]},"185":{"input":[1,4,5,6,8],"tlw":["bizim",2636],"trw":["mavi",631],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cikmis",550],"trw":["mistik",111],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["canim",596],"trw":["kaptan",268],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["benim",6122],"trw":["yirmi",1140],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tanrim",479],"trw":["yapti",759],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["etmek",2074],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["devam",2432],"trw":["yardim",1282],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",8798],"lp":[],"rp":["op","po","opo","pop","popo","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",362],"trp":["opa",623],"tlw":["apo",61],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["sop",218],"trp":["pos",264],"lp":["sop","spo"],"rp":["pos","opos","osp","pso"]},"195":{"input":[1,2,7,8],"tlp":["sopa",88],"trp":["pow",86],"tlw":["sopa",88],"lp":["sopa"],"rp":["pow"]},"196":{"input":[3,7,8],"tlp":["eop",251],"trp":["ope",871],"lp":["eop"],"rp":["ope","o'"]},"197":{"input":[1,3,7,8],"tlp":["eopa",251],"lp":["eopa"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["do'",50],"trp":["od'",59],"lp":["do'"],"rp":["od'","ood'"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",5867],"trp":["opt",260],"tlw":["top",230],"lp":["top"],"rp":["opt","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apag",165],"trp":["pag",1236],"lp":["apag"],"rp":["pag","opat","opag","paga","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",181],"trp":["post",126],"tlw":["cop",181],"trw":["otostop",67],"lp":["cop","stop"],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["posta",126],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["topr",1446],"trp":["opr",1640],"trw":["potter",167],"lp":["topr","rop"],"rp":["opr","pro","-top","por","prog","peg","opeg","prop","oper","port","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["topraga",181],"trw":["page",832],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",119],"trw":["protesto",51],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["profesor",263],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",48695],"trw":["mu",2378],"lp":[],"rp":["um","mu","up","umu","om","mo","unm","mun","omu","umun","mum","nmu","onm","nup","num","onup","unmu","pu","onmu","mnu"]},"209":{"input":[1,5,7,8],"tlp":["amu",724],"trp":["uma",3601],"lp":["amu","ammu","amo","apon"],"rp":["uma","oma","upa","unma","uman","oman","mua","numa","pau","pamu","muna","namu","uam","muam"]},"210":{"input":[2,5,7,8],"tlp":["sunm",1248],"trp":["mus",15207],"trw":["musun",1010],"lp":["sunm","sup","smu","smus","sum","som"],"rp":["mus","usm","nusm","ums","osm","musu","umus","nmus","msu","usmu","umsu","usup","mos","osum"]},"211":{"input":[1,2,5,7,8],"trw":["osman",247],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emnu",603],"trp":["onem",4198],"trw":["memnun",488],"lp":["emnu","emu"],"rp":["onem","ume","yum","muy","unme","yumu","ome","uym","ymu","muyo","'u","memu","uyum","oym","onme","o'n","umuy","'un"]},"213":{"input":[1,3,5,7,8],"trw":["maymun",120],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["donup",819],"trw":["muydu",265],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dusman",463],"trw":["musaade",167],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",4398],"trp":["mut",4536],"tlw":["tum",2174],"trw":["umut",237],"lp":["tum","gum","gm","gumu","tom","tup","gmu","ttom","tutm","tumu","tmu","gom"],"rp":["mut","ugum","utm","omut","nutm","umut","utmu","utup"]},"217":{"input":[1,4,5,7,8],"tlw":["bomba",100],"trw":["mutfaga",167],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["gumus",409],"trw":["unutmus",110],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["cuma",169],"trw":["mustafa",624],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",385],"trw":["oturup",540],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["ragmen",1330],"trw":["yagmur",493],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["durum",881],"trw":["oturmus",358],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["durumda",912],"trw":["propaganda",168],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",6579],"trw":["pol",144],"lp":[],"rp":["pl","lip","opl","pil","pol","poli","ilip","ipl","lp","pli","pili","ilp","pilo","ipli","pool"]},"225":{"input":[1,6,7,8],"tlp":["apil",2908],"trp":["pla",4024],"tlw":["alip",1109],"lp":["apil","alip","apl","apla","apal","alp","apli"],"rp":["pla","opla","pila","pal","pali","ipla","lap","olap"]},"226":{"input":[2,6,7,8],"tlp":["skop",138],"trp":["kop",1470],"tlw":["silip",98],"trw":["polis",725],"lp":["skop","sipl"],"rp":["kop","lkip","kopo","pisl"]},"227":{"input":[1,2,6,7,8],"trw":["kapali",519],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elip",1112],"trp":["l'",1267],"trw":["poole",60],"lp":["elip","el'","el'i","epl","eple"],"rp":["l'","'l","ple","l'i","leop","li'","lep","'le","le'","lle'","le'i","iple","'li","ll'","ll'i"]},"229":{"input":[1,3,6,7,8],"trw":["la'e",56],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"trw":["kopek",433],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["dolasip",126],"trw":["pekala",402],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topl",3261],"trp":["ptig",2000],"trw":["popov",105],"lp":["topl","gip"],"rp":["ptig","ptil","pov","opov"]},"233":{"input":[1,4,6,7,8],"tlw":["aptal",428],"trw":["iptal",64],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",151],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["ciplak",453],"trw":["politika",153],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["gelip",1112],"trw":["piril",272],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["garip",992],"trw":["pavel",210],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gidip",1162],"trw":["polisler",126],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["toprak",602],"trw":["parlak",776],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",46943],"trw":["olup",1530],"lp":[],"rp":["lm","olm","lmi","ilm","ml","lim","lum","ilmi","lmu","mli","olmu","olum","mil","iml","ulm","ilim","lup","plu","oplu","olup"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anlamina",563],"trw":["olmaz",1004],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["sokup",136],"trw":["olmus",1359],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almak",825],"trw":["olmak",1877],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elimi",221],"trw":["onemli",2111],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almaya",456],"trw":["olmayan",1555],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["soylemek",674],"trw":["oldum",429],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["aldim",504],"trw":["olmadi",572],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bolum",547],"trw":["mutlu",849],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",181],"trw":["hamilton",186],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["gitmis",374],"trw":["olmustu",1519],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["baslamisti",1046],"trw":["kocaman",640],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["biliyorum",953],"trw":["muhtemelen",286],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zamanlar",874],"trw":["yaptigi",1060],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gormek",1084],"trw":["istiyorum",996],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["basladim",495],"trw":["olmadigini",1197],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/gergo/gergo.c b/keyboards/gboards/gergo/gergo.c index 1ec6105eeb..6ab9786007 100644 --- a/keyboards/gboards/gergo/gergo.c +++ b/keyboards/gboards/gergo/gergo.c @@ -1,3 +1,6 @@ +// Jane Bernhardt (https://github.com/germ) +// SPDX-License-Identifier: GPL-2.0+ + #include "gergo.h" bool i2c_initialized = 0; diff --git a/keyboards/gboards/gergo/gergo.h b/keyboards/gboards/gergo/gergo.h index f6dc1498f0..734d6e5eea 100644 --- a/keyboards/gboards/gergo/gergo.h +++ b/keyboards/gboards/gergo/gergo.h @@ -1,3 +1,6 @@ +// Jane Bernhardt (https://github.com/germ) +// SPDX-License-Identifier: GPL-2.0+ + #pragma once #include "quantum.h" diff --git a/keyboards/gboards/gergo/matrix.c b/keyboards/gboards/gergo/matrix.c index 1fa80a58a0..d73aaa1814 100644 --- a/keyboards/gboards/gergo/matrix.c +++ b/keyboards/gboards/gergo/matrix.c @@ -24,76 +24,75 @@ along with this program. If not, see . #include "gergo.h" #ifdef BALLER -#include -#include "pointing_device.h" +# include +# include "pointing_device.h" #endif #ifndef DEBOUNCE -# define DEBOUNCE 5 +# define DEBOUNCE 5 #endif // MCP Pin Defs -#define RROW1 (1u<<3) -#define RROW2 (1u<<2) -#define RROW3 (1u<<1) -#define RROW4 (1u<<0) -#define COL0 (1u<<0) -#define COL1 (1u<<1) -#define COL2 (1u<<2) -#define COL3 (1u<<3) -#define COL4 (1u<<4) -#define COL5 (1u<<5) -#define COL6 (1u<<6) +#define RROW1 (1u << 3) +#define RROW2 (1u << 2) +#define RROW3 (1u << 1) +#define RROW4 (1u << 0) +#define COL0 (1u << 0) +#define COL1 (1u << 1) +#define COL2 (1u << 2) +#define COL3 (1u << 3) +#define COL4 (1u << 4) +#define COL5 (1u << 5) +#define COL6 (1u << 6) // ATmega pin defs -#define ROW1 (1u<<6) -#define ROW2 (1u<<5) -#define ROW3 (1u<<4) -#define ROW4 (1u<<1) -#define COL7 (1u<<0) -#define COL8 (1u<<1) -#define COL9 (1u<<2) -#define COL10 (1u<<3) -#define COL11 (1u<<2) -#define COL12 (1u<<3) -#define COL13 (1u<<6) - -//Trackball pin defs -#define TRKUP (1u<<4) -#define TRKDN (1u<<5) -#define TRKLT (1u<<6) -#define TRKRT (1u<<7) -#define TRKBTN (1u<<6) +#define ROW1 (1u << 6) +#define ROW2 (1u << 5) +#define ROW3 (1u << 4) +#define ROW4 (1u << 1) +#define COL7 (1u << 0) +#define COL8 (1u << 1) +#define COL9 (1u << 2) +#define COL10 (1u << 3) +#define COL11 (1u << 2) +#define COL12 (1u << 3) +#define COL13 (1u << 6) +// Trackball pin defs +#define TRKUP (1u << 4) +#define TRKDN (1u << 5) +#define TRKLT (1u << 6) +#define TRKRT (1u << 7) +#define TRKBTN (1u << 6) // Multiple for mouse moves #ifndef TRKSTEP -#define TRKSTEP 20 +# define TRKSTEP 20 #endif // multiple for mouse scroll #ifndef SCROLLSTEP -#define SCROLLSTEP 5 +# define SCROLLSTEP 5 #endif // bit masks -#define BMASK (COL7 | COL8 | COL9 | COL10) -#define CMASK (COL13) -#define DMASK (COL11 | COL12) -#define FMASK (ROW1 | ROW2 | ROW3 | ROW4) -#define RROWMASK (RROW1 | RROW2 | RROW3 | RROW4) -#define MCPMASK (COL0 | COL1 | COL2 | COL3 | COL4 | COL5 | COL6) -#define TRKMASK (TRKUP | TRKDN | TRKRT | TRKLT) +#define BMASK (COL7 | COL8 | COL9 | COL10) +#define CMASK (COL13) +#define DMASK (COL11 | COL12) +#define FMASK (ROW1 | ROW2 | ROW3 | ROW4) +#define RROWMASK (RROW1 | RROW2 | RROW3 | RROW4) +#define MCPMASK (COL0 | COL1 | COL2 | COL3 | COL4 | COL5 | COL6) +#define TRKMASK (TRKUP | TRKDN | TRKRT | TRKLT) // Trackball interrupts accumulate over here. Processed on scan // Stores prev state of mouse, high bits store direction uint8_t trkState = 0; uint8_t trkBtnState = 0; -volatile uint8_t tbUpCnt = 0; -volatile uint8_t tbDnCnt = 0; -volatile uint8_t tbLtCnt = 0; -volatile uint8_t tbRtCnt = 0; +volatile uint8_t tbUpCnt = 0; +volatile uint8_t tbDnCnt = 0; +volatile uint8_t tbLtCnt = 0; +volatile uint8_t tbRtCnt = 0; /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; @@ -111,29 +110,30 @@ static matrix_row_t read_cols(uint8_t row); static void init_cols(void); static void unselect_rows(void); static void select_row(uint8_t row); -static void enableInterrupts(void); +static void enableInterrupts(void); static uint8_t mcp23018_reset_loop; // static uint16_t mcp23018_reset_loop; -__attribute__ ((weak)) void matrix_init_user(void) {} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) void matrix_scan_user(void) {} +__attribute__((weak)) void matrix_scan_user(void) {} -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); } -inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } - -inline uint8_t matrix_cols(void) { return MATRIX_COLS; } +inline uint8_t matrix_rows(void) { + return MATRIX_ROWS; +} +inline uint8_t matrix_cols(void) { + return MATRIX_COLS; +} void matrix_init(void) { // initialize row and col @@ -141,13 +141,13 @@ void matrix_init(void) { unselect_rows(); init_cols(); - // initialize matrix state: all keys off - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - raw_matrix[i] = 0; - } + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + raw_matrix[i] = 0; + } - debounce_init(MATRIX_ROWS); + debounce_init(); matrix_init_kb(); } @@ -158,7 +158,7 @@ void matrix_power_up(void) { init_cols(); // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = 0; } } @@ -166,63 +166,66 @@ void matrix_power_up(void) { // Reads and stores a row, returning // whether a change occurred. static inline bool store_raw_matrix_row(uint8_t index) { - matrix_row_t temp = read_cols(index); - if (raw_matrix[index] != temp) { - raw_matrix[index] = temp; - return true; - } - return false; + matrix_row_t temp = read_cols(index); + if (raw_matrix[index] != temp) { + raw_matrix[index] = temp; + return true; + } + return false; } - - uint8_t matrix_scan(void) { // TODO: Find what is trashing interrupts enableInterrupts(); // First we handle the mouse inputs #ifdef BALLER - uint8_t pBtn = PINE & TRKBTN; + uint8_t pBtn = PINE & TRKBTN; - #ifdef DEBUG_BALLER +# ifdef DEBUG_BALLER // Compare to previous, mod report - if (tbUpCnt + tbDnCnt + tbLtCnt + tbRtCnt != 0) - xprintf("U: %d D: %d L: %d R: %d B: %d\n", tbUpCnt, tbDnCnt, tbLtCnt, tbRtCnt, (trkBtnState >> 6)); - #endif + if (tbUpCnt + tbDnCnt + tbLtCnt + tbRtCnt != 0) xprintf("U: %d D: %d L: %d R: %d B: %d\n", tbUpCnt, tbDnCnt, tbLtCnt, tbRtCnt, (trkBtnState >> 6)); +# endif // Modify the report report_mouse_t pRprt = pointing_device_get_report(); // Scroll by default, move on layer if (layer_state == 0) { - pRprt.h += tbLtCnt * SCROLLSTEP; tbLtCnt = 0; - pRprt.h -= tbRtCnt * SCROLLSTEP; tbRtCnt = 0; - pRprt.v -= tbUpCnt * SCROLLSTEP; tbUpCnt = 0; - pRprt.v += tbDnCnt * SCROLLSTEP; tbDnCnt = 0; + pRprt.h += tbLtCnt * SCROLLSTEP; + tbLtCnt = 0; + pRprt.h -= tbRtCnt * SCROLLSTEP; + tbRtCnt = 0; + pRprt.v -= tbUpCnt * SCROLLSTEP; + tbUpCnt = 0; + pRprt.v += tbDnCnt * SCROLLSTEP; + tbDnCnt = 0; } else { - pRprt.x -= tbLtCnt * TRKSTEP * (layer_state - 1); tbLtCnt = 0; - pRprt.x += tbRtCnt * TRKSTEP * (layer_state - 1); tbRtCnt = 0; - pRprt.y -= tbUpCnt * TRKSTEP * (layer_state - 1); tbUpCnt = 0; - pRprt.y += tbDnCnt * TRKSTEP * (layer_state - 1); tbDnCnt = 0; + pRprt.x -= tbLtCnt * TRKSTEP * (layer_state - 1); + tbLtCnt = 0; + pRprt.x += tbRtCnt * TRKSTEP * (layer_state - 1); + tbRtCnt = 0; + pRprt.y -= tbUpCnt * TRKSTEP * (layer_state - 1); + tbUpCnt = 0; + pRprt.y += tbDnCnt * TRKSTEP * (layer_state - 1); + tbDnCnt = 0; } -#ifdef DEBUG_BALLER - if (pRprt.x != 0 || pRprt.y != 0) - xprintf("X: %d Y: %d\n", pRprt.x, pRprt.y); -#endif +# ifdef DEBUG_BALLER + if (pRprt.x != 0 || pRprt.y != 0) xprintf("X: %d Y: %d\n", pRprt.x, pRprt.y); +# endif - if ((pBtn != trkBtnState) && ((pBtn >> 6) == 0)) pRprt.buttons |= MOUSE_BTN1; - if ((pBtn != trkBtnState) && ((pBtn >> 6) == 1)) pRprt.buttons &= ~MOUSE_BTN1; + if ((pBtn != trkBtnState) && ((pBtn >> 6) == 0)) pRprt.buttons |= MOUSE_BTN1; + if ((pBtn != trkBtnState) && ((pBtn >> 6) == 1)) pRprt.buttons &= ~MOUSE_BTN1; // Save state, push update - if (pRprt.x != 0 || pRprt.y != 0 || pRprt.h != 0 || pRprt.v != 0 || (trkBtnState != pBtn)) - pointing_device_set_report(pRprt); + if (pRprt.x != 0 || pRprt.y != 0 || pRprt.h != 0 || pRprt.v != 0 || (trkBtnState != pBtn)) pointing_device_set_report(pRprt); trkBtnState = pBtn; #endif // Then the keyboard - if (mcp23018_status) { // if there was an error + if (mcp23018_status) { // if there was an error if (++mcp23018_reset_loop == 0) { // if (++mcp23018_reset_loop >= 1300) { // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans @@ -240,7 +243,7 @@ uint8_t matrix_scan(void) { bool changed = false; for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) { // select rows from left and right hands - uint8_t left_index = i; + uint8_t left_index = i; uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; select_row(left_index); select_row(right_index); @@ -254,41 +257,46 @@ uint8_t matrix_scan(void) { unselect_rows(); } - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); matrix_scan_kb(); enableInterrupts(); #ifdef DEBUG_MATRIX for (uint8_t c = 0; c < MATRIX_COLS; c++) - for (uint8_t r = 0; r < MATRIX_ROWS; r++) - if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); + for (uint8_t r = 0; r < MATRIX_ROWS; r++) + if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); #endif return 1; } -inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } +inline bool matrix_is_on(uint8_t row, uint8_t col) { + return (matrix[row] & ((matrix_row_t)1 << col)); +} -inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - print_hex8(row); print(": "); + print_hex8(row); + print(": "); print_bin_reverse16(matrix_get_row(row)); print("\n"); } } // Remember this means ROWS -static void init_cols(void) { +static void init_cols(void) { // init on mcp23018 // not needed, already done as part of init_mcp23018() // Input with pull-up(DDR:0, PORT:1) - DDRF &= ~FMASK; - PORTF |= FMASK; + DDRF &= ~FMASK; + PORTF |= FMASK; } static matrix_row_t read_cols(uint8_t row) { @@ -296,7 +304,7 @@ static matrix_row_t read_cols(uint8_t row) { if (mcp23018_status) { // if there was an error return 0; } else { - uint8_t data = 0; + uint8_t data = 0; mcp23018_status = i2c_read_register(I2C_ADDR, GPIOB, &data, 1, I2C_TIMEOUT); #ifdef DEBUG_MATRIX @@ -305,113 +313,106 @@ static matrix_row_t read_cols(uint8_t row) { return ~data; } } else { - /* read from teensy - * bitmask is 0b0111001, but we want the lower four - * we'll return 1s for the top two, but that's harmless. - */ + /* read from teensy + * bitmask is 0b0111001, but we want the lower four + * we'll return 1s for the top two, but that's harmless. + */ // So I need to confuckulate all this - //return ~(((PIND & DMASK) >> 1 | ((PINC & CMASK) >> 6) | (PIN))); - //return ~((PINF & 0x03) | ((PINF & 0xF0) >> 2)); - return ~( - (((PINF & ROW4) >> 1) - | ((PINF & (ROW1 | ROW2 | ROW3)) >> 3)) - & 0xF); + // return ~(((PIND & DMASK) >> 1 | ((PINC & CMASK) >> 6) | (PIN))); + // return ~((PINF & 0x03) | ((PINF & 0xF0) >> 2)); + return ~((((PINF & ROW4) >> 1) | ((PINF & (ROW1 | ROW2 | ROW3)) >> 3)) & 0xF); } } // Row pin configuration -static void unselect_rows(void) -{ +static void unselect_rows(void) { // no need to unselect on mcp23018, because the select step sets all // the other row bits high, and it's not changing to a different // direction // Hi-Z(DDR:0, PORT:0) to unselect - DDRB &= ~(BMASK | TRKMASK); + DDRB &= ~(BMASK | TRKMASK); PORTB &= ~(BMASK); - DDRC &= ~CMASK; + DDRC &= ~CMASK; PORTC &= ~CMASK; - DDRD &= ~DMASK; + DDRD &= ~DMASK; PORTD &= ~DMASK; - // Fix trashing of DDRB for TB + // Fix trashing of DDRB for TB PORTB |= TRKMASK; } -static void select_row(uint8_t row) -{ +static void select_row(uint8_t row) { if (row < 7) { // select on mcp23018 if (mcp23018_status) { // do nothing on error - } else { // set active row low : 0 // set other rows hi-Z : 1 - uint8_t data = 0xFF & ~(1<= 1300) { // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans @@ -140,7 +142,7 @@ uint8_t matrix_scan(void) { unselect_rows(); } - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); matrix_scan_kb(); #ifdef DEBUG_MATRIX @@ -152,8 +154,12 @@ uint8_t matrix_scan(void) { return 1; } -inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } -inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +inline bool matrix_is_on(uint8_t row, uint8_t col) { + return (matrix[row] & ((matrix_row_t)1 << col)); +} +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); @@ -168,16 +174,16 @@ void matrix_print(void) { // Remember this means ROWS static void init_cols(void) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { - gpio_set_pin_input_high(col_pins[col]); + gpio_set_pin_input_high(col_pins[col]); } } static matrix_row_t read_cols(uint8_t row) { if (row < 5) { - if (mcp23018_status) { // if there was an error + if (mcp23018_status) { // if there was an error return 0; } else { - uint8_t data = 0; + uint8_t data = 0; mcp23018_status = i2c_receive(I2C_ADDR, &data, 1, I2C_TIMEOUT); #ifdef DEBUG_MATRIX if (~data != 0x00) xprintf("I2C: %d\n", ~data); @@ -195,20 +201,19 @@ static void unselect_rows(void) { // the other row bits high, and it's not changing to a different direction for (uint8_t row = 0; row < MATRIX_ROWS_PER_SIDE; row++) { - gpio_set_pin_input(row_pins[row]); - gpio_write_pin_low(row_pins[row]); + gpio_set_pin_input(row_pins[row]); + gpio_write_pin_low(row_pins[row]); } } static void select_row(uint8_t row) { if (row < 5) { // select on mcp23018 - if (mcp23018_status) { // do nothing on error - } else { // set active row low : 0 // set other rows hi-Z : 1 + if (mcp23018_status) { // do nothing on error + } else { // set active row low : 0 // set other rows hi-Z : 1 uint8_t data; - data = 0xFF & ~(1 << (row + 1)); + data = 0xFF & ~(1 << (row + 1)); mcp23018_status = i2c_write_register(I2C_ADDR, GPIOA, &data, 1, I2C_TIMEOUT); - } } else { gpio_set_pin_output(row_pins[row - MATRIX_ROWS_PER_SIDE]); diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json index a34912aee3..2719faa764 100644 --- a/keyboards/geekboards/macropad_v2/keyboard.json +++ b/keyboards/geekboards/macropad_v2/keyboard.json @@ -51,6 +51,50 @@ "val": 192 }, "driver": "ws2812", + "layout": [ + {"matrix": [1, 1], "x": 85, "y": 46, "flags": 4}, + {"x": 85, "y": 64, "flags": 2}, + {"x": 67, "y": 64, "flags": 2}, + {"x": 49, "y": 64, "flags": 2}, + {"x": 31, "y": 64, "flags": 2}, + {"x": 13, "y": 64, "flags": 2}, + {"matrix": [1, 0], "x": 31, "y": 46, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 0, "y": 46, "flags": 2}, + {"x": 0, "y": 37, "flags": 2}, + {"x": 0, "y": 27, "flags": 2}, + {"x": 0, "y": 18, "flags": 2}, + {"x": 0, "y": 9, "flags": 2}, + {"matrix": [0, 0], "x": 31, "y": 18, "flags": 4}, + {"x": 13, "y": 0, "flags": 2}, + {"x": 31, "y": 0, "flags": 2}, + {"x": 49, "y": 0, "flags": 2}, + {"x": 67, "y": 0, "flags": 2}, + {"x": 85, "y": 0, "flags": 2}, + {"matrix": [0, 1], "x": 85, "y": 18, "flags": 4}, + {"matrix": [0, 2], "x": 139, "y": 18, "flags": 4}, + {"x": 139, "y": 0, "flags": 2}, + {"x": 157, "y": 0, "flags": 2}, + {"x": 175, "y": 0, "flags": 2}, + {"x": 193, "y": 0, "flags": 2}, + {"x": 211, "y": 0, "flags": 2}, + {"matrix": [0, 3], "x": 193, "y": 18, "flags": 4}, + {"x": 224, "y": 9, "flags": 2}, + {"x": 224, "y": 18, "flags": 2}, + {"x": 224, "y": 27, "flags": 2}, + {"x": 224, "y": 37, "flags": 2}, + {"x": 224, "y": 46, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [1, 3], "x": 193, "y": 46, "flags": 4}, + {"x": 211, "y": 64, "flags": 2}, + {"x": 193, "y": 64, "flags": 2}, + {"x": 175, "y": 64, "flags": 2}, + {"x": 157, "y": 64, "flags": 2}, + {"matrix": [1, 2], "x": 139, "y": 46, "flags": 4}, + {"x": 139, "y": 64, "flags": 2}, + {"x": 121, "y": 64, "flags": 2}, + {"x": 103, "y": 64, "flags": 2} + ], "sleep": true }, "processor": "STM32F072", diff --git a/keyboards/geekboards/macropad_v2/macropad_v2.c b/keyboards/geekboards/macropad_v2/macropad_v2.c deleted file mode 100644 index ba65697988..0000000000 --- a/keyboards/geekboards/macropad_v2/macropad_v2.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright 2020 Geekboards ltd. (geekboards.ru / geekboards.de) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - {13,19,20,26}, {6,0,38,33}, -}, { - // LED Index to Physical Position - {85,46}, - {85,64},{67,64},{49,64},{31,64},{13,64}, - {31,46}, - {0,55},{0,46},{0,37},{0,27},{0,18},{0,9}, - {31,18}, - {13,0},{31,0},{49,0},{67,0},{85,0}, - {85,18},{139,18}, - {139,0},{157,0},{175,0},{193,0},{211,0}, - {193,18}, - {224,9},{224,18},{224,27},{224,37},{224,46},{224,55}, - {193,46}, - {211,64},{193,64},{175,64},{157,64}, - {139,46}, - {139,64},{121,64},{103,64}, -}, { - // LED Index to Flag, 2=backlight, 4=key - 4, - 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, 2, - 4, 4, - 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, - 4, - 2, 2, 2 -} }; - -#endif diff --git a/keyboards/geekboards/tester/keyboard.json b/keyboards/geekboards/tester/keyboard.json index 2b85961df8..236c2c697f 100644 --- a/keyboards/geekboards/tester/keyboard.json +++ b/keyboards/geekboards/tester/keyboard.json @@ -50,6 +50,16 @@ "solid_reactive_multinexus": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 151, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [1, 2], "x": 151, "y": 64, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 64, "flags": 4} + ], "sleep": true }, "features": { diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c index 4daa4ef062..001fd06e9d 100644 --- a/keyboards/geekboards/tester/tester.c +++ b/keyboards/geekboards/tester/tester.c @@ -16,16 +16,3 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_7, C2_7, C3_7}, //A7 {0, C1_8, C2_8, C3_8}, //A8 }; - -led_config_t g_led_config = { -{ - { 0, 1, 2, 3}, - { 4, 5, 6, 7} -}, -{ - { 0, 0 }, { 75, 0 }, { 151, 0 }, { 224, 0 }, { 0, 64 }, { 75, 64 }, { 151, 64 }, { 224, 64 } -}, -{ - 4, 4, 4, 4, 4, 4, 4, 4 -} -}; diff --git a/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c b/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c index cebb8fb073..4bdcc3d0bf 100644 --- a/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c @@ -59,4 +59,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, [2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/geist/keymaps/default/keymap.c b/keyboards/geistmaschine/geist/keymaps/default/keymap.c index 19b4ba2210..6414271d3c 100644 --- a/keyboards/geistmaschine/geist/keymaps/default/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/default/keymap.c @@ -47,4 +47,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, [2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/geist/keymaps/iso/keymap.c b/keyboards/geistmaschine/geist/keymaps/iso/keymap.c index 658e4ec984..cc659c20d5 100644 --- a/keyboards/geistmaschine/geist/keymaps/iso/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/iso/keymap.c @@ -59,4 +59,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, [2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/macropod/config.h b/keyboards/geistmaschine/macropod/config.h index e12d3b94fa..52bc1e9eff 100644 --- a/keyboards/geistmaschine/macropod/config.h +++ b/keyboards/geistmaschine/macropod/config.h @@ -21,4 +21,4 @@ #define MATRIX_COLS 17 /* Fix for Apple Silicon Macs struggling to detect board after suspend/sleep */ -#define USB_SUSPEND_WAKEUP_DELAY 200 \ No newline at end of file +#define USB_SUSPEND_WAKEUP_DELAY 200 diff --git a/keyboards/geistmaschine/macropod/keymaps/default/keymap.c b/keyboards/geistmaschine/macropod/keymaps/default/keymap.c index 8c2c69db36..b28837d947 100644 --- a/keyboards/geistmaschine/macropod/keymaps/default/keymap.c +++ b/keyboards/geistmaschine/macropod/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_MRWD, KC_MFFD) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/macropod/matrix.c b/keyboards/geistmaschine/macropod/matrix.c index 5cd35b47d4..5ead7f5546 100644 --- a/keyboards/geistmaschine/macropod/matrix.c +++ b/keyboards/geistmaschine/macropod/matrix.c @@ -85,4 +85,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { current_matrix[0] = data; return changed; -} \ No newline at end of file +} diff --git a/keyboards/geistmaschine/macropod/rules.mk b/keyboards/geistmaschine/macropod/rules.mk index 53d35b5bc6..1b997fbaad 100644 --- a/keyboards/geistmaschine/macropod/rules.mk +++ b/keyboards/geistmaschine/macropod/rules.mk @@ -2,4 +2,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += pca9555.c matrix.c -I2C_DRIVER_REQUIRED = yes \ No newline at end of file +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/generic_panda/panda65_01/keyboard.json b/keyboards/generic_panda/panda65_01/keyboard.json index 1ba0ec134b..a83b704f7f 100644 --- a/keyboards/generic_panda/panda65_01/keyboard.json +++ b/keyboards/generic_panda/panda65_01/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Panda65_01", "manufacturer": "generic_panda", - "url": "https://github.com/JesseLeung97/qmk_firmware/tree/master/keyboards/generic_panda/panda65_01", "maintainer": "generic_panda", "usb": { "vid": "0x6770", diff --git a/keyboards/geonworks/ee_at/keyboard.json b/keyboards/geonworks/ee_at/keyboard.json index c901901ab0..55b821216d 100644 --- a/keyboards/geonworks/ee_at/keyboard.json +++ b/keyboards/geonworks/ee_at/keyboard.json @@ -494,4 +494,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/geonworks/w1_at/keyboard.json b/keyboards/geonworks/w1_at/keyboard.json index 240463b9c4..0d68f3854e 100644 --- a/keyboards/geonworks/w1_at/keyboard.json +++ b/keyboards/geonworks/w1_at/keyboard.json @@ -502,4 +502,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/gh60/revc/pinout.txt b/keyboards/gh60/revc/pinout.txt index e9bf1983a5..7299b933e7 100644 --- a/keyboards/gh60/revc/pinout.txt +++ b/keyboards/gh60/revc/pinout.txt @@ -15,4 +15,4 @@ 3 F4 POKER Arrow LEDs B2 Capslock LED - B0 not connected \ No newline at end of file + B0 not connected diff --git a/keyboards/gh80_3000/readme.md b/keyboards/gh80_3000/readme.md index ca26947046..73bf2594b6 100644 --- a/keyboards/gh80_3000/readme.md +++ b/keyboards/gh80_3000/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make gh80_3000:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/giabalanai/giabalanai.c b/keyboards/giabalanai/giabalanai.c index 6f8e359479..ae6a1547da 100644 --- a/keyboards/giabalanai/giabalanai.c +++ b/keyboards/giabalanai/giabalanai.c @@ -88,66 +88,6 @@ NO_LED, 84, 83, 82, 81, 80, 79, NO_LED, NO_LED, NO_LED # endif #endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { - { - { 74, 75, 98, 99, 122, 63, 86, 87, 110, 111 }, - { 73, 76, 97, 100, 121, 64, 85, 88, 109, 112 }, - { 72, 77, 96, 101, 120, 65, 84, 89, 108, 113 }, - { 71, 78, 95, 102, 119, 66, 83, 90, 107, 114 }, - { 70, 79, 94, 103, 118, 67, 82, 91, 106, 115 }, - { 69, 80, 93, 104, 117, 68, 81, 92, 105, 116 }, - { 26, 27, 28, 29, 30, 31, 32, NO_LED, NO_LED, NO_LED }, - { 50, 49, 48, 47, 46, 45, 44, NO_LED, NO_LED, NO_LED }, - { 25, 51, 52, 53, 54, 55, 56, NO_LED, NO_LED, NO_LED }, - { NO_LED, 12, 37, 36, 35, 34, 33, NO_LED, NO_LED, NO_LED }, - { NO_LED, 38, 39, 40, 41, 42, 43, NO_LED, NO_LED, NO_LED }, - { NO_LED, 62, 61, 60, 59, 58, 57, NO_LED, NO_LED, NO_LED } - }, { - { 120, 0 }, { 128, 0 }, { 136, 0 }, { 144, 0 }, { 152, 0 }, { 160, 0 }, { 168, 0 }, { 176, 0 }, { 184, 0 }, { 192, 0 }, { 200, 0 }, { 208, 0 }, - { 224, 32 }, - { 212, 16 }, { 204, 16 }, { 196, 16 }, { 188, 16 }, { 180, 16 }, { 172, 16 }, { 164, 16 }, { 156, 16 }, { 148, 16 }, { 140, 16 }, { 132, 16 }, { 124, 16 }, { 116, 16 }, - { 120, 32 }, { 128, 32 }, { 136, 32 }, { 144, 32 }, { 152, 32 }, { 160, 32 }, { 168, 32 }, { 176, 32 }, { 184, 32 }, { 192, 32 }, { 200, 32 }, { 208, 32 }, - { 212, 48 }, { 204, 48 }, { 196, 48 }, { 188, 48 }, { 180, 48 }, { 172, 48 }, { 164, 48 }, { 156, 48 }, { 148, 48 }, { 140, 48 }, { 132, 48 }, { 124, 48 }, { 116, 48 }, - { 120, 64 }, { 128, 64 }, { 136, 64 }, { 144, 64 }, { 152, 64 }, { 160, 64 }, { 168, 64 }, { 176, 64 }, { 184, 64 }, { 192, 64 }, { 200, 64 }, { 208, 64 }, - - { 88, 0 }, { 80, 0 }, { 72, 0 }, { 64, 0 }, { 56, 0 }, { 48, 0 }, { 40, 0 }, { 32, 0 }, { 24, 0 }, { 16, 0 }, { 8, 0 }, { 0, 0 }, - { 4, 16 }, { 12, 16 }, { 20, 16 }, { 28, 16 }, { 36, 16 }, { 44, 16 }, { 52, 16 }, { 60, 16 }, { 68, 16 }, { 76, 16 }, { 84, 16 }, { 92, 16 }, - { 96, 32 }, { 88, 32 }, { 80, 32 }, { 72, 32 }, { 64, 32 }, { 56, 32 }, { 48, 32 }, { 40, 32 }, { 32, 32 }, { 24, 32 }, { 16, 32 }, { 8, 32 }, - { 12, 48 }, { 20, 48 }, { 28, 48 }, { 36, 48 }, { 44, 48 }, { 52, 48 }, { 60, 48 }, { 68, 48 }, { 76, 48 }, { 84, 48 }, { 92, 48 }, { 100, 48 }, - { 104, 64 }, { 96, 64 }, { 88, 64 }, { 80, 64 }, { 72, 64 }, { 64, 64 }, { 56, 64 }, { 48, 64 }, { 40, 64 }, { 32, 64 }, { 24, 64 }, { 16, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - -// const uint8_t PROGMEM convert_led_location2number[] = { -// 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, -// 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, -// 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, -// 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -// 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, -// -// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, -// 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, -// 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 12, -// 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, -// 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 -// }; -#endif - void my_process_midi4Bass(uint8_t channel, keyrecord_t *record, uint8_t *chord_status, uint8_t chord, uint16_t root_note, bool is_single_bass) { uint8_t velocity = midi_config.velocity; diff --git a/keyboards/giabalanai/keyboard.json b/keyboards/giabalanai/keyboard.json index 2e2357fe4c..9bb6b49336 100644 --- a/keyboards/giabalanai/keyboard.json +++ b/keyboards/giabalanai/keyboard.json @@ -17,6 +17,131 @@ "multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 120, "y": 0, "flags": 4}, + {"x": 128, "y": 0, "flags": 4}, + {"x": 136, "y": 0, "flags": 4}, + {"x": 144, "y": 0, "flags": 4}, + {"x": 152, "y": 0, "flags": 4}, + {"x": 160, "y": 0, "flags": 4}, + {"x": 168, "y": 0, "flags": 4}, + {"x": 176, "y": 0, "flags": 4}, + {"x": 184, "y": 0, "flags": 4}, + {"x": 192, "y": 0, "flags": 4}, + {"x": 200, "y": 0, "flags": 4}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [9, 1], "x": 224, "y": 32, "flags": 4}, + {"x": 212, "y": 16, "flags": 4}, + {"x": 204, "y": 16, "flags": 4}, + {"x": 196, "y": 16, "flags": 4}, + {"x": 188, "y": 16, "flags": 4}, + {"x": 180, "y": 16, "flags": 4}, + {"x": 172, "y": 16, "flags": 4}, + {"x": 164, "y": 16, "flags": 4}, + {"x": 156, "y": 16, "flags": 4}, + {"x": 148, "y": 16, "flags": 4}, + {"x": 140, "y": 16, "flags": 4}, + {"x": 132, "y": 16, "flags": 4}, + {"x": 124, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 116, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 120, "y": 32, "flags": 4}, + {"matrix": [6, 1], "x": 128, "y": 32, "flags": 4}, + {"matrix": [6, 2], "x": 136, "y": 32, "flags": 4}, + {"matrix": [6, 3], "x": 144, "y": 32, "flags": 4}, + {"matrix": [6, 4], "x": 152, "y": 32, "flags": 4}, + {"matrix": [6, 5], "x": 160, "y": 32, "flags": 4}, + {"matrix": [6, 6], "x": 168, "y": 32, "flags": 4}, + {"matrix": [9, 6], "x": 176, "y": 32, "flags": 4}, + {"matrix": [9, 5], "x": 184, "y": 32, "flags": 4}, + {"matrix": [9, 4], "x": 192, "y": 32, "flags": 4}, + {"matrix": [9, 3], "x": 200, "y": 32, "flags": 4}, + {"matrix": [9, 2], "x": 208, "y": 32, "flags": 4}, + {"matrix": [10, 1], "x": 212, "y": 48, "flags": 4}, + {"matrix": [10, 2], "x": 204, "y": 48, "flags": 4}, + {"matrix": [10, 3], "x": 196, "y": 48, "flags": 4}, + {"matrix": [10, 4], "x": 188, "y": 48, "flags": 4}, + {"matrix": [10, 5], "x": 180, "y": 48, "flags": 4}, + {"matrix": [10, 6], "x": 172, "y": 48, "flags": 4}, + {"matrix": [7, 6], "x": 164, "y": 48, "flags": 4}, + {"matrix": [7, 5], "x": 156, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 48, "flags": 4}, + {"matrix": [7, 3], "x": 140, "y": 48, "flags": 4}, + {"matrix": [7, 2], "x": 132, "y": 48, "flags": 4}, + {"matrix": [7, 1], "x": 124, "y": 48, "flags": 4}, + {"matrix": [7, 0], "x": 116, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 120, "y": 64, "flags": 4}, + {"matrix": [8, 2], "x": 128, "y": 64, "flags": 4}, + {"matrix": [8, 3], "x": 136, "y": 64, "flags": 4}, + {"matrix": [8, 4], "x": 144, "y": 64, "flags": 4}, + {"matrix": [8, 5], "x": 152, "y": 64, "flags": 4}, + {"matrix": [8, 6], "x": 160, "y": 64, "flags": 4}, + {"matrix": [11, 6], "x": 168, "y": 64, "flags": 4}, + {"matrix": [11, 5], "x": 176, "y": 64, "flags": 4}, + {"matrix": [11, 4], "x": 184, "y": 64, "flags": 4}, + {"matrix": [11, 3], "x": 192, "y": 64, "flags": 4}, + {"matrix": [11, 2], "x": 200, "y": 64, "flags": 4}, + {"matrix": [11, 1], "x": 208, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 88, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 0, "flags": 4}, + {"matrix": [3, 5], "x": 64, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 56, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 40, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 32, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 24, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 16, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 8, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 28, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 44, "y": 16, "flags": 4}, + {"matrix": [5, 6], "x": 52, "y": 16, "flags": 4}, + {"matrix": [4, 6], "x": 60, "y": 16, "flags": 4}, + {"matrix": [3, 6], "x": 68, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 76, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 92, "y": 16, "flags": 4}, + {"matrix": [0, 7], "x": 96, "y": 32, "flags": 4}, + {"matrix": [1, 7], "x": 88, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 72, "y": 32, "flags": 4}, + {"matrix": [4, 7], "x": 64, "y": 32, "flags": 4}, + {"matrix": [5, 7], "x": 56, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 48, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 40, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 16, "y": 32, "flags": 4}, + {"matrix": [0, 2], "x": 8, "y": 32, "flags": 4}, + {"matrix": [0, 3], "x": 12, "y": 48, "flags": 4}, + {"matrix": [1, 3], "x": 20, "y": 48, "flags": 4}, + {"matrix": [2, 3], "x": 28, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 48, "flags": 4}, + {"matrix": [5, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [5, 8], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 76, "y": 48, "flags": 4}, + {"matrix": [2, 8], "x": 84, "y": 48, "flags": 4}, + {"matrix": [1, 8], "x": 92, "y": 48, "flags": 4}, + {"matrix": [0, 8], "x": 100, "y": 48, "flags": 4}, + {"matrix": [0, 9], "x": 104, "y": 64, "flags": 4}, + {"matrix": [1, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [2, 9], "x": 88, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 72, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 56, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 48, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 40, "y": 64, "flags": 4}, + {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4}, + {"matrix": [1, 4], "x": 24, "y": 64, "flags": 4}, + {"matrix": [0, 4], "x": 16, "y": 64, "flags": 4} + ], "max_brightness": 50 }, "rgblight": { diff --git a/keyboards/giabalanai/keymaps/2firmware/keymap.c b/keyboards/giabalanai/keymaps/2firmware/keymap.c index f60d1d07e0..9aa7fbc611 100644 --- a/keyboards/giabalanai/keymaps/2firmware/keymap.c +++ b/keyboards/giabalanai/keymaps/2firmware/keymap.c @@ -468,7 +468,7 @@ void keyboard_post_init_user(void) { user_config.raw = eeconfig_read_user(); // When USB cable is connected to the left side keyboard, use QWERTY layout by default. - if (is_keyboard_master() && isLeftHand) { + if (is_keyboard_master() && is_keyboard_left()) { default_layer_set(1UL << _QWERTY); } diff --git a/keyboards/gizmo_engineering/gk6/gk6.c b/keyboards/gizmo_engineering/gk6/gk6.c index fe85ecc235..a6f6d93438 100755 --- a/keyboards/gizmo_engineering/gk6/gk6.c +++ b/keyboards/gizmo_engineering/gk6/gk6.c @@ -82,102 +82,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_15, C8_15, C6_14}, //61 led59 {1, C9_16, C7_15, C6_15}, //62 led60 }; - -led_config_t g_led_config = { { - // Key Matrix to LED Index -// 1, 6, 10, 15, 20, 26, 31, 37, 42, 47, 52, 56 - {0, 5, 10, 15, 20, 26, 31, 37, 43, 48, 53, 58}, -// 2, 7, 11, 16, 21, 27, 32, 37b, 43, 48, 52b, 57 - {1, 6, 11, 16, 21, 27, 32, 38, 44, 49, 54, 59}, -// 3, 7b, 12, 17, 22, 28, 33, 38, 44, 49, 53, 58 - {2, 7, 12, 17, 22, 28, 33, 39, 45, 50, 55, 60}, -// 4, 8, 13, 18, 23, 29, 34, 39, 45, 50, 54, 59 - {3, 8, 13, 18, 23, 29, 34, 40, 46, 51, 56, 61}, -// 5, 9, 14, 19, 25, NO_LED, NO_LED, 41, 46, 51, 55, 60 - {4, 9, 14, 19, 25, NO_LED, NO_LED, 42, 47, 52, 57, 62}, -}, { - // LED Index to Physical Position - {0, 0}, // 0 - {0, 16}, // 1 - {0, 32}, // 2 - {0, 48}, // 3 - {0, 64}, // 4 - - {21, 0}, // 5 - {21, 16}, // 6 - {21, 32}, // 7 - {21, 48}, // 8 - {21, 64}, // 9 - - {41, 0}, // 10 - {41, 16}, // 11 - {41, 32}, // 12 - {41, 48}, // 13 - {41, 64}, // 14 - - {61, 0}, // 15 - {61, 16}, // 16 - {61, 32}, // 17 - {61, 48}, // 18 - {61, 64}, // 19 - - {82, 0}, // 20 - {82, 16}, // 21 - {82, 32}, // 22 - {82, 48}, // 23 - {82, 64}, // 24 - {92, 64}, // 25 - - {102, 0}, // 26 - {102, 16}, // 27 - {102, 32}, // 28 - {102, 48}, // 29 - {102, 64}, // 30 - - {122, 0}, // 31 - {122, 16}, // 32 - {122, 32}, // 33 - {122, 48}, // 34 - {122, 64}, // 35 - {112, 64}, // 36 - - {142, 0}, // 37 - {142, 16}, // 38 - {142, 32}, // 39 - {142, 48}, // 40 - {142, 64}, // 41 - {132, 64}, // 42 - - {163, 0}, // 43 - {163, 16}, // 44 - {163, 32}, // 45 - {163, 48}, // 46 - {163, 64}, // 47 - - {183, 0}, // 48 - {183, 16}, // 49 - {183, 32}, // 50 - {183, 48}, // 51 - {183, 64}, // 52 - - {203, 0}, // 53 - {203, 16}, // 54 - {203, 32}, // 55 - {203, 48}, // 56 - {203, 64}, // 57 - - {224, 0}, // 58 - {224, 16}, // 59 - {224, 32}, // 60 - {224, 48}, // 61 - {224, 64}, // 62 -}, { - // LED Index to Flag - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04 -} }; #endif diff --git a/keyboards/gizmo_engineering/gk6/keyboard.json b/keyboards/gizmo_engineering/gk6/keyboard.json index 45e5bf0706..70ab615a7c 100644 --- a/keyboards/gizmo_engineering/gk6/keyboard.json +++ b/keyboards/gizmo_engineering/gk6/keyboard.json @@ -24,6 +24,71 @@ "solid_reactive_multicross": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 21, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 21, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 41, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 41, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 41, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4}, + {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 82, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 82, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 82, "y": 48, "flags": 4}, + {"x": 82, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 92, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 102, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 102, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 102, "y": 48, "flags": 4}, + {"x": 102, "y": 64, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 32, "flags": 4}, + {"matrix": [3, 6], "x": 122, "y": 48, "flags": 4}, + {"x": 122, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 142, "y": 48, "flags": 4}, + {"x": 142, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 132, "y": 64, "flags": 4}, + {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4}, + {"matrix": [1, 8], "x": 163, "y": 16, "flags": 4}, + {"matrix": [2, 8], "x": 163, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 163, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 163, "y": 64, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 16, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 183, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 183, "y": 64, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 16, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 203, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 203, "y": 64, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 11], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 224, "y": 64, "flags": 4} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/gkeyboard/greatpad/config.h b/keyboards/gkeyboard/greatpad/config.h index 4c745779b4..3ea0c44f9b 100644 --- a/keyboards/gkeyboard/greatpad/config.h +++ b/keyboards/gkeyboard/greatpad/config.h @@ -3,9 +3,9 @@ #pragma once -#define OLED_DISPLAY_128X64 -#define I2C1_SCL_PIN GP21 -#define I2C1_SDA_PIN GP20 #define I2C_DRIVER I2CD0 +#define I2C1_SCL_PIN GP21 +#define I2C1_SDA_PIN GP20 + +#define OLED_DISPLAY_128X64 #define OLED_BRIGHTNESS 128 -#define OLED_FONT_H "lib/glcdfont.c" diff --git a/keyboards/gkeyboard/greatpad/keyboard.json b/keyboards/gkeyboard/greatpad/keyboard.json index d578111703..35ea738cae 100644 --- a/keyboards/gkeyboard/greatpad/keyboard.json +++ b/keyboards/gkeyboard/greatpad/keyboard.json @@ -145,4 +145,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/gkeyboard/greatpad/lib/glcdfont.c b/keyboards/gkeyboard/greatpad/lib/glcdfont.c deleted file mode 100644 index 10ced2bb2b..0000000000 --- a/keyboards/gkeyboard/greatpad/lib/glcdfont.c +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2023 gkeyboard (@gkeyboard) -// SPDX-License-Identifier: GPL-2.0-or-later - -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#pragma once - -#include "progmem.h" - -static const unsigned char PROGMEM font[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xB6, 0xFF, 0xB6, 0x94, 0x00, - 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00, - 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00, - 0x08, 0x08, 0x3E, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x3E, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00, - 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00, - 0x20, 0x12, 0x08, 0x24, 0x02, 0x00, - 0x37, 0x49, 0x49, 0x37, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x7F, 0x51, 0x49, 0x45, 0x7F, 0x00, - 0x08, 0x04, 0x02, 0x7F, 0x00, 0x00, - 0x71, 0x49, 0x49, 0x49, 0x4F, 0x00, - 0x41, 0x41, 0x49, 0x49, 0x77, 0x00, - 0x0F, 0x10, 0x10, 0x10, 0x7F, 0x00, - 0x4F, 0x49, 0x49, 0x49, 0x71, 0x00, - 0x7E, 0x49, 0x49, 0x49, 0x70, 0x00, - 0x01, 0x01, 0x71, 0x09, 0x07, 0x00, - 0x77, 0x49, 0x49, 0x49, 0x77, 0x00, - 0x07, 0x49, 0x49, 0x49, 0x3F, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x01, 0x01, 0x59, 0x09, 0x0F, 0x00, - 0x7F, 0x41, 0x5D, 0x59, 0x4F, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x7F, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x76, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x41, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x7E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x49, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x09, 0x00, - 0x7F, 0x41, 0x41, 0x49, 0x7B, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, - 0x70, 0x40, 0x40, 0x40, 0x7F, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x77, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x01, 0x1F, 0x01, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x0F, 0x00, - 0x7F, 0x41, 0x71, 0x41, 0x7F, 0x00, - 0x7F, 0x09, 0x09, 0x19, 0x6F, 0x00, - 0x47, 0x49, 0x49, 0x49, 0x79, 0x00, - 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x7F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x7F, 0x40, 0x7F, 0x40, 0x7F, 0x00, - 0x77, 0x08, 0x08, 0x08, 0x77, 0x00, - 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x00, - 0x61, 0x51, 0x49, 0x45, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x00, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x7F, 0x00, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, - 0x60, 0x54, 0x54, 0x54, 0x7C, 0x00, - 0x7F, 0x44, 0x44, 0x44, 0x78, 0x00, - 0x7C, 0x44, 0x44, 0x44, 0x44, 0x00, - 0x78, 0x44, 0x44, 0x44, 0x7F, 0x00, - 0x7C, 0x54, 0x54, 0x54, 0x5C, 0x00, - 0x08, 0x7F, 0x09, 0x09, 0x09, 0x00, - 0x38, 0xA4, 0xA4, 0xA4, 0xFC, 0x00, - 0x7F, 0x04, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, - 0x70, 0x40, 0x40, 0x7D, 0x00, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x76, 0x00, - 0x00, 0x00, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x7C, 0x04, 0x7C, 0x00, - 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00, - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, - 0xFC, 0x24, 0x24, 0x24, 0x38, 0x00, - 0x38, 0x24, 0x24, 0x24, 0xFC, 0x00, - 0x7C, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x5C, 0x54, 0x54, 0x54, 0x74, 0x00, - 0x04, 0x04, 0x7F, 0x04, 0x04, 0x00, - 0x7C, 0x40, 0x40, 0x40, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x7C, 0x40, 0x7C, 0x40, 0x7C, 0x00, - 0x6C, 0x10, 0x10, 0x10, 0x6C, 0x00, - 0xBC, 0xA0, 0xA0, 0xA0, 0xFC, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, - 0xF0, 0xFE, 0xFF, 0x9F, 0x0F, 0x0F, - 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, - 0x0F, 0x0F, 0x9F, 0xFF, 0xFE, 0xF0, - 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0x10, 0x08, 0x04, 0x02, 0x02, - 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, - 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, - 0x7F, 0x51, 0x55, 0x55, 0x45, 0x7F, - 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, - 0x7F, 0x41, 0x7B, 0x77, 0x41, 0x7F, - 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, - 0x7F, 0x41, 0x5D, 0x5D, 0x5D, 0x7F, - 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, - 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, - 0xE6, 0xF7, 0xF3, 0xF0, 0x60, 0x00, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0xF8, 0x1C, 0xDE, 0x1F, 0xFF, 0xFF, - 0xFF, 0x1F, 0xDE, 0x1C, 0xF8, 0x00, - 0xC0, 0xE2, 0xB4, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xB4, 0xE2, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, - 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, - 0x87, 0xE1, 0xF9, 0xF9, 0xE1, 0x87, - 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, - 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, - 0xFF, 0x00, 0x00, 0xC0, 0x30, 0x0C, - 0x33, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, - 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, - 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x38, 0xC8, 0x08, 0x08, 0x0F, - 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x7E, 0x00, 0x00, - 0x24, 0x24, 0x12, 0x12, 0x24, 0x24, - 0x48, 0x48, 0x24, 0x24, 0x12, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F, - 0x3F, 0x7F, 0x7F, 0x38, 0x10, 0x00, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, - 0x0F, 0x14, 0x21, 0x40, 0x45, 0x41, - 0x45, 0x40, 0x21, 0x14, 0x0F, 0x00, - 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, - 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x0C, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x0C, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x3F, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, - 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x10, 0x10, 0x10, 0x08, 0x04, - 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x0C, 0x30, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00, - 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x00, - 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/gl516/xr63gl/config.h b/keyboards/gl516/xr63gl/config.h index 928fde7d86..d0af2e5b1d 100644 --- a/keyboards/gl516/xr63gl/config.h +++ b/keyboards/gl516/xr63gl/config.h @@ -23,4 +23,3 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c index b3ac9906db..94aa93d8ea 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c @@ -118,119 +118,4 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18 }, // 87 LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 88 LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 44, 57, __, 64, __, 66, 58, 55}, - { 16, 15, 31, 0, 45, 59, __, 1}, - { 17, 30, 32, 60, 46, 14, 29, 2}, - { 18, 61, 33, 63, 47, 56, 62, 3}, - { 19, 20, 34, 35, 48, 49, 5, 4}, - { 22, 21, 37, 36, 51, 50, 6, 7}, - { 23, 27, 38, __, 52, 43, 12, 8}, - { 24, 13, 39, 65, 53, __, 28, 9}, - { 25, 26, 40, 41, 42, 54, 11, 10} -}, { - {14, 0 }, // 0 Esc - {28, 0 }, // 1 1 - {42, 0 }, // 2 2 - {56, 0 }, // 3 3 - {70, 0 }, // 4 4 - {84, 0 }, // 5 5 - {98, 0 }, // 6 6 - {112, 0 }, // 7 7 - {126, 0 }, // 8 8 - {140, 0 }, // 9 9 - {154, 0 }, // 10 0 - {168, 0 }, // 11 - - {182, 0 }, // 12 = - {196, 0 }, // 13 Backspace - {210, 0 }, // 14 Del - - {14, 16}, // 15 Tab - {28, 16}, // 16 Q - {42, 16}, // 17 W - {56, 16}, // 18 E - {70, 16}, // 19 R - {84, 16}, // 20 T - {98, 16}, // 21 Y - {112, 16}, // 22 U - {126, 16}, // 23 I - {140, 16}, // 24 O - {154, 16}, // 25 P - {168, 16}, // 26 [ - {182, 16}, // 27 ] - {196, 16}, // 28 \| - {210, 16}, // 29 PgUp - - {14, 32}, // 30 Caps Lock - {28, 32}, // 31 A - {42, 32}, // 32 S - {56, 32}, // 33 D - {70, 32}, // 34 F - {84, 32}, // 35 G - {98, 32}, // 36 H - {112, 32}, // 37 J - {126, 32}, // 38 K - {140, 32}, // 39 L - {154, 32}, // 40 ; - {168, 32}, // 41 ' - {196, 32}, // 42 Enter - {210, 32}, // 43 PgDn - - {14, 48}, // 44 Shift_L - {42, 48}, // 45 Z - {56, 48}, // 46 X - {70, 48}, // 47 C - {84, 48}, // 48 V - {98, 48}, // 49 B - {112, 48}, // 50 N - {126, 48}, // 51 M - {140, 48}, // 52 , - {154, 48}, // 53 . - {168, 48}, // 54 / - {182, 48}, // 55 Shift_R - {196, 48}, // 56 Up - {210, 48}, // 57 END - - {14, 64}, // 58 Ctrl_L - {28, 64}, // 59 Win_L - {42, 64}, // 60 Alt_L - {84, 64}, // 61 Space - {126, 64}, // 62 Alt_R - {140, 64}, // 63 FN - {182, 64}, // 64 Left - {196, 64}, // 65 Down - {210, 64}, // 66 Right - - {224, 0 }, // 69 LED 1 - {224, 7 }, // 70 LED 2 - {224, 14}, // 71 LED 3 - {224, 21}, // 72 LED 4 - {224, 28}, // 73 LED 5 - {224, 35}, // 74 LED 6 - {224, 42}, // 75 LED 7 - {224, 49}, // 76 LED 8 - {224, 56}, // 77 LED 9 - {224, 64}, // 78 LED 10 - {0, 0 }, // 79 LED 11 - {0, 7 }, // 80 LED 12 - {0, 14}, // 81 LED 13 - {0, 21}, // 82 LED 14 - {0, 28}, // 83 LED 15 - {0, 35}, // 84 LED 16 - {0, 42}, // 85 LED 17 - {0, 49}, // 86 LED 18 - {0, 56}, // 87 LED 19 - {0, 64}, // 88 LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json index 70c308da5f..14603e0283 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json @@ -28,6 +28,97 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4}, + {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4}, + {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 196, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4}, + {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4}, + {"matrix": [8, 4], "x": 196, "y": 32, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4}, + {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4}, + {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4}, + {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4}, + {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4}, + {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4}, + {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 7, "flags": 2}, + {"x": 224, "y": 14, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"x": 224, "y": 49, "flags": 2}, + {"x": 224, "y": 56, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 7, "flags": 2}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 49, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ] + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c index abadaccd34..bc9cfe6a83 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c @@ -119,120 +119,4 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18 }, // 86 LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 87 LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 44, 58, 45, 65, __, 67, 59, 56}, - { 16, 15, 31, 0, 46, 60, __, 1}, - { 17, 30, 32, 61, 47, 14, 29, 2}, - { 18, 62, 33, 64, 48, 57, 63, 3}, - { 19, 20, 34, 35, 49, 50, 5, 4}, - { 22, 21, 37, 36, 52, 51, 6, 7}, - { 23, 27, 38, __, 53, 43, 12, 8}, - { 24, 13, 39, 66, 54, 42, __, 9}, - { 25, 26, 40, 41, 28, 55, 11, 10} -}, { - {14, 0 }, // 0 Esc - {28, 0 }, // 1 1 - {42, 0 }, // 2 2 - {56, 0 }, // 3 3 - {70, 0 }, // 4 4 - {84, 0 }, // 5 5 - {98, 0 }, // 6 6 - {112, 0 }, // 7 7 - {126, 0 }, // 8 8 - {140, 0 }, // 9 9 - {154, 0 }, // 10 0 - {168, 0 }, // 11 - - {182, 0 }, // 12 = - {196, 0 }, // 13 Backspace - {210, 0 }, // 14 HOME - - {14, 16}, // 15 Tab - {28, 16}, // 16 Q - {42, 16}, // 17 W - {56, 16}, // 18 E - {70, 16}, // 19 R - {84, 16}, // 20 T - {98, 16}, // 21 Y - {112, 16}, // 22 U - {126, 16}, // 23 I - {140, 16}, // 24 O - {154, 16}, // 25 P - {168, 16}, // 26 [ - {182, 16}, // 27 ] - {196, 16}, // 28 ENTER - {210, 16}, // 29 PgUp - - {14, 32}, // 30 Caps Lock - {28, 32}, // 31 A - {42, 32}, // 32 S - {56, 32}, // 33 D - {70, 32}, // 34 F - {84, 32}, // 35 G - {98, 32}, // 36 H - {112, 32}, // 37 J - {126, 32}, // 38 K - {140, 32}, // 39 L - {154, 32}, // 40 ; - {168, 32}, // 41 ' - {182, 32}, // 42 k42 - {210, 32}, // 43 PgDn - - {14, 48}, // 44 Shift_L - {28, 48}, // 45 k45 - {42, 48}, // 46 Z - {56, 48}, // 47 X - {70, 48}, // 48 C - {84, 48}, // 49 V - {98, 48}, // 50 B - {112, 48}, // 51 N - {126, 48}, // 52 M - {140, 48}, // 53 , - {154, 48}, // 54 . - {168, 48}, // 55 / - {182, 48}, // 56 Shift_R - {196, 48}, // 57 Up - {210, 48}, // 58 END - - {14, 64}, // 59 Ctrl_L - {28, 64}, // 60 Win_L - {42, 64}, // 61 Alt_L - {84, 64}, // 62 Space - {126, 64}, // 63 Alt_R - {140, 64}, // 64 FN - {182, 64}, // 65 Left - {196, 64}, // 66 Down - {210, 64}, // 67 Right - - {224, 0 }, // 68 LED 1 - {224, 7 }, // 69 LED 2 - {224, 14}, // 70 LED 3 - {224, 21}, // 71 LED 4 - {224, 28}, // 72 LED 5 - {224, 35}, // 73 LED 6 - {224, 42}, // 74 LED 7 - {224, 49}, // 75 LED 8 - {224, 56}, // 76 LED 9 - {224, 64}, // 77 LED 10 - {0, 0 }, // 78 LED 11 - {0, 7 }, // 79 LED 12 - {0, 14}, // 80 LED 13 - {0, 21}, // 81 LED 14 - {0, 28}, // 82 LED 15 - {0, 35}, // 83 LED 16 - {0, 42}, // 84 LED 17 - {0, 49}, // 85 LED 18 - {0, 56}, // 86 LED 19 - {0, 64}, // 87 LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif diff --git a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json index 9240268b4f..6a2f848ea6 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json @@ -28,6 +28,98 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4}, + {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4}, + {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4}, + {"matrix": [8, 4], "x": 196, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4}, + {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 182, "y": 32, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4}, + {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 48, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4}, + {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4}, + {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4}, + {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4}, + {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4}, + {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 7, "flags": 2}, + {"x": 224, "y": 14, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"x": 224, "y": 49, "flags": 2}, + {"x": 224, "y": 56, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 7, "flags": 2}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 49, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ] + }, "community_layouts": ["65_iso_blocker"], "layouts": { "LAYOUT_65_iso_blocker": { diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c index 5b2b5893f7..dc61fd813f 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c @@ -151,160 +151,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 119, LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 120, LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 0, 18, 36, 54, 70, 87, 14, 94}, - { 1, 19, 37, 55, __, 88, 15, 82}, - { 2, 20, 38, 56, 71, 89, 16, 95}, - { 3, 21, 39, 57, 72, __, 17, 96}, - { 4, 22, 40, 58, 73, __, 32, 97}, - { 5, 23, 41, 59, 74, __, 33, 98}, - { 6, 24, 42, 60, 75, 90, 34, 83}, - { 7, 25, 43, 61, 76, __, 35, 84}, - { 8, 26, 44, 62, 77, __, 50, 85}, - { 9, 27, 45, 63, 78, 91, 51, 86}, - {10, 28, 46, 64, 79, 92, 52, 67}, - {11, 29, 47, 65, 80, __, 53, 68}, - {12, 30, 48, __, __, 93, __, 69}, - {13, 31, 49, 66, 81, __, __, __} -}, { - { 11, 0}, // 0, k00, Esc - { 22, 0}, // 1, k10, F1 - { 33, 0}, // 2, k20, F2 - { 44, 0}, // 3, k30, F3 - { 55, 0}, // 4, k40, F4 - { 66, 0}, // 5, k50, F5 - { 77, 0}, // 6, k60, F6 - { 88, 0}, // 7, k70, F7 - { 99, 0}, // 8, k80, F8 - { 110, 0}, // 9, k90, F9 - { 121, 0}, // 10, ka0, F10 - { 132, 0}, // 11, kb0, F11 - { 143, 0}, // 12, kc0, F12 - { 154, 0}, // 13, kd0, Printscreen - { 165, 0}, // 14, k06, Delete - { 176, 0}, // 15, k16, Insert - { 187, 0}, // 16, k26, Page Up - { 198, 0}, // 17, k36, Page Down - - { 11, 11}, // 18, k01, ` - { 22, 11}, // 19, k11, 1 - { 33, 11}, // 20, k21, 2 - { 44, 11}, // 21, k31, 3 - { 55, 11}, // 22, k41, 4 - { 66, 11}, // 23, k51, 5 - { 77, 11}, // 24, k61, 6 - { 88, 11}, // 25, k71, 7 - { 99, 11}, // 26, k81, 8 - { 110, 11}, // 27, k91, 9 - { 121, 11}, // 28, ka1, 0 - { 132, 11}, // 29, kb1, - - { 143, 11}, // 30, kc1, = - { 154, 11}, // 31, kd1, Backspace - { 165, 11}, // 32, k46, Num Lock - { 176, 11}, // 33, k56, Num / - { 187, 11}, // 34, k66, Num * - { 198, 11}, // 35, k76, Num - - - { 11, 22}, // 36, k02, Tab - { 22, 22}, // 37, k12, Q - { 33, 22}, // 38, k22, W - { 44, 22}, // 39, k32, E - { 55, 22}, // 40, k42, R - { 66, 22}, // 41, k52, T - { 77, 22}, // 42, k62, Y - { 88, 22}, // 43, k72, U - { 99, 22}, // 44, k82, I - { 110, 22}, // 45, k92, O - { 121, 22}, // 46, ka2, P - { 132, 22}, // 47, kb2, [ - { 143, 22}, // 48, kc2, ] - { 154, 22}, // 49, kd3, "\\" - { 165, 22}, // 50, k86, Num 7 - { 176, 22}, // 51, k96, Num 8 - { 187, 22}, // 52, ka6, Num 9 - { 198, 22}, // 53, kb6, Num + - - { 11, 33}, // 54, k03, Caps Lock - { 22, 33}, // 55, k13, A - { 33, 33}, // 56, k23, S - { 44, 33}, // 57, k33, D - { 55, 33}, // 58, k43, F - { 66, 33}, // 59, k53, G - { 77, 33}, // 60, k63, H - { 88, 33}, // 61, k73, J - { 99, 33}, // 62, k83, K - { 110, 33}, // 63, k93, L - { 121, 33}, // 64, ka3, ; - { 132, 33}, // 65, kb3, ' - { 154, 33}, // 66, kc3, Enter - { 165, 33}, // 67, ka7, Num 4 - { 176, 33}, // 68, kb7, Num 5 - { 187, 33}, // 69, kc7, Num 6 - - { 11, 44}, // 70, k04, Shift_L - { 33, 44}, // 71, k24, Z - { 44, 44}, // 72, k34, X - { 55, 44}, // 73, k44, C - { 66, 44}, // 74, k54, V - { 77, 44}, // 75, k64, B - { 88, 44}, // 76, k74, N - { 99, 44}, // 77, k84, M - { 110, 44}, // 78, k94, , - { 121, 44}, // 79, ka4, . - { 132, 44}, // 80, kb4, / - { 143, 44}, // 81, kd4, Shift_R - { 154, 44}, // 82, k17, Up - { 165, 44}, // 83, k67, Num 1 - { 176, 44}, // 84, k77, Num 2 - { 187, 44}, // 85, k87, Num 3 - { 198, 44}, // 86, k97, Enter_R - - { 11, 55}, // 87, k05, Ctrl_L - { 22, 55}, // 88, k15, Win_L - { 33, 55}, // 89, k25, Alt_L - { 77, 55}, // 90, k65, Space - { 110, 55}, // 91, k95, Alt_R - { 121, 55}, // 92, ka5, FN - { 132, 55}, // 93, kc5, Ctrl_R - { 143, 55}, // 94, k07, Left - { 154, 55}, // 95, k27, Down - { 165, 55}, // 96, k37, Right - { 176, 55}, // 97, k47, Num 0 - { 187, 55}, // 98, k57, Num . - - { 0, 0}, // 101, LED 1 - { 0, 6}, // 102, LED 2 - { 0, 12}, // 103, LED 3 - { 0, 18}, // 104, LED 4 - { 0, 24}, // 105, LED 5 - { 0, 30}, // 106, LED 6 - { 0, 36}, // 107, LED 7 - { 0, 42}, // 108, LED 8 - { 0, 48}, // 109, LED 9 - { 0, 54}, // 110, LED 10 - { 209, 0}, // 111, LED 11 - { 209, 6}, // 112, LED 12 - { 209, 12}, // 113, LED 13 - { 209, 18}, // 114, LED 14 - { 209, 24}, // 115, LED 15 - { 209, 30}, // 116, LED 16 - { 209, 36}, // 117, LED 17 - { 209, 42}, // 118, LED 18 - { 209, 48}, // 119, LED 19 - { 209, 54} // 120, LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif #ifdef EEPROM_ENABLE diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json index 0646be8c88..74332b1f84 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json @@ -32,6 +32,129 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4}, + {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4}, + {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4}, + {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4}, + {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4}, + {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4}, + {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4}, + {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4}, + {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4}, + {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4}, + {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4}, + {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4}, + {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4}, + {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4}, + {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4}, + {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4}, + {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4}, + {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4}, + {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1}, + {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4}, + {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4}, + {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4}, + {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4}, + {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4}, + {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4}, + {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4}, + {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4}, + {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4}, + {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4}, + {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4}, + {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4}, + {"matrix": [13, 2], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4}, + {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4}, + {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4}, + {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4}, + {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1}, + {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4}, + {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4}, + {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4}, + {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4}, + {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4}, + {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4}, + {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4}, + {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4}, + {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4}, + {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4}, + {"matrix": [13, 3], "x": 154, "y": 33, "flags": 4}, + {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4}, + {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4}, + {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4}, + {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4}, + {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4}, + {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4}, + {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4}, + {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4}, + {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4}, + {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4}, + {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4}, + {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4}, + {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4}, + {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4}, + {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4}, + {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4}, + {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4}, + {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4}, + {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4}, + {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4}, + {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4}, + {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4}, + {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4}, + {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4}, + {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4}, + {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4}, + {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4}, + {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4}, + {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4}, + {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 6, "flags": 2}, + {"x": 0, "y": 12, "flags": 2}, + {"x": 0, "y": 18, "flags": 2}, + {"x": 0, "y": 24, "flags": 2}, + {"x": 0, "y": 30, "flags": 2}, + {"x": 0, "y": 36, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 54, "flags": 2}, + {"x": 209, "y": 0, "flags": 2}, + {"x": 209, "y": 6, "flags": 2}, + {"x": 209, "y": 12, "flags": 2}, + {"x": 209, "y": 18, "flags": 2}, + {"x": 209, "y": 24, "flags": 2}, + {"x": 209, "y": 30, "flags": 2}, + {"x": 209, "y": 36, "flags": 2}, + {"x": 209, "y": 42, "flags": 2}, + {"x": 209, "y": 48, "flags": 2}, + {"x": 209, "y": 54, "flags": 2} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c index 9a5c357307..7da63dfae6 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c @@ -152,155 +152,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 119, LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 120, LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 0, 18, 36, 54, 70, 88, 14, 95}, - { 1, 19, 37, 55, 71, 89, 15, 83}, - { 2, 20, 38, 56, 72, 90, 16, 96}, - { 3, 21, 39, 57, 73, __, 17, 97}, - { 4, 22, 40, 58, 74, __, 32, 98}, - { 5, 23, 41, 59, 75, __, 33, 99}, - { 6, 24, 42, 60, 76, 91, 34, 84}, - { 7, 25, 43, 61, 77, __, 35, 85}, - { 8, 26, 44, 62, 78, __, 50, 86}, - { 9, 27, 45, 63, 79, 92, 51, 87}, - {10, 28, 46, 64, 80, 93, 52, 67}, - {11, 29, 47, 65, 81, __, 53, 68}, - {12, 30, 48, 66, __, 94, __, 69}, - {13, 31, __, 49, 82, __, __, __} -}, { - { 11, 0}, // 0, k00, Esc - { 22, 0}, // 1, k10, F1 - { 33, 0}, // 2, k20, F2 - { 44, 0}, // 3, k30, F3 - { 55, 0}, // 4, k40, F4 - { 66, 0}, // 5, k50, F5 - { 77, 0}, // 6, k60, F6 - { 88, 0}, // 7, k70, F7 - { 99, 0}, // 8, k80, F8 - { 110, 0}, // 9, k90, F9 - { 121, 0}, // 10, ka0, F10 - { 132, 0}, // 11, kb0, F11 - { 143, 0}, // 12, kc0, F12 - { 154, 0}, // 13, kd0, Printscreen - { 165, 0}, // 14, k06, Delete - { 176, 0}, // 15, k16, Insert - { 187, 0}, // 16, k26, Page Up - { 198, 0}, // 17, k36, Page Down - { 11, 11}, // 18, k01, ` - { 22, 11}, // 19, k11, 1 - { 33, 11}, // 20, k21, 2 - { 44, 11}, // 21, k31, 3 - { 55, 11}, // 22, k41, 4 - { 66, 11}, // 23, k51, 5 - { 77, 11}, // 24, k61, 6 - { 88, 11}, // 25, k71, 7 - { 99, 11}, // 26, k81, 8 - { 110, 11}, // 27, k91, 9 - { 121, 11}, // 28, ka1, 0 - { 132, 11}, // 29, kb1, - - { 143, 11}, // 30, kc1, = - { 154, 11}, // 31, kd1, Backspace - { 165, 11}, // 32, k46, Num Lock - { 176, 11}, // 33, k56, Num / - { 187, 11}, // 34, k66, Num * - { 198, 11}, // 35, k76, Num - - { 11, 22}, // 36, k02, Tab - { 22, 22}, // 37, k12, Q - { 33, 22}, // 38, k22, W - { 44, 22}, // 39, k32, E - { 55, 22}, // 40, k42, R - { 66, 22}, // 41, k52, T - { 77, 22}, // 42, k62, Y - { 88, 22}, // 43, k72, U - { 99, 22}, // 44, k82, I - { 110, 22}, // 45, k92, O - { 121, 22}, // 46, ka2, P - { 132, 22}, // 47, kb2, [ - { 143, 22}, // 48, kc2, ] - { 154, 22}, // 49, kd3, Enter - { 165, 22}, // 50, k86, Num 7 - { 176, 22}, // 51, k96, Num 8 - { 187, 22}, // 52, ka6, Num 9 - { 198, 22}, // 53, kb6, Num + - { 11, 33}, // 54, k03, Caps Lock - { 22, 33}, // 55, k13, A - { 33, 33}, // 56, k23, S - { 44, 33}, // 57, k33, D - { 55, 33}, // 58, k43, F - { 66, 33}, // 59, k53, G - { 77, 33}, // 60, k63, H - { 88, 33}, // 61, k73, J - { 99, 33}, // 62, k83, K - { 110, 33}, // 63, k93, L - { 121, 33}, // 64, ka3, ; - { 132, 33}, // 65, kb3, ' - { 143, 33}, // 66, kc3, # - { 165, 33}, // 67, ka7, Num 4 - { 176, 33}, // 68, kb7, Num 5 - { 187, 33}, // 69, kc7, Num 6 - { 11, 44}, // 70, k04, Shift_L - { 22, 44}, // 71, k14, "\\" - { 33, 44}, // 72, k24, Z - { 44, 44}, // 73, k34, X - { 55, 44}, // 74, k44, C - { 66, 44}, // 75, k54, V - { 77, 44}, // 76, k64, B - { 88, 44}, // 77, k74, N - { 99, 44}, // 78, k84, M - { 110, 44}, // 79, k94, , - { 121, 44}, // 80, ka4, . - { 132, 44}, // 81, kb4, / - { 143, 44}, // 82, kd4, Shift_R - { 154, 44}, // 83, k17, Up - { 165, 44}, // 84, k67, Num 1 - { 176, 44}, // 85, k77, Num 2 - { 187, 44}, // 86, k87, Num 3 - { 198, 44}, // 87, k97, Enter_R - { 11, 55}, // 88, k05, Ctrl_L - { 22, 55}, // 89, k15, Win_L - { 33, 55}, // 90, k25, Alt_L - { 77, 55}, // 91, k65, Space - { 110, 55}, // 92, k95, Alt_R - { 121, 55}, // 93, ka5, FN - { 132, 55}, // 94, kc5, Ctrl_R - { 143, 55}, // 95, k07, Left - { 154, 55}, // 96, k27, Down - { 165, 55}, // 97, k37, Right - { 176, 55}, // 98, k47, Num 0 - { 187, 55}, // 99, k57, Num . - { 0, 0}, // 101, LED 1 - { 0, 6}, // 102, LED 2 - { 0, 12}, // 103, LED 3 - { 0, 18}, // 104, LED 4 - { 0, 24}, // 105, LED 5 - { 0, 30}, // 106, LED 6 - { 0, 36}, // 107, LED 7 - { 0, 42}, // 108, LED 8 - { 0, 48}, // 109, LED 9 - { 0, 54}, // 110, LED 10 - { 209, 0}, // 111, LED 11 - { 209, 6}, // 112, LED 12 - { 209, 12}, // 113, LED 13 - { 209, 18}, // 114, LED 14 - { 209, 24}, // 115, LED 15 - { 209, 30}, // 116, LED 16 - { 209, 36}, // 117, LED 17 - { 209, 42}, // 118, LED 18 - { 209, 48}, // 119, LED 19 - { 209, 54} // 120, LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif #ifdef EEPROM_ENABLE diff --git a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json index 679881a94b..3463293a70 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json @@ -32,6 +32,130 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4}, + {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4}, + {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4}, + {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4}, + {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4}, + {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4}, + {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4}, + {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4}, + {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4}, + {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4}, + {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4}, + {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4}, + {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4}, + {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4}, + {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4}, + {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4}, + {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4}, + {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4}, + {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1}, + {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4}, + {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4}, + {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4}, + {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4}, + {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4}, + {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4}, + {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4}, + {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4}, + {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4}, + {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4}, + {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4}, + {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4}, + {"matrix": [13, 3], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4}, + {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4}, + {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4}, + {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4}, + {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1}, + {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4}, + {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4}, + {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4}, + {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4}, + {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4}, + {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4}, + {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4}, + {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4}, + {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4}, + {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4}, + {"matrix": [12, 3], "x": 143, "y": 33, "flags": 4}, + {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4}, + {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4}, + {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4}, + {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4}, + {"matrix": [1, 4], "x": 22, "y": 44, "flags": 4}, + {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4}, + {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4}, + {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4}, + {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4}, + {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4}, + {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4}, + {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4}, + {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4}, + {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4}, + {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4}, + {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4}, + {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4}, + {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4}, + {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4}, + {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4}, + {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4}, + {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4}, + {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4}, + {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4}, + {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4}, + {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4}, + {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4}, + {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4}, + {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4}, + {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4}, + {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 6, "flags": 2}, + {"x": 0, "y": 12, "flags": 2}, + {"x": 0, "y": 18, "flags": 2}, + {"x": 0, "y": 24, "flags": 2}, + {"x": 0, "y": 30, "flags": 2}, + {"x": 0, "y": 36, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 54, "flags": 2}, + {"x": 209, "y": 0, "flags": 2}, + {"x": 209, "y": 6, "flags": 2}, + {"x": 209, "y": 12, "flags": 2}, + {"x": 209, "y": 18, "flags": 2}, + {"x": 209, "y": 24, "flags": 2}, + {"x": 209, "y": 30, "flags": 2}, + {"x": 209, "y": 36, "flags": 2}, + {"x": 209, "y": 42, "flags": 2}, + {"x": 209, "y": 48, "flags": 2}, + {"x": 209, "y": 54, "flags": 2} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/numpad/keyboard.json b/keyboards/gmmk/numpad/keyboard.json index f5d64bf6cb..23dd46ca1a 100644 --- a/keyboards/gmmk/numpad/keyboard.json +++ b/keyboards/gmmk/numpad/keyboard.json @@ -69,7 +69,40 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "aw20216s" + "driver": "aw20216s", + "layout": [ + {"matrix": [0, 0], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 179, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 90, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 134, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 179, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 90, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 134, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 134, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 179, "y": 56, "flags": 4}, + {"matrix": [4, 0], "x": 67, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 134, "y": 64, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 11, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 43, "flags": 2}, + {"x": 0, "y": 53, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 11, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 43, "flags": 2}, + {"x": 224, "y": 53, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ] }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", diff --git a/keyboards/gmmk/numpad/keymaps/default/keymap.c b/keyboards/gmmk/numpad/keymaps/default/keymap.c index b7f9ff46b3..380fc373c0 100644 --- a/keyboards/gmmk/numpad/keymaps/default/keymap.c +++ b/keyboards/gmmk/numpad/keymaps/default/keymap.c @@ -57,4 +57,4 @@ void slider(void) { void housekeeping_task_user(void) { slider(); -} \ No newline at end of file +} diff --git a/keyboards/gmmk/numpad/matrix.c b/keyboards/gmmk/numpad/matrix.c index 8d6e641a77..18a4ee7c46 100644 --- a/keyboards/gmmk/numpad/matrix.c +++ b/keyboards/gmmk/numpad/matrix.c @@ -1,9 +1,6 @@ // Copyright 2023 Cameron Varley (@RustedAperture) // SPDX-License-Identifier: GPL-2.0-or-later -/* - * scan matrix - */ #include "matrix.h" #include #include "atomic_util.h" @@ -11,13 +8,8 @@ #include "print.h" #include "debug.h" -/* matrix state(1:on, 0:off) */ -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -#define MATRIX_ROW_SHIFTER ((matrix_row_t)1) static inline void gpio_atomic_set_pin_output_low(pin_t pin) { ATOMIC_BLOCK_FORCEON { diff --git a/keyboards/gmmk/numpad/mcuconf.h b/keyboards/gmmk/numpad/mcuconf.h index a07efdbffb..cf2de01e8a 100644 --- a/keyboards/gmmk/numpad/mcuconf.h +++ b/keyboards/gmmk/numpad/mcuconf.h @@ -23,4 +23,4 @@ #define WB32_SPI_USE_QSPI TRUE // #undef WB32_ADC_USE_ADC1 -#define WB32_ADC_USE_ADC1 TRUE \ No newline at end of file +#define WB32_ADC_USE_ADC1 TRUE diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c index 87446d8f49..fa8a28bf8b 100644 --- a/keyboards/gmmk/numpad/numpad.c +++ b/keyboards/gmmk/numpad/numpad.c @@ -59,54 +59,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW7_CS10, SW7_CS11, SW7_CS12 }, // 30 LED33 }; -led_config_t g_led_config = {{ - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9, 10, NO_LED}, - { 11, 12, 13, 14 }, - { 15, NO_LED, NO_LED, 16 } -}, { - {45, 0 }, // 0 NUM - {90, 0 }, // 1 / - {134, 0 }, // 2 * - {179, 0 }, // 3 - - {45, 16 }, // 4 7 - {90, 16 }, // 5 8 - {134, 16 }, // 6 9 - {179, 24 }, // 7 + - {45, 32 }, // 8 4 - {90, 32 }, // 9 5 - {134, 32 }, // 10 6 - {45, 48 }, // 11 1 - {90, 48 }, // 12 2 - {134, 48 }, // 13 3 - {179, 56 }, // 14 ENTER - {67, 64 }, // 15 0 - {134, 64 }, // 16 . - {0, 0 }, // 17 LED18 - {0, 11 }, // 18 LED19 - {0, 21 }, // 19 LED20 - {0, 32 }, // 20 LED21 - {0, 43 }, // 21 LED22 - {0, 53 }, // 22 LED23 - {0, 64 }, // 23 LED24 - {224, 0 }, // 24 LED27 - {224, 11 }, // 25 LED28 - {224, 21 }, // 26 LED29 - {224, 32 }, // 27 LED30 - {224, 43 }, // 28 LED31 - {224, 53 }, // 29 LED32 - {224, 64 } // 30 LED33 -}, { - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, - 4, 4, 4, 4, - 4, 4, - 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2 -} }; - # ifdef AW20216S_PW_EN_PIN void keyboard_pre_init_kb(void) { diff --git a/keyboards/gmmk/numpad/post_config.h b/keyboards/gmmk/numpad/post_config.h index 6ee57f4439..b66c32f50b 100644 --- a/keyboards/gmmk/numpad/post_config.h +++ b/keyboards/gmmk/numpad/post_config.h @@ -18,4 +18,4 @@ #ifndef TAP_CODE_DELAY # define TAP_CODE_DELAY 10 -#endif \ No newline at end of file +#endif diff --git a/keyboards/gmmk/numpad/readme.md b/keyboards/gmmk/numpad/readme.md index d40b2b8c58..6246e63076 100644 --- a/keyboards/gmmk/numpad/readme.md +++ b/keyboards/gmmk/numpad/readme.md @@ -37,4 +37,4 @@ The Button is set to KC_CALC by default and is located at 2,3 on the matrix ## Broken -* Bluetooth functionality \ No newline at end of file +* Bluetooth functionality diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c index 77e0a8c1a1..05365ee9f9 100644 --- a/keyboards/gmmk/pro/rev1/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c @@ -18,124 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 }, - { 8, 2, 9, 0, 10, 75, 1, 7 }, - { 14, 3, 15, NO_LED, 16, 86, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 89, 47, 34, 48, 72, 78, 45 }, - { 52, 39, 53, 97, 54, 82, 44, 51 }, - { 58, 63, 59, 64, NO_LED, 60, 62, 57 }, - { 11, 90, 55, 17, 33, 49, NO_LED, 69 }, - { NO_LED, 85, 93, 61, 96, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, ~, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {9, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, ?, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {0, 8}, // 67, LED, l01 - {224, 8}, // 68, LED, l11 - {202, 0}, // 69, Prt, k97 - {0, 15}, // 70, LED, l02 - {224, 15}, // 71, LED, l12 - {224, 15}, // 72, Del, k65 - {0, 21}, // 73, LED, l03 - {224, 21}, // 74, LED, l13 - {224, 26}, // 75, PgUp, k15 - {0, 28}, // 76, LED, l04 - {224, 28}, // 77, LED, l14 - {173, 15}, // 78, =, k66 - {220, 64}, // 79, Right, k05 - {0, 35}, // 80, LED, l05 - {224, 35}, // 81, LED, l15 - {224, 49}, // 82, End, k75 - {0, 42}, // 83, LED, l06 - {224, 42}, // 84, LED, l16 - {195, 15}, // 85, BSpc, ka1 - {224, 38}, // 86, PgDn, k25 - {0, 48}, // 87, LED, l07 - {224, 48}, // 88, LED, l17 - {181, 26}, // 89, ], k61 - {182, 49}, // 90, Sh_R, k91 - {0, 55}, // 91, LED, l08 - {224, 55}, // 92, LED, l18 - {199, 26}, // 93, \, ka2 - {206, 52}, // 94, Up, k35 - {191, 64}, // 95, Left, k03 - {193, 38}, // 96, Enter, ka4 - {206, 64} // 97, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, - 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev1/ansi/keyboard.json b/keyboards/gmmk/pro/rev1/ansi/keyboard.json index fbb9107d16..e7bf3d6a59 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev1/ansi/keyboard.json @@ -34,6 +34,108 @@ }, "processor": "STM32F303", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c index 932c6a1f49..1ba3ddc404 100644 --- a/keyboards/gmmk/pro/rev1/iso/iso.c +++ b/keyboards/gmmk/pro/rev1/iso/iso.c @@ -18,125 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 }, - { 8, 2, 9, 0, 10, 76, 1, 7 }, - { 14, 3, 15, 67, 16, 87, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 90, 47, 34, 48, 73, 79, 45 }, - { 52, 39, 53, 98, 54, 83, 44, 51 }, - { 58, 63, 59, 64, 95, 60, 62, 57 }, - { 11, 91, 55, 17, 33, 49, NO_LED, 70 }, - { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, `, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {2, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, /, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {18, 49}, // 67, \, k23 - {0, 8}, // 68, LED, l01 - {224, 8}, // 69, LED, l11 - {202, 0}, // 70, Prt, k97 - {0, 15}, // 71, LED, l02 - {224, 15}, // 72, LED, l12 - {224, 15}, // 73, Del, k65 - {0, 21}, // 74, LED, l03 - {224, 21}, // 75, LED, l13 - {224, 26}, // 76, PgUp, k15 - {0, 28}, // 77, LED, l04 - {224, 28}, // 78, LED, l14 - {173, 15}, // 79, =, k66 - {220, 64}, // 80, Right, k05 - {0, 35}, // 81, LED, l05 - {224, 35}, // 82, LED, l15 - {224, 49}, // 83, End, k75 - {0, 42}, // 84, LED, l06 - {224, 42}, // 85, LED, l16 - {195, 15}, // 86, BSpc, ka1 - {224, 38}, // 87, PgDn, k25 - {0, 48}, // 88, LED, l07 - {224, 48}, // 89, LED, l17 - {181, 26}, // 90, ], k61 - {182, 49}, // 91, Sh_R, k91 - {0, 55}, // 92, LED, l08 - {224, 55}, // 93, LED, l18 - {206, 52}, // 94, Up, k35 - {184, 38}, // 95, #, k84 - {191, 64}, // 96, Left, k03 - {201, 26}, // 97, Enter, ka4 - {206, 64}, // 98, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, - 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev1/iso/keyboard.json b/keyboards/gmmk/pro/rev1/iso/keyboard.json index 7506f8952d..a30e7cbb6d 100644 --- a/keyboards/gmmk/pro/rev1/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev1/iso/keyboard.json @@ -34,6 +34,109 @@ }, "processor": "STM32F303", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c index a3f957ef0a..8b7695095f 100644 --- a/keyboards/gmmk/pro/rev2/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c @@ -18,124 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 }, - { 8, 2, 9, 0, 10, 75, 1, 7 }, - { 14, 3, 15, NO_LED, 16, 86, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 89, 47, 34, 48, 72, 78, 45 }, - { 52, 39, 53, 97, 54, 82, 44, 51 }, - { 58, 63, 59, 64, NO_LED, 60, 62, 57 }, - { 11, 90, 55, 17, 33, 49, NO_LED, 69 }, - { NO_LED, 85, 93, 61, 96, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, ~, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {9, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, ?, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {0, 8}, // 67, LED, l01 - {224, 8}, // 68, LED, l11 - {202, 0}, // 69, Prt, k97 - {0, 15}, // 70, LED, l02 - {224, 15}, // 71, LED, l12 - {224, 15}, // 72, Del, k65 - {0, 21}, // 73, LED, l03 - {224, 21}, // 74, LED, l13 - {224, 26}, // 75, PgUp, k15 - {0, 28}, // 76, LED, l04 - {224, 28}, // 77, LED, l14 - {173, 15}, // 78, =, k66 - {220, 64}, // 79, Right, k05 - {0, 35}, // 80, LED, l05 - {224, 35}, // 81, LED, l15 - {224, 49}, // 82, End, k75 - {0, 42}, // 83, LED, l06 - {224, 42}, // 84, LED, l16 - {195, 15}, // 85, BSpc, ka1 - {224, 38}, // 86, PgDn, k25 - {0, 48}, // 87, LED, l07 - {224, 48}, // 88, LED, l17 - {181, 26}, // 89, ], k61 - {182, 49}, // 90, Sh_R, k91 - {0, 55}, // 91, LED, l08 - {224, 55}, // 92, LED, l18 - {199, 26}, // 93, \, ka2 - {206, 52}, // 94, Up, k35 - {191, 64}, // 95, Left, k03 - {193, 38}, // 96, Enter, ka4 - {206, 64} // 97, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, - 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev2/ansi/keyboard.json b/keyboards/gmmk/pro/rev2/ansi/keyboard.json index 4e0fdfccd9..f8eb11f10b 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev2/ansi/keyboard.json @@ -41,6 +41,108 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c index 2863121e7f..fc80da5cfc 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c @@ -65,4 +65,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c index 7a34f2432f..ce211ea47d 100644 --- a/keyboards/gmmk/pro/rev2/iso/iso.c +++ b/keyboards/gmmk/pro/rev2/iso/iso.c @@ -18,125 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 }, - { 8, 2, 9, 0, 10, 76, 1, 7 }, - { 14, 3, 15, 67, 16, 87, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 90, 47, 34, 48, 73, 79, 45 }, - { 52, 39, 53, 98, 54, 83, 44, 51 }, - { 58, 63, 59, 64, 95, 60, 62, 57 }, - { 11, 91, 55, 17, 33, 49, NO_LED, 70 }, - { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, `, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {2, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, /, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {18, 49}, // 67, \, k23 - {0, 8}, // 68, LED, l01 - {224, 8}, // 69, LED, l11 - {202, 0}, // 70, Prt, k97 - {0, 15}, // 71, LED, l02 - {224, 15}, // 72, LED, l12 - {224, 15}, // 73, Del, k65 - {0, 21}, // 74, LED, l03 - {224, 21}, // 75, LED, l13 - {224, 26}, // 76, PgUp, k15 - {0, 28}, // 77, LED, l04 - {224, 28}, // 78, LED, l14 - {173, 15}, // 79, =, k66 - {220, 64}, // 80, Right, k05 - {0, 35}, // 81, LED, l05 - {224, 35}, // 82, LED, l15 - {224, 49}, // 83, End, k75 - {0, 42}, // 84, LED, l06 - {224, 42}, // 85, LED, l16 - {195, 15}, // 86, BSpc, ka1 - {224, 38}, // 87, PgDn, k25 - {0, 48}, // 88, LED, l07 - {224, 48}, // 89, LED, l17 - {181, 26}, // 90, ], k61 - {182, 49}, // 91, Sh_R, k91 - {0, 55}, // 92, LED, l08 - {224, 55}, // 93, LED, l18 - {206, 52}, // 94, Up, k35 - {184, 38}, // 95, #, k84 - {191, 64}, // 96, Left, k03 - {201, 26}, // 97, Enter, ka4 - {206, 64}, // 98, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, - 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev2/iso/keyboard.json b/keyboards/gmmk/pro/rev2/iso/keyboard.json index 01db9dc22f..886d9e8c55 100644 --- a/keyboards/gmmk/pro/rev2/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev2/iso/keyboard.json @@ -41,6 +41,109 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c index 52e1434f00..40fb06c8a6 100644 --- a/keyboards/gopolar/gg86/gg86.c +++ b/keyboards/gopolar/gg86/gg86.c @@ -25,69 +25,6 @@ #include #include -led_config_t g_led_config = { { - { 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, NO_LED, 74, 73, 72 }, - { 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 }, - { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, NO_LED, NO_LED, NO_LED }, - { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, NO_LED, 10, NO_LED }, - { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, 4, 5, 6, NO_LED, 7, 8, 9 } -}, { - // Key matrix (0 -> 87) - {3 , 64}, {19 , 64}, {36 , 64}, {91 , 64}, {146, 64}, {162, 64}, {179, 64}, {198, 64}, {211, 64}, {224, 64}, - {211, 52}, {182, 52}, {170, 52}, {146, 52}, {133, 52}, {120, 52}, {107, 52}, {94 , 52}, {81 , 52}, {68 , 52}, {55 , 52}, {42 , 52}, {29 , 52}, {16 , 52}, {2 , 52}, - {2 , 41}, {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41}, - {224, 29}, {211, 29}, {198, 29}, {179, 29}, {162, 29}, {149, 29}, {136, 29}, {123, 29}, {110, 29}, {97 , 29}, {84 , 29}, {71 , 29}, {58 , 29}, {45 , 29}, {32 , 29}, {19 , 29}, {3 , 29}, - {0 , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17}, - {224, 0}, {211, 0}, {198, 0}, {182, 0}, {169, 0}, {156, 0}, {143, 0}, {123, 0}, {110, 0}, {97 , 0}, {84 , 0}, {65 , 0}, {52 , 0}, {39 , 0}, {26 , 0}, {0 , 0}, - - // Underglow (88 -> 99) - {1 , 6}, {50 , 6}, {89 , 6}, {135, 6}, {176, 6}, {198, 6}, {221, 55}, {192, 58}, {138, 59}, {96 , 61}, {42 , 59}, {7 , 60}, -}, { - // Key matrix (0 -> 87) - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, - 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - - // Underglow (88 -> 99) - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_UNDERGLOW): { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - } - return process_record_user(keycode, record); -} - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; @@ -114,7 +51,7 @@ bool rgb_matrix_indicators_kb(void) { #endif #ifdef OLED_ENABLE - uint16_t startup_timer; + uint16_t startup_timer; oled_rotation_t oled_init_kb(oled_rotation_t rotation) { startup_timer = timer_read(); @@ -129,7 +66,7 @@ bool rgb_matrix_indicators_kb(void) { render_logo(); } else { finished_logo = true; - + if (!oled_task_user()) { return false; } diff --git a/keyboards/gopolar/gg86/keyboard.json b/keyboards/gopolar/gg86/keyboard.json index 3412a7c63c..dc182f6977 100644 --- a/keyboards/gopolar/gg86/keyboard.json +++ b/keyboards/gopolar/gg86/keyboard.json @@ -59,6 +59,108 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 91, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 146, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 182, "y": 52, "flags": 1}, + {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 41, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"x": 1, "y": 6, "flags": 2}, + {"x": 50, "y": 6, "flags": 2}, + {"x": 89, "y": 6, "flags": 2}, + {"x": 135, "y": 6, "flags": 2}, + {"x": 176, "y": 6, "flags": 2}, + {"x": 198, "y": 6, "flags": 2}, + {"x": 221, "y": 55, "flags": 2}, + {"x": 192, "y": 58, "flags": 2}, + {"x": 138, "y": 59, "flags": 2}, + {"x": 96, "y": 61, "flags": 2}, + {"x": 42, "y": 59, "flags": 2}, + {"x": 7, "y": 60, "flags": 2} + ], "max_brightness": 150 }, "matrix_pins": { diff --git a/keyboards/gopolar/gg86/lib/glcdfont.c b/keyboards/gopolar/gg86/lib/glcdfont.c index 6b2294ea58..400aed8e53 100644 --- a/keyboards/gopolar/gg86/lib/glcdfont.c +++ b/keyboards/gopolar/gg86/lib/glcdfont.c @@ -246,4 +246,4 @@ const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; \ No newline at end of file +}; diff --git a/keyboards/gray_studio/space65r3/readme.md b/keyboards/gray_studio/space65r3/readme.md index 2de127bd7a..d13846ebe3 100644 --- a/keyboards/gray_studio/space65r3/readme.md +++ b/keyboards/gray_studio/space65r3/readme.md @@ -17,4 +17,4 @@ Flashing example for this keyboard: ## Bootloader * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -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). \ No newline at end of file +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/gray_studio/think65v3/readme.md b/keyboards/gray_studio/think65v3/readme.md index dc09a00d1d..8b8b42a03c 100644 --- a/keyboards/gray_studio/think65v3/readme.md +++ b/keyboards/gray_studio/think65v3/readme.md @@ -18,4 +18,4 @@ * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -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 infromation. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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 infromation. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/grid600/readme.md b/keyboards/grid600/readme.md index f7fa6a085b..73ca0f9eb9 100644 --- a/keyboards/grid600/readme.md +++ b/keyboards/grid600/readme.md @@ -4,4 +4,4 @@ The Grid 600 is a tray mount 60% case supporting most standard 60% PCBs. A unique feature of the Grid 600 is that it has five different cover modules that not only include USB C pass through, but also have functions such as RGB or additional macro keys. -This is a collection of some of the programmable modules available for this enclosure. \ No newline at end of file +This is a collection of some of the programmable modules available for this enclosure. diff --git a/keyboards/gummykey/readme.md b/keyboards/gummykey/readme.md index 80558ee330..3207add859 100644 --- a/keyboards/gummykey/readme.md +++ b/keyboards/gummykey/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/h0oni/deskpad/deskpad.c b/keyboards/h0oni/deskpad/deskpad.c index 8f9c97c97d..54fc42309d 100644 --- a/keyboards/h0oni/deskpad/deskpad.c +++ b/keyboards/h0oni/deskpad/deskpad.c @@ -50,4 +50,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/h0oni/deskpad/keymaps/default/keymap.c b/keyboards/h0oni/deskpad/keymaps/default/keymap.c index 4ab51b657e..c2ed7b7c43 100644 --- a/keyboards/h0oni/deskpad/keymaps/default/keymap.c +++ b/keyboards/h0oni/deskpad/keymaps/default/keymap.c @@ -186,4 +186,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT( C(KC_SLSH), VALORANT, VSCODE, DISCORD, LSA(KC_A), TD(QUAD_LAYER_SWITCH) ), -}; \ No newline at end of file +}; diff --git a/keyboards/h0oni/deskpad/readme.md b/keyboards/h0oni/deskpad/readme.md index a79983fff7..bb6e710e77 100644 --- a/keyboards/h0oni/deskpad/readme.md +++ b/keyboards/h0oni/deskpad/readme.md @@ -16,4 +16,4 @@ Enter the bootloader in 2 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the left most key) and plug in the keyboard. * **Physical reset button**: Press the button at the back of the PCB twice to enter into the bootloader mode. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/h0oni/hotduck/readme.md b/keyboards/h0oni/hotduck/readme.md index e4c06c46da..5f4f9f4931 100644 --- a/keyboards/h0oni/hotduck/readme.md +++ b/keyboards/h0oni/hotduck/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make h0oni/hotduck:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/hadron/ver3/keyboard.json b/keyboards/hadron/ver3/keyboard.json index f3e4bba06f..525b15df80 100644 --- a/keyboards/hadron/ver3/keyboard.json +++ b/keyboards/hadron/ver3/keyboard.json @@ -3,7 +3,19 @@ "device_version": "0.0.3" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [1, 13], "x": 195, "y": 3, "flags": 4}, + {"matrix": [4, 13], "x": 195, "y": 16, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 16, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [4, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 15, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 3, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 3, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 3, "flags": 4}, + {"matrix": [1, 10], "x": 150, "y": 3, "flags": 4} + ] }, "matrix_pins": { "cols": ["B8", "B2", "B10", "A0", "A1", "A2", "B0", "A3", "B1", "A6", "A7", "B12", "C13", "B11", "B9"], diff --git a/keyboards/hadron/ver3/ver3.c b/keyboards/hadron/ver3/ver3.c index d337fd9681..212aa15725 100644 --- a/keyboards/hadron/ver3/ver3.c +++ b/keyboards/hadron/ver3/ver3.c @@ -15,24 +15,6 @@ */ #include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -#include "rgb_matrix.h" - -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 6, NO_LED, NO_LED, 7, NO_LED, NO_LED, 8, NO_LED, NO_LED, 9, NO_LED, NO_LED, 0, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 5, NO_LED, NO_LED, 4, NO_LED, NO_LED, 3, NO_LED, NO_LED, 2, NO_LED, NO_LED, 1, NO_LED } -}, { - { 195, 3 }, { 195, 16 }, { 150, 16 }, { 105, 16 }, { 60, 16 }, { 15, 16 }, { 15, 3 }, { 60, 3 }, { 105, 3 }, { 150, 3 } -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; } diff --git a/keyboards/halfcliff/matrix.c b/keyboards/halfcliff/matrix.c index 790f8c41bb..05073908fa 100644 --- a/keyboards/halfcliff/matrix.c +++ b/keyboards/halfcliff/matrix.c @@ -29,16 +29,20 @@ static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -static matrix_row_t matrix[MATRIX_ROWS]; // debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values // row offsets for each hand uint8_t thisHand, thatHand; // user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); +} -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} __attribute__((weak)) void matrix_init_user(void) {} @@ -46,7 +50,9 @@ __attribute__((weak)) void matrix_scan_user(void) {} __attribute__((weak)) void matrix_slave_scan_user(void) {} -matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) {} @@ -58,13 +64,19 @@ static inline void gpio_atomic_set_pin_output_low(pin_t pin) { } static inline void gpio_atomic_set_pin_input_high(pin_t pin) { - ATOMIC_BLOCK_FORCEON { gpio_set_pin_input_high(pin); } + ATOMIC_BLOCK_FORCEON { + gpio_set_pin_input_high(pin); + } } // matrix code -static void select_row(uint8_t row) { gpio_atomic_set_pin_output_low(row_pins[row]); } +static void select_row(uint8_t row) { + gpio_atomic_set_pin_output_low(row_pins[row]); +} -static void unselect_row(uint8_t row) { gpio_atomic_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_atomic_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { @@ -92,7 +104,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Unselect row unselect_row(current_row); if (current_row + 1 < MATRIX_ROWS) { - wait_us(30); // wait for row signal to go HIGH + wait_us(30); // wait for row signal to go HIGH } // If the row has changed, store the row and return the changed flag. @@ -103,9 +115,13 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) return false; } -static void select_col(uint8_t col) { gpio_atomic_set_pin_output_low(col_pins[col]); } +static void select_col(uint8_t col) { + gpio_atomic_set_pin_output_low(col_pins[col]); +} -static void unselect_col(uint8_t col) { gpio_atomic_set_pin_input_high(col_pins[col]); } +static void unselect_col(uint8_t col) { + gpio_atomic_set_pin_input_high(col_pins[col]); +} static void unselect_cols(void) { for (uint8_t x = 0; x < MATRIX_COLS; x++) { @@ -156,7 +172,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Unselect col unselect_col(current_col); if (current_col + 1 < MATRIX_COLS) { - wait_us(30); // wait for col signal to go HIGH + wait_us(30); // wait for col signal to go HIGH } return matrix_changed; @@ -166,7 +182,7 @@ void matrix_init(void) { split_pre_init(); // Set pinout for right half if pinout for that half is defined - if (!isLeftHand) { + if (!is_keyboard_left()) { #ifdef DIRECT_PINS_RIGHT const pin_t direct_pins_right[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { @@ -189,7 +205,7 @@ void matrix_init(void) { #endif } - thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (ROWS_PER_HAND); thatHand = ROWS_PER_HAND - thisHand; // initialize key pins @@ -201,7 +217,7 @@ void matrix_init(void) { matrix[i] = 0; } - debounce_init(ROWS_PER_HAND); + debounce_init(); matrix_init_kb(); @@ -248,26 +264,26 @@ bool matrix_post_scan(void) { } uint8_t matrix_scan(void) { - bool local_changed = false; - static matrix_row_t temp_raw_matrix[MATRIX_ROWS]; // temp raw values + bool local_changed = false; + static matrix_row_t temp_raw_matrix[MATRIX_ROWS]; // temp raw values // Set row, read cols - for (uint8_t current_row = 0; current_row < ROWS_PER_HAND/2; current_row++) { + for (uint8_t current_row = 0; current_row < ROWS_PER_HAND / 2; current_row++) { local_changed |= read_cols_on_row(raw_matrix, current_row); } // Set col, read rows for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { local_changed |= read_rows_on_col(temp_raw_matrix, current_col); - //Updated key matrix on lines 6-10 (or lines 16-20) - if(local_changed) { - for (uint8_t i = ROWS_PER_HAND/2; i < ROWS_PER_HAND; i++) { + // Updated key matrix on lines 6-10 (or lines 16-20) + if (local_changed) { + for (uint8_t i = ROWS_PER_HAND / 2; i < ROWS_PER_HAND; i++) { raw_matrix[i] = temp_raw_matrix[i]; } } } - debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, local_changed); + debounce(raw_matrix, matrix + thisHand, local_changed); bool remote_changed = matrix_post_scan(); return (uint8_t)(local_changed || remote_changed); diff --git a/keyboards/handwired/3dfoxc/keymaps/default/keymap.c b/keyboards/handwired/3dfoxc/keymaps/default/keymap.c index fb12640474..14ac32cf21 100644 --- a/keyboards/handwired/3dfoxc/keymaps/default/keymap.c +++ b/keyboards/handwired/3dfoxc/keymaps/default/keymap.c @@ -66,4 +66,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) }; - \ No newline at end of file + diff --git a/keyboards/handwired/3dp660_oled/keyboard.json b/keyboards/handwired/3dp660_oled/keyboard.json index cb19d2ab80..9ab254e163 100644 --- a/keyboards/handwired/3dp660_oled/keyboard.json +++ b/keyboards/handwired/3dp660_oled/keyboard.json @@ -246,4 +246,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/412_64/keymaps/default/rules.mk b/keyboards/handwired/412_64/keymaps/default/rules.mk index 08fdcc0a56..83a7ba356b 100644 --- a/keyboards/handwired/412_64/keymaps/default/rules.mk +++ b/keyboards/handwired/412_64/keymaps/default/rules.mk @@ -1 +1 @@ -KEY_LOCK_ENABLE = yes # Enable the universal locking key, which lets you do any locking you require. \ No newline at end of file +KEY_LOCK_ENABLE = yes # Enable the universal locking key, which lets you do any locking you require. diff --git a/keyboards/handwired/412_64/readme.md b/keyboards/handwired/412_64/readme.md index 042bacfaf1..8356c0c743 100644 --- a/keyboards/handwired/412_64/readme.md +++ b/keyboards/handwired/412_64/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/412_64:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/6macro/keymaps/default/readme.md b/keyboards/handwired/6macro/keymaps/default/readme.md index dd42a8fc62..b1727655e1 100644 --- a/keyboards/handwired/6macro/keymaps/default/readme.md +++ b/keyboards/handwired/6macro/keymaps/default/readme.md @@ -12,4 +12,4 @@ Layer 2: # Default 6macro Layout -This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file +This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control. diff --git a/keyboards/handwired/6macro/keymaps/osu/readme.md b/keyboards/handwired/6macro/keymaps/osu/readme.md index 0de5d6bf2e..b6103fa240 100644 --- a/keyboards/handwired/6macro/keymaps/osu/readme.md +++ b/keyboards/handwired/6macro/keymaps/osu/readme.md @@ -12,4 +12,4 @@ Layer 2: # OSU 6macro Layout -This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file +This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control. diff --git a/keyboards/handwired/acacia/keyboard.json b/keyboards/handwired/acacia/keyboard.json index 16f614d795..17246e52ec 100644 --- a/keyboards/handwired/acacia/keyboard.json +++ b/keyboards/handwired/acacia/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "Acacia", "manufacturer": "jpsecher", "maintainer": "jpsecher", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/acacia", "processor": "atmega32u2", "bootloader": "atmel-dfu", "bootloader_instructions": "Enter the bootloader by using the small buttons on the PCB: press the RESET button while connected to QMK Toolbox.", diff --git a/keyboards/handwired/alcor_dactyl/config.h b/keyboards/handwired/alcor_dactyl/config.h index 42c45acdbf..3da8cebf4d 100644 --- a/keyboards/handwired/alcor_dactyl/config.h +++ b/keyboards/handwired/alcor_dactyl/config.h @@ -3,26 +3,6 @@ #pragma once - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U - #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP10 #define SERIAL_USART_RX_PIN GP9 diff --git a/keyboards/handwired/angel/keymaps/default/readme.md b/keyboards/handwired/angel/keymaps/default/readme.md index 6425306b0e..ec1d67b276 100644 --- a/keyboards/handwired/angel/keymaps/default/readme.md +++ b/keyboards/handwired/angel/keymaps/default/readme.md @@ -4,4 +4,4 @@ The default layout for hand-wire Angel is Colemak-DHM with modifiers on the home row. I'd love to see how we can improve it. -The most enjoyable part besides soldering is poking the QMK configurations and test it on keybr.com. It's so much fun. \ No newline at end of file +The most enjoyable part besides soldering is poking the QMK configurations and test it on keybr.com. It's so much fun. diff --git a/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c b/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c index 74b92cf97e..892c186d1b 100644 --- a/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c +++ b/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c @@ -53,4 +53,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGDN, KC_END /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/baredev/rev1/keymaps/default/readme.md b/keyboards/handwired/baredev/rev1/keymaps/default/readme.md index 6e8c07ad83..fed020505f 100644 --- a/keyboards/handwired/baredev/rev1/keymaps/default/readme.md +++ b/keyboards/handwired/baredev/rev1/keymaps/default/readme.md @@ -4,4 +4,4 @@ Has all the functions of a ABNT TKL keyboard, sans right shift. -Basic media functions also included. \ No newline at end of file +Basic media functions also included. diff --git a/keyboards/handwired/baredev/rev1/readme.md b/keyboards/handwired/baredev/rev1/readme.md index 1dac2fb6ad..949b46da61 100644 --- a/keyboards/handwired/baredev/rev1/readme.md +++ b/keyboards/handwired/baredev/rev1/readme.md @@ -26,4 +26,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md b/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md index 8836223788..d8adf3e13c 100644 --- a/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md +++ b/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md @@ -8,4 +8,4 @@ Keymap is basic 104 qwerty layout with: * FN is M(2). Arrow keys on HJKL, media keys on F6 to F12, and RCtrl+Home on Home. * Both M(1) and M(2) have Reset on Escape - \ No newline at end of file + diff --git a/keyboards/handwired/bouvet/macropad/v1/keyboard.json b/keyboards/handwired/bouvet/macropad/v1/keyboard.json new file mode 100644 index 0000000000..0492ef6c37 --- /dev/null +++ b/keyboards/handwired/bouvet/macropad/v1/keyboard.json @@ -0,0 +1,51 @@ +{ + "manufacturer": "Kenneth Fossen", + "keyboard_name": "Bouvet Macropad v1", + "maintainer": "spydx", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D7","E6","B4","B5"], + "rows": ["B1", "B3", "B2", "B6"] + }, + "encoders": { + "rotary": [ + {"pin_a": "C6", "pin_b": "D4"}, + {"pin_a": "F6", "pin_b": "F7"} + ] + }, + "url": "https://kefo.no", + "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": [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": [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": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3} + ] + } + } +} diff --git a/keyboards/handwired/bouvet/macropad/v1/keymaps/default/keymap.c b/keyboards/handwired/bouvet/macropad/v1/keymaps/default/keymap.c new file mode 100644 index 0000000000..74f3c9cded --- /dev/null +++ b/keyboards/handwired/bouvet/macropad/v1/keymaps/default/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2026 Kenneth Fossen +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MCTL, LCS(KC_TAB), C(KC_TAB), KC_MPLY, + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PENT, + LCMD(KC_C), LCMD(KC_V) + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/handwired/bouvet/macropad/v1/readme.md b/keyboards/handwired/bouvet/macropad/v1/readme.md new file mode 100644 index 0000000000..a913af88ad --- /dev/null +++ b/keyboards/handwired/bouvet/macropad/v1/readme.md @@ -0,0 +1,27 @@ +# bouvet/macropad/v1 + +![bouvet/macropad/v1](https://www.kefo.no/assets/macropad/macropad_v1.png) +Small macropad, with two rotary encoder buttons and 14 keys. +Optional OLED 128x16 screen, small learning and sharing project. + +* Keyboard Maintainer: [Kenneth Fossen](https://github.com/spydx) +* Hardware Supported: Bouvet Macropad +* Hardware Availability: [Shop](https://www.kefo.no/macropad) + +Make example for this keyboard (after setting up your build environment): + + make handwired/bouvet/macropad/v1:default + +Flashing example for this keyboard: + + make handwired/bouvet/macropad/v1: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/handwired/cans12erv2/readme.md b/keyboards/handwired/cans12erv2/readme.md index fa08efacc7..25533145d8 100644 --- a/keyboards/handwired/cans12erv2/readme.md +++ b/keyboards/handwired/cans12erv2/readme.md @@ -24,4 +24,4 @@ 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**: Quickly double press the reset button on the PCB to make the RP2040 boot into its uf2 mode -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/colorlice/colorlice.c b/keyboards/handwired/colorlice/colorlice.c deleted file mode 100644 index 81e87d8c7a..0000000000 --- a/keyboards/handwired/colorlice/colorlice.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2019 marhalloweenvt - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, NO_LED }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED }, - { 58, 57, 56, 55, 54, 53, NO_LED, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED}, - { 59, NO_LED, 60, 61, 62, NO_LED, NO_LED,63, NO_LED, NO_LED, 64, 65,66,67, 68, NO_LED } -}, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, { 210, 0 }, { 224, 0 }, - { 224, 16 }, { 210, 16 }, { 195, 16 }, { 180, 16 }, { 165, 16 }, { 150, 16 }, { 135, 16 }, { 120, 16 }, { 90, 16 }, { 75, 16 }, { 60, 16 }, { 45, 16 }, { 30, 16 }, { 15, 16 }, { 0, 16 }, - { 0, 32 }, { 15, 32 }, { 30, 32 }, { 45, 32 }, { 60, 32 }, { 75, 32 }, { 90, 32 }, { 135, 32 }, { 150, 32 }, { 165, 32 }, { 180, 32 }, { 195, 32 }, { 210, 32 }, { 224, 32 }, - { 225, 48 }, { 224, 48 }, { 210, 48 }, { 195, 48 }, { 180, 48 }, { 165, 48 }, { 150, 48 }, { 135, 48 }, { 90, 48 }, { 75, 48 }, { 60, 48 }, { 45, 48 }, { 30, 48 }, { 15, 48 }, - { 15, 64 }, { 45, 64 }, { 75, 64 }, { 90, 64 }, { 150, 64 }, { 180, 64 }, { 210, 64 }, { 215, 64 }, { 220, 64 }, { 225, 64 } -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json index b2606afb89..5780f012d5 100644 --- a/keyboards/handwired/colorlice/keyboard.json +++ b/keyboards/handwired/colorlice/keyboard.json @@ -57,6 +57,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 195, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 180, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 165, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 150, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 135, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 15, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 90, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 135, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 165, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 180, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 195, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 210, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 195, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 15, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 45, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 75, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 90, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 215, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/handwired/croxsplit44/keymaps/default/keymap.c b/keyboards/handwired/croxsplit44/keymaps/default/keymap.c index 1811e6baf9..b9432f6429 100644 --- a/keyboards/handwired/croxsplit44/keymaps/default/keymap.c +++ b/keyboards/handwired/croxsplit44/keymaps/default/keymap.c @@ -28,4 +28,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, UG_NEXT, UG_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_UP, KC_RGHT, KC_ENT, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/dactyl/matrix.c b/keyboards/handwired/dactyl/matrix.c index 140f4236c1..9846676112 100644 --- a/keyboards/handwired/dactyl/matrix.c +++ b/keyboards/handwired/dactyl/matrix.c @@ -76,8 +76,6 @@ uint8_t expander_status; uint8_t expander_input_pin_mask; bool i2c_initialized = false; -#define ROW_SHIFTER ((matrix_row_t)1) - __attribute__ ((weak)) void matrix_init_user(void) {} @@ -284,7 +282,7 @@ uint8_t matrix_scan(void) inline bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (ROW_SHIFTER << col)); + return (matrix[row] & (MATRIX_ROW_SHIFTER << col)); } inline @@ -344,7 +342,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) if (! col_expanded[col_index]) { uint8_t pin = onboard_col_pins[col_index]; uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -432,10 +430,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (column_state & (1 << current_row)) { // key closed; set state bit in matrix - current_matrix[current_row] |= (ROW_SHIFTER << current_col); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << current_col); } else { // key open; clear state bit in matrix - current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine whether the matrix changed state diff --git a/keyboards/handwired/dactyl/readme.md b/keyboards/handwired/dactyl/readme.md index e99df7f5a2..608a1b7fe3 100644 --- a/keyboards/handwired/dactyl/readme.md +++ b/keyboards/handwired/dactyl/readme.md @@ -6,7 +6,7 @@ The Dactyl uses the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Linux users need to modify udev rules as described on the [Teensy Linux page]. Some distributions provide a binary, maybe called -`teensy-loader-cli`. +`teensy_loader_cli`. [Teensy Linux page]: https://www.pjrc.com/teensy/loader_linux.html @@ -26,7 +26,7 @@ To flash the firmware: - Click the button in the Teensy app to download the firmware. -To flash with ´teensy-loader-cli´: +To flash with ´teensy_loader_cli´: - Build the firmware as above diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json index 207f8c06a7..c6a790d14d 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl ManuForm 4x5_5", "manufacturer": "ssedrick", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform/4x5_5", "maintainer": "ssedrick", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/readme.md b/keyboards/handwired/dactyl_manuform/5x6_6/readme.md index 78107a183d..e1c251193b 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/readme.md +++ b/keyboards/handwired/dactyl_manuform/5x6_6/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: **Physical reset button**: Briefly press the reset button on the bottom of the case, or bridge the reset and ground pins momentarily on the pro micro -**Keycode in layout**: Press the key mapped to `QK_BOOT` (by default hold down `MO(1)` and press the left most key in row 5 on the left hand half of the keyboard) \ No newline at end of file +**Keycode in layout**: Press the key mapped to `QK_BOOT` (by default hold down `MO(1)` and press the left most key in row 5 on the left hand half of the keyboard) diff --git a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json index 2ac3010717..649987911b 100644 --- a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json @@ -10,7 +10,7 @@ "features": { "bootmagic": true, "extrakey": true, - "mousekey": true, + "mousekey": true }, "qmk": { "locking": { @@ -25,6 +25,11 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, + "matrix_pins": { + "right": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] + } + }, "serial": { "pin": "D0" } @@ -42,14 +47,14 @@ {"matrix": [0, 6], "x": 6, "y": 0}, {"matrix": [0, 7], "x": 7, "y": 0}, - {"matrix": [6, 7], "x": 17, "y": 0.5}, - {"matrix": [6, 6], "x": 16, "y": 0.5}, - {"matrix": [6, 5], "x": 15, "y": 0.5}, - {"matrix": [6, 4], "x": 14, "y": 0}, - {"matrix": [6, 3], "x": 13, "y": 0}, - {"matrix": [6, 2], "x": 12, "y": 0}, - {"matrix": [6, 1], "x": 11, "y": 0}, {"matrix": [6, 0], "x": 10, "y": 0}, + {"matrix": [6, 1], "x": 11, "y": 0}, + {"matrix": [6, 2], "x": 12, "y": 0}, + {"matrix": [6, 3], "x": 13, "y": 0}, + {"matrix": [6, 4], "x": 14, "y": 0}, + {"matrix": [6, 5], "x": 15, "y": 0.5}, + {"matrix": [6, 6], "x": 16, "y": 0.5}, + {"matrix": [6, 7], "x": 17, "y": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1.5}, {"matrix": [1, 1], "x": 1, "y": 1.5}, @@ -60,14 +65,14 @@ {"matrix": [1, 6], "x": 6, "y": 1}, {"matrix": [1, 7], "x": 7, "y": 1}, - {"matrix": [7, 7], "x": 17, "y": 1.5}, - {"matrix": [7, 6], "x": 16, "y": 1.5}, - {"matrix": [7, 5], "x": 15, "y": 1.5}, - {"matrix": [7, 4], "x": 14, "y": 1}, - {"matrix": [7, 3], "x": 13, "y": 1}, - {"matrix": [7, 2], "x": 12, "y": 1}, - {"matrix": [7, 1], "x": 11, "y": 1}, {"matrix": [7, 0], "x": 10, "y": 1}, + {"matrix": [7, 1], "x": 11, "y": 1}, + {"matrix": [7, 2], "x": 12, "y": 1}, + {"matrix": [7, 3], "x": 13, "y": 1}, + {"matrix": [7, 4], "x": 14, "y": 1}, + {"matrix": [7, 5], "x": 15, "y": 1.5}, + {"matrix": [7, 6], "x": 16, "y": 1.5}, + {"matrix": [7, 7], "x": 17, "y": 1.5}, {"matrix": [2, 0], "x": 0, "y": 2.5}, {"matrix": [2, 1], "x": 1, "y": 2.5}, @@ -78,14 +83,14 @@ {"matrix": [2, 6], "x": 6, "y": 2}, {"matrix": [2, 7], "x": 7, "y": 2}, - {"matrix": [8, 7], "x": 17, "y": 2.5}, - {"matrix": [8, 6], "x": 16, "y": 2.5}, - {"matrix": [8, 5], "x": 15, "y": 2.5}, - {"matrix": [8, 4], "x": 14, "y": 2}, - {"matrix": [8, 3], "x": 13, "y": 2}, - {"matrix": [8, 2], "x": 12, "y": 2}, - {"matrix": [8, 1], "x": 11, "y": 2}, {"matrix": [8, 0], "x": 10, "y": 2}, + {"matrix": [8, 1], "x": 11, "y": 2}, + {"matrix": [8, 2], "x": 12, "y": 2}, + {"matrix": [8, 3], "x": 13, "y": 2}, + {"matrix": [8, 4], "x": 14, "y": 2}, + {"matrix": [8, 5], "x": 15, "y": 2.5}, + {"matrix": [8, 6], "x": 16, "y": 2.5}, + {"matrix": [8, 7], "x": 17, "y": 2.5}, {"matrix": [3, 0], "x": 0, "y": 3.5}, {"matrix": [3, 1], "x": 1, "y": 3.5}, @@ -95,41 +100,41 @@ {"matrix": [3, 5], "x": 5, "y": 3}, {"matrix": [3, 6], "x": 6, "y": 3}, - {"matrix": [9, 6], "x": 17, "y": 3.5}, - {"matrix": [9, 5], "x": 16, "y": 3.5}, - {"matrix": [9, 4], "x": 15, "y": 3.5}, - {"matrix": [9, 3], "x": 14, "y": 3}, - {"matrix": [9, 2], "x": 13, "y": 3}, - {"matrix": [9, 1], "x": 12, "y": 3}, - {"matrix": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 11, "y": 3}, + {"matrix": [9, 2], "x": 12, "y": 3}, + {"matrix": [9, 3], "x": 13, "y": 3}, + {"matrix": [9, 4], "x": 14, "y": 3}, + {"matrix": [9, 5], "x": 15, "y": 3.5}, + {"matrix": [9, 6], "x": 16, "y": 3.5}, + {"matrix": [9, 7], "x": 17, "y": 3.5}, {"matrix": [4, 1], "x": 1, "y": 4.5}, {"matrix": [4, 2], "x": 2, "y": 4.5}, {"matrix": [4, 3], "x": 3, "y": 4}, {"matrix": [4, 4], "x": 4, "y": 4}, - {"matrix": [10, 4], "x": 14, "y": 4}, {"matrix": [10, 3], "x": 13, "y": 4}, - {"matrix": [10, 2], "x": 12, "y": 5}, - {"matrix": [10, 1], "x": 11, "y": 5}, + {"matrix": [10, 4], "x": 14, "y": 4}, + {"matrix": [10, 5], "x": 15, "y": 4.5}, + {"matrix": [10, 6], "x": 16, "y": 4.5}, {"matrix": [4, 5], "x": 4.5, "y": 5}, {"matrix": [4, 6], "x": 5.5, "y": 5}, - {"matrix": [10, 6], "x": 14.5, "y": 4.5}, - {"matrix": [10, 5], "x": 15.5, "y": 4.5}, + {"matrix": [10, 1], "x": 11.5, "y": 5}, + {"matrix": [10, 2], "x": 12.5, "y": 5}, {"matrix": [5, 5], "x": 5, "y": 6}, {"matrix": [5, 6], "x": 6, "y": 6}, - {"matrix": [11, 6], "x": 12, "y": 6}, - {"matrix": [11, 5], "x": 11, "y": 6}, + {"matrix": [11, 1], "x": 11, "y": 6}, + {"matrix": [11, 2], "x": 12, "y": 6}, {"matrix": [5, 3], "x": 5, "y": 7}, {"matrix": [5, 4], "x": 6, "y": 7}, - {"matrix": [11, 4], "x": 12, "y": 7}, - {"matrix": [11, 3], "x": 11, "y": 7} + {"matrix": [11, 3], "x": 11, "y": 7}, + {"matrix": [11, 4], "x": 12, "y": 7} ] } } diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h index c622149a4a..9b5e919b1b 100644 --- a/keyboards/handwired/dactyl_manuform_pi_pico/config.h +++ b/keyboards/handwired/dactyl_manuform_pi_pico/config.h @@ -2,8 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U + #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP9 #define SERIAL_USART_RX_PIN GP8 diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json index 2cb7741cc7..69d982ee6b 100644 --- a/keyboards/handwired/dactyl_rah/keyboard.json +++ b/keyboards/handwired/dactyl_rah/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl RAH", "manufacturer": "ralphie02", - "url": "https://qmk.fm/keyboards/", "maintainer": "ralphie02", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dqz11n1g/keyboard.json b/keyboards/handwired/dqz11n1g/keyboard.json index 4e45a5a920..d28df5c669 100644 --- a/keyboards/handwired/dqz11n1g/keyboard.json +++ b/keyboards/handwired/dqz11n1g/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DQz11N1G", "manufacturer": "Unknown", - "url": "https://github.com/dvdkhlng/qmk_firmware_dqz11n1g", "maintainer": "dvdkhlng", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/readme.md b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md index d61546eb37..cfb0cbea91 100644 --- a/keyboards/handwired/dqz11n1g/keymaps/default/readme.md +++ b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md @@ -14,4 +14,4 @@ features that are documented for the one-handed Maltron keyboards. Most keys don't send any keycodes at all when function lock is enabed. We instead map some of the Quantum keycodes (mouse keys and audio control) -in the middle (keypad) section of the keypad, when Function Lock is enabled. \ No newline at end of file +in the middle (keypad) section of the keypad, when Function Lock is enabled. diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c index 67b84c3bc8..de2b9dedf6 100644 --- a/keyboards/handwired/dygma/raise/ansi/ansi.c +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c @@ -38,44 +38,3 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { 34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH, 52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff }; - -// taken from "key_led_map" and reformatted -// ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map). -led_config_t g_led_config = { { - // left hand - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } , - { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } , - { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } , - { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } , - { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , - - // right hand - { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , - { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , - { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , - { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , - { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } - }, { - // generated from the svg image of the keyboard, see create-led-config.js - {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, - {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {85, 22}, - {0, 0}, - {94, 22}, {100, 22}, {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, - {118, 34}, {168, 3}, {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {168, 16}, {162, 10}, {156, 10}, - {150, 10}, {144, 10}, {139, 10}, {133, 10}, {127, 10}, {170, 10}, {159, 16}, {153, 16}, {147, 16}, {141, 16}, {135, 16}, - {129, 16}, {166, 22}, {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, - {140, 28}, {131, 28}, {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, - {122, 3}, {121, 9}, {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, - {103, 64}, {96, 64}, {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, - {175, 4}, {172, 0}, {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, - {124, 27}, {124, 33}, {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, - {173, 63}, {177, 59}, {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 0, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 - } -}; diff --git a/keyboards/handwired/dygma/raise/ansi/keyboard.json b/keyboards/handwired/dygma/raise/ansi/keyboard.json index 9abe98fdfa..703ae91244 100644 --- a/keyboards/handwired/dygma/raise/ansi/keyboard.json +++ b/keyboards/handwired/dygma/raise/ansi/keyboard.json @@ -6,6 +6,142 @@ "rgb_matrix": true, "raw": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 82, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 88, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 94, "y": 3, "flags": 4}, + {"matrix": [0, 3], "x": 100, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 106, "y": 3, "flags": 4}, + {"matrix": [0, 5], "x": 112, "y": 3, "flags": 4}, + {"matrix": [0, 6], "x": 118, "y": 3, "flags": 4}, + {"matrix": [1, 0], "x": 84, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 91, "y": 10, "flags": 4}, + {"matrix": [1, 2], "x": 97, "y": 10, "flags": 4}, + {"matrix": [1, 3], "x": 103, "y": 10, "flags": 4}, + {"matrix": [1, 4], "x": 109, "y": 10, "flags": 4}, + {"matrix": [1, 5], "x": 115, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 84, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 92, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 98, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 110, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 116, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 85, "y": 22, "flags": 4}, + {"matrix": [3, 1], "x": 0, "y": 0, "flags": 0}, + {"matrix": [3, 2], "x": 94, "y": 22, "flags": 4}, + {"matrix": [3, 3], "x": 100, "y": 22, "flags": 4}, + {"matrix": [3, 4], "x": 106, "y": 22, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 22, "flags": 4}, + {"matrix": [3, 6], "x": 118, "y": 22, "flags": 4}, + {"matrix": [4, 0], "x": 83, "y": 28, "flags": 4}, + {"matrix": [4, 1], "x": 90, "y": 28, "flags": 4}, + {"matrix": [4, 2], "x": 98, "y": 28, "flags": 4}, + {"matrix": [4, 3], "x": 106, "y": 28, "flags": 4}, + {"matrix": [4, 4], "x": 116, "y": 28, "flags": 4}, + {"matrix": [4, 6], "x": 111, "y": 34, "flags": 4}, + {"matrix": [4, 7], "x": 118, "y": 34, "flags": 4}, + {"matrix": [5, 0], "x": 168, "y": 3, "flags": 4}, + {"matrix": [5, 1], "x": 159, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 153, "y": 3, "flags": 4}, + {"matrix": [5, 3], "x": 147, "y": 3, "flags": 4}, + {"matrix": [5, 4], "x": 141, "y": 3, "flags": 4}, + {"matrix": [5, 5], "x": 135, "y": 3, "flags": 4}, + {"matrix": [5, 6], "x": 129, "y": 3, "flags": 4}, + {"matrix": [6, 0], "x": 168, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 162, "y": 10, "flags": 4}, + {"matrix": [6, 2], "x": 156, "y": 10, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 10, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 10, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 10, "flags": 4}, + {"matrix": [6, 6], "x": 133, "y": 10, "flags": 4}, + {"matrix": [6, 7], "x": 127, "y": 10, "flags": 4}, + {"matrix": [7, 0], "x": 170, "y": 10, "flags": 4}, + {"matrix": [7, 1], "x": 159, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 153, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 147, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 141, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 135, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 129, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 166, "y": 22, "flags": 4}, + {"matrix": [8, 1], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 148, "y": 22, "flags": 4}, + {"matrix": [8, 3], "x": 142, "y": 22, "flags": 4}, + {"matrix": [8, 4], "x": 136, "y": 22, "flags": 4}, + {"matrix": [8, 5], "x": 130, "y": 22, "flags": 4}, + {"matrix": [9, 0], "x": 170, "y": 28, "flags": 4}, + {"matrix": [9, 1], "x": 163, "y": 28, "flags": 4}, + {"matrix": [9, 2], "x": 156, "y": 28, "flags": 4}, + {"matrix": [9, 3], "x": 149, "y": 28, "flags": 4}, + {"matrix": [9, 4], "x": 140, "y": 28, "flags": 4}, + {"matrix": [9, 5], "x": 131, "y": 28, "flags": 4}, + {"matrix": [9, 6], "x": 136, "y": 34, "flags": 4}, + {"matrix": [9, 7], "x": 128, "y": 34, "flags": 4}, + {"x": 78, "y": 13, "flags": 2}, + {"x": 78, "y": 6, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 87, "y": 0, "flags": 2}, + {"x": 95, "y": 0, "flags": 2}, + {"x": 103, "y": 0, "flags": 2}, + {"x": 111, "y": 0, "flags": 2}, + {"x": 119, "y": 0, "flags": 2}, + {"x": 122, "y": 3, "flags": 2}, + {"x": 121, "y": 9, "flags": 2}, + {"x": 120, "y": 15, "flags": 2}, + {"x": 122, "y": 21, "flags": 2}, + {"x": 123, "y": 27, "flags": 2}, + {"x": 123, "y": 33, "flags": 2}, + {"x": 120, "y": 38, "flags": 2}, + {"x": 116, "y": 42, "flags": 2}, + {"x": 114, "y": 48, "flags": 2}, + {"x": 112, "y": 55, "flags": 2}, + {"x": 109, "y": 61, "flags": 2}, + {"x": 103, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 88, "y": 64, "flags": 2}, + {"x": 81, "y": 63, "flags": 2}, + {"x": 76, "y": 60, "flags": 2}, + {"x": 75, "y": 52, "flags": 2}, + {"x": 75, "y": 46, "flags": 2}, + {"x": 74, "y": 38, "flags": 2}, + {"x": 74, "y": 32, "flags": 2}, + {"x": 75, "y": 27, "flags": 2}, + {"x": 77, "y": 21, "flags": 2}, + {"x": 175, "y": 10, "flags": 2}, + {"x": 175, "y": 4, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 164, "y": 0, "flags": 2}, + {"x": 157, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 142, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 127, "y": 0, "flags": 2}, + {"x": 123, "y": 3, "flags": 2}, + {"x": 122, "y": 8, "flags": 2}, + {"x": 122, "y": 15, "flags": 2}, + {"x": 124, "y": 21, "flags": 2}, + {"x": 124, "y": 27, "flags": 2}, + {"x": 124, "y": 33, "flags": 2}, + {"x": 126, "y": 38, "flags": 2}, + {"x": 131, "y": 42, "flags": 2}, + {"x": 134, "y": 48, "flags": 2}, + {"x": 135, "y": 55, "flags": 2}, + {"x": 137, "y": 61, "flags": 2}, + {"x": 143, "y": 63, "flags": 2}, + {"x": 150, "y": 63, "flags": 2}, + {"x": 158, "y": 63, "flags": 2}, + {"x": 166, "y": 63, "flags": 2}, + {"x": 173, "y": 63, "flags": 2}, + {"x": 177, "y": 59, "flags": 2}, + {"x": 178, "y": 49, "flags": 2}, + {"x": 179, "y": 40, "flags": 2}, + {"x": 179, "y": 31, "flags": 2}, + {"x": 177, "y": 25, "flags": 2}, + {"x": 175, "y": 20, "flags": 2}, + {"x": 175, "y": 15, "flags": 2}, + {"x": 123, "y": 54, "flags": 4} + ] + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/dygma/raise/info.json b/keyboards/handwired/dygma/raise/info.json index be32abfb94..56058c31f5 100644 --- a/keyboards/handwired/dygma/raise/info.json +++ b/keyboards/handwired/dygma/raise/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Raise", "manufacturer": "Dygma", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/dygma/raise", "maintainer": "ibash", "usb": { "vid": "0x1209", diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c index 9643af7b8c..247a9646df 100644 --- a/keyboards/handwired/dygma/raise/iso/iso.c +++ b/keyboards/handwired/dygma/raise/iso/iso.c @@ -38,42 +38,3 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { 34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH, 52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff }; - -// taken from "key_led_map" and reformatted -// ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map). -led_config_t g_led_config = { { - // left hand - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } , - { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } , - { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } , - { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } , - { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , - - // right hand - { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , - { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , - { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , - { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , - { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } - }, { - // generated from the svg image of the keyboard, see create-led-config.js - {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, - {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {82, 22}, {88, 22}, {94, 22}, {100, 22}, - {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, {118, 34}, {168, 3}, - {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {170, 13}, {162, 10}, {156, 10}, {150, 10}, {144, 10}, - {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, - {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, {140, 28}, {131, 28}, - {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, {122, 3}, {121, 9}, - {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, - {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, {175, 4}, {172, 0}, - {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, {124, 27}, {124, 33}, - {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, {173, 63}, {177, 59}, - {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} - - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 - } -}; diff --git a/keyboards/handwired/dygma/raise/iso/keyboard.json b/keyboards/handwired/dygma/raise/iso/keyboard.json index 9abe98fdfa..057851bd8c 100644 --- a/keyboards/handwired/dygma/raise/iso/keyboard.json +++ b/keyboards/handwired/dygma/raise/iso/keyboard.json @@ -6,6 +6,142 @@ "rgb_matrix": true, "raw": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 82, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 88, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 94, "y": 3, "flags": 4}, + {"matrix": [0, 3], "x": 100, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 106, "y": 3, "flags": 4}, + {"matrix": [0, 5], "x": 112, "y": 3, "flags": 4}, + {"matrix": [0, 6], "x": 118, "y": 3, "flags": 4}, + {"matrix": [1, 0], "x": 84, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 91, "y": 10, "flags": 4}, + {"matrix": [1, 2], "x": 97, "y": 10, "flags": 4}, + {"matrix": [1, 3], "x": 103, "y": 10, "flags": 4}, + {"matrix": [1, 4], "x": 109, "y": 10, "flags": 4}, + {"matrix": [1, 5], "x": 115, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 84, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 92, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 98, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 110, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 116, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 82, "y": 22, "flags": 4}, + {"matrix": [3, 1], "x": 88, "y": 22, "flags": 4}, + {"matrix": [3, 2], "x": 94, "y": 22, "flags": 4}, + {"matrix": [3, 3], "x": 100, "y": 22, "flags": 4}, + {"matrix": [3, 4], "x": 106, "y": 22, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 22, "flags": 4}, + {"matrix": [3, 6], "x": 118, "y": 22, "flags": 4}, + {"matrix": [4, 0], "x": 83, "y": 28, "flags": 4}, + {"matrix": [4, 1], "x": 90, "y": 28, "flags": 4}, + {"matrix": [4, 2], "x": 98, "y": 28, "flags": 4}, + {"matrix": [4, 3], "x": 106, "y": 28, "flags": 4}, + {"matrix": [4, 4], "x": 116, "y": 28, "flags": 4}, + {"matrix": [4, 6], "x": 111, "y": 34, "flags": 4}, + {"matrix": [4, 7], "x": 118, "y": 34, "flags": 4}, + {"matrix": [5, 0], "x": 168, "y": 3, "flags": 4}, + {"matrix": [5, 1], "x": 159, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 153, "y": 3, "flags": 4}, + {"matrix": [5, 3], "x": 147, "y": 3, "flags": 4}, + {"matrix": [5, 4], "x": 141, "y": 3, "flags": 4}, + {"matrix": [5, 5], "x": 135, "y": 3, "flags": 4}, + {"matrix": [5, 6], "x": 129, "y": 3, "flags": 4}, + {"matrix": [6, 0], "x": 170, "y": 13, "flags": 4}, + {"matrix": [6, 1], "x": 162, "y": 10, "flags": 4}, + {"matrix": [6, 2], "x": 156, "y": 10, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 10, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 10, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 10, "flags": 4}, + {"matrix": [6, 6], "x": 133, "y": 10, "flags": 4}, + {"matrix": [6, 7], "x": 127, "y": 10, "flags": 4}, + {"matrix": [7, 0], "x": 164, "y": 16, "flags": 4}, + {"matrix": [7, 1], "x": 158, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 152, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 146, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 140, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 134, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 128, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 166, "y": 22, "flags": 4}, + {"matrix": [8, 1], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 148, "y": 22, "flags": 4}, + {"matrix": [8, 3], "x": 142, "y": 22, "flags": 4}, + {"matrix": [8, 4], "x": 136, "y": 22, "flags": 4}, + {"matrix": [8, 5], "x": 130, "y": 22, "flags": 4}, + {"matrix": [9, 0], "x": 170, "y": 28, "flags": 4}, + {"matrix": [9, 1], "x": 163, "y": 28, "flags": 4}, + {"matrix": [9, 2], "x": 156, "y": 28, "flags": 4}, + {"matrix": [9, 3], "x": 149, "y": 28, "flags": 4}, + {"matrix": [9, 4], "x": 140, "y": 28, "flags": 4}, + {"matrix": [9, 5], "x": 131, "y": 28, "flags": 4}, + {"matrix": [9, 6], "x": 136, "y": 34, "flags": 4}, + {"matrix": [9, 7], "x": 128, "y": 34, "flags": 4}, + {"x": 78, "y": 13, "flags": 2}, + {"x": 78, "y": 6, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 87, "y": 0, "flags": 2}, + {"x": 95, "y": 0, "flags": 2}, + {"x": 103, "y": 0, "flags": 2}, + {"x": 111, "y": 0, "flags": 2}, + {"x": 119, "y": 0, "flags": 2}, + {"x": 122, "y": 3, "flags": 2}, + {"x": 121, "y": 9, "flags": 2}, + {"x": 120, "y": 15, "flags": 2}, + {"x": 122, "y": 21, "flags": 2}, + {"x": 123, "y": 27, "flags": 2}, + {"x": 123, "y": 33, "flags": 2}, + {"x": 120, "y": 38, "flags": 2}, + {"x": 116, "y": 42, "flags": 2}, + {"x": 114, "y": 48, "flags": 2}, + {"x": 112, "y": 55, "flags": 2}, + {"x": 109, "y": 61, "flags": 2}, + {"x": 103, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 88, "y": 64, "flags": 2}, + {"x": 81, "y": 63, "flags": 2}, + {"x": 76, "y": 60, "flags": 2}, + {"x": 75, "y": 52, "flags": 2}, + {"x": 75, "y": 46, "flags": 2}, + {"x": 74, "y": 38, "flags": 2}, + {"x": 74, "y": 32, "flags": 2}, + {"x": 75, "y": 27, "flags": 2}, + {"x": 77, "y": 21, "flags": 2}, + {"x": 175, "y": 10, "flags": 2}, + {"x": 175, "y": 4, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 164, "y": 0, "flags": 2}, + {"x": 157, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 142, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 127, "y": 0, "flags": 2}, + {"x": 123, "y": 3, "flags": 2}, + {"x": 122, "y": 8, "flags": 2}, + {"x": 122, "y": 15, "flags": 2}, + {"x": 124, "y": 21, "flags": 2}, + {"x": 124, "y": 27, "flags": 2}, + {"x": 124, "y": 33, "flags": 2}, + {"x": 126, "y": 38, "flags": 2}, + {"x": 131, "y": 42, "flags": 2}, + {"x": 134, "y": 48, "flags": 2}, + {"x": 135, "y": 55, "flags": 2}, + {"x": 137, "y": 61, "flags": 2}, + {"x": 143, "y": 63, "flags": 2}, + {"x": 150, "y": 63, "flags": 2}, + {"x": 158, "y": 63, "flags": 2}, + {"x": 166, "y": 63, "flags": 2}, + {"x": 173, "y": 63, "flags": 2}, + {"x": 177, "y": 59, "flags": 2}, + {"x": 178, "y": 49, "flags": 2}, + {"x": 179, "y": 40, "flags": 2}, + {"x": 179, "y": 31, "flags": 2}, + {"x": 177, "y": 25, "flags": 2}, + {"x": 175, "y": 20, "flags": 2}, + {"x": 175, "y": 15, "flags": 2}, + {"x": 123, "y": 54, "flags": 4} + ] + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/ergo_v_1/keyboard.json b/keyboards/handwired/ergo_v_1/keyboard.json new file mode 100644 index 0000000000..b26e34f8bb --- /dev/null +++ b/keyboards/handwired/ergo_v_1/keyboard.json @@ -0,0 +1,122 @@ +{ + "keyboard_name": "Ergo-V-1", + "manufacturer": "wizardkeyboards", + "url": "https://wizardkeyboards.com/", + "maintainer": "qmk", + "usb": { + "vid": "0xFEED", + "pid": "0x97C4", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "matrix_pins": { + "cols": ["D4", "C6", "D7", "E6", "B4", "B5"], + "rows": ["F6", "F7", "B1", "B3", "B2", "B6"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "serial": { + "pin": "D0" + } + }, + "development_board": "promicro", + "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": [6, 0], "x": 11, "y": 0}, + {"matrix": [6, 1], "x": 12, "y": 0}, + {"matrix": [6, 2], "x": 13, "y": 0}, + {"matrix": [6, 3], "x": 14, "y": 0}, + {"matrix": [6, 4], "x": 15, "y": 0}, + {"matrix": [6, 5], "x": 16, "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": [7, 0], "x": 11, "y": 1}, + {"matrix": [7, 1], "x": 12, "y": 1}, + {"matrix": [7, 2], "x": 13, "y": 1}, + {"matrix": [7, 3], "x": 14, "y": 1}, + {"matrix": [7, 4], "x": 15, "y": 1}, + {"matrix": [7, 5], "x": 16, "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": [8, 0], "x": 11, "y": 2}, + {"matrix": [8, 1], "x": 12, "y": 2}, + {"matrix": [8, 2], "x": 13, "y": 2}, + {"matrix": [8, 3], "x": 14, "y": 2}, + {"matrix": [8, 4], "x": 15, "y": 2}, + {"matrix": [8, 5], "x": 16, "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": [9, 0], "x": 11, "y": 3}, + {"matrix": [9, 1], "x": 12, "y": 3}, + {"matrix": [9, 2], "x": 13, "y": 3}, + {"matrix": [9, 3], "x": 14, "y": 3}, + {"matrix": [9, 4], "x": 15, "y": 3}, + {"matrix": [9, 5], "x": 16, "y": 3}, + + {"matrix": [4, 1], "x": 1, "y": 4}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 4}, + + {"matrix": [10, 2], "x": 13, "y": 4}, + {"matrix": [10, 3], "x": 14, "y": 4}, + {"matrix": [10, 4], "x": 15, "y": 4}, + + {"matrix": [4, 5], "x": 4, "y": 5}, + {"matrix": [5, 5], "x": 5, "y": 5}, + + {"matrix": [11, 0], "x": 11, "y": 5}, + {"matrix": [10, 0], "x": 12, "y": 5}, + + {"matrix": [4, 4], "x": 4, "y": 4}, + {"matrix": [5, 4], "x": 6, "y": 7}, + {"matrix": [5, 3], "x": 6, "y": 6}, + {"matrix": [5, 1], "x": 7, "y": 6}, + + {"matrix": [11, 4], "x": 9, "y": 6} + {"matrix": [11, 2], "x": 10, "y": 6}, + {"matrix": [11, 1], "x": 10, "y": 7}, + {"matrix": [10, 1], "x": 12, "y": 4}, + + {"matrix": [5, 2], "x": 7, "y": 7}, + {"matrix": [11, 3], "x": 9, "y": 7}, + ] + } + } +} diff --git a/keyboards/handwired/ergo_v_1/keymaps/default/keymap.c b/keyboards/handwired/ergo_v_1/keymaps/default/keymap.c new file mode 100644 index 0000000000..c69fa20367 --- /dev/null +++ b/keyboards/handwired/ergo_v_1/keymaps/default/keymap.c @@ -0,0 +1,74 @@ +// Copyright 2025 https://github.com/wizarddata +// Copyright 2025 https://github.com/VPavliashvili +// SPDX-License-Identifier: GPL-2.0+ + +#include QMK_KEYBOARD_H + +enum layers { + _MN, // main + _FN, // fn + _MS, // mouse movements +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MN] = LAYOUT( +// ┌───────┬───────┬───────┬───────┬───────┬───────┐ ┌───────┬───────┬───────┬───────┬───────┬───────┐ + KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSLS, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_ENT , +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + KC_ESC ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, +// └───────┼───────┼───────┼───────┼───────┴───────┘ └───────┴───────┼───────┼───────┼───────┼───────┘ + XXXXXXX,KC_PGDN,KC_PGUP, KC_HOME,KC_END ,XXXXXXX, +// └───────┴───────┴───────┘ └───────┴───────┴───────┘ +// ┌───────┬───────┐ ┌───────┬───────┐ + KC_PSCR,KC_EQL , KC_MINS,KC_INS , +// ┌────────┬───────┼───────┼───────┤ ├───────┼───────┼───────┬───────┐ + KC_LGUI, KC_SPC ,KC_LCTL,KC_DEL , KC_SCRL,MO(_FN),KC_BSPC,KC_RGUI, +// | ├───────┤ ├───────┤ | + KC_LALT, MO(_MS) +// └────────────────────────┴───────┘ └───────┴───────────────────────┘ + ), + [_FN] = LAYOUT( +// ┌───────┬───────┬───────┬───────┬───────┬───────┐ ┌───────┬───────┬───────┬───────┬───────┬───────┐ + XXXXXXX,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 , +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,KC_VOLD,KC_MUTE,KC_VOLU,_______, KC_F12 ,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______, KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, +// └───────┼───────┼───────┼───────┼───────┴───────┘ └───────┴───────┼───────┼───────┼───────┼───────┘ + _______,_______,_______, _______,_______,_______, +// └───────┴───────┴───────┘ └───────┴───────┴───────┘ +// ┌───────┬───────┐ ┌───────┬───────┐ + _______,_______, _______,_______, +// ┌────────┬───────┼───────┼───────┤ ├───────┼───────┼───────┬───────┐ + _______, _______,_______,_______, _______,_______,_______,_______, +// | ├───────┤ ├───────┤ | + _______, _______ +// └────────────────────────┴───────┘ └───────┴───────────────────────┘ + ), + [_MS] = LAYOUT( +// ┌───────┬───────┬───────┬───────┬───────┬───────┐ ┌───────┬───────┬───────┬───────┬───────┬───────┐ + XXXXXXX,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,MS_WHLU,_______,_______,_______, _______,_______,_______,_______,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,MS_WHLD,_______,MS_BTN1,MS_BTN2, MS_LEFT,MS_DOWN,MS_UP ,MS_RGHT,_______,_______, +// ├───────┼───────┼───────┼───────┼───────┼───────┤ ├───────┼───────┼───────┼───────┼───────┼───────┤ + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, +// └───────┼───────┼───────┼───────┼───────┴───────┘ └───────┴───────┼───────┼───────┼───────┼───────┘ + _______,_______,_______, _______,_______,_______, +// └───────┴───────┴───────┘ └───────┴───────┴───────┘ +// ┌───────┬───────┐ ┌───────┬───────┐ + _______,_______, _______,_______, +// ┌────────┬───────┼───────┼───────┤ ├───────┼───────┼───────┬───────┐ + _______, _______,_______,_______, _______,_______,_______,_______, +// | ├───────┤ ├───────┤ | + _______, _______ +// └────────────────────────┴───────┘ └───────┴───────────────────────┘ + ) +}; diff --git a/keyboards/handwired/ergo_v_1/readme.md b/keyboards/handwired/ergo_v_1/readme.md new file mode 100644 index 0000000000..371ebeae4f --- /dev/null +++ b/keyboards/handwired/ergo_v_1/readme.md @@ -0,0 +1,29 @@ +# Ergo-V-1 + +Fork of [Ergo-S-1](https://github.com/wizarddata/Ergo-S-1) from WizardKeyboards + +Ergo-S-1 on its part is heavily inspired from Kinesis Advantage + +![Ergo-V-1](https://i.imgur.com/eE1l5IV.jpeg) + +This keyboard is practically identical to the orignal one with some differences +* Modified thumb cluster with one extra key +* Improved switch cutouts, compatible with kailh style switches +* unlike Ergo-S-1 this is a wired keyboard based on qmk + +Make example for this keyboard (after setting up your build environment): + + make handwired/ergo_v_1:default + +Flashing example for this keyboard: + + make handwired/ergo_v_1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/evk/readme.md b/keyboards/handwired/evk/readme.md index ccfed391d4..1be2e73cd7 100644 --- a/keyboards/handwired/evk/readme.md +++ b/keyboards/handwired/evk/readme.md @@ -3,4 +3,4 @@ The Ergonomic Vertical Keyboard (EVK) deletes our humpback. * Maintainer: [YangPiCui](https://github.com/YangPiCui) -* Hardware Availability: Upon Custom Ordering \ No newline at end of file +* Hardware Availability: Upon Custom Ordering diff --git a/keyboards/handwired/fabiclawz/alpha_fs/keyboard.json b/keyboards/handwired/fabiclawz/alpha_fs/keyboard.json new file mode 100644 index 0000000000..0d69485773 --- /dev/null +++ b/keyboards/handwired/fabiclawz/alpha_fs/keyboard.json @@ -0,0 +1,268 @@ +{ + "manufacturer": "FabiClawZ", + "keyboard_name": "handwired/fabiclawz/alpha_fs", + "maintainer": "FFS2309", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10"], + "rows": ["GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP26"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "multisplash": true, + "solid_reactive_simple": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [9, 1], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1}, + {"matrix": [9, 2], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 57, "y": 0, "flags": 1}, + {"matrix": [9, 3], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 78, "y": 0, "flags": 1}, + {"matrix": [9, 4], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 1}, + {"matrix": [9, 5], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1}, + {"matrix": [9, 6], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 159, "y": 0, "flags": 1}, + {"matrix": [7, 8], "x": 169, "y": 0, "flags": 1}, + {"matrix": [8, 8], "x": 180, "y": 0, "flags": 1}, + {"matrix": [9, 8], "x": 193, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 1}, + {"matrix": [1, 10], "x": 214, "y": 0, "flags": 1}, + {"matrix": [2, 10], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 15, "flags": 4}, + {"matrix": [8, 2], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 15, "flags": 4}, + {"matrix": [8, 3], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 15, "flags": 4}, + {"matrix": [8, 4], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 94, "y": 15, "flags": 4}, + {"matrix": [8, 5], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 115, "y": 15, "flags": 4}, + {"matrix": [8, 6], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 8], "x": 159, "y": 15, "flags": 1}, + {"matrix": [6, 8], "x": 169, "y": 15, "flags": 1}, + {"matrix": [5, 8], "x": 180, "y": 15, "flags": 1}, + {"matrix": [3, 10], "x": 193, "y": 15, "flags": 8}, + {"matrix": [4, 10], "x": 203, "y": 15, "flags": 4}, + {"matrix": [5, 10], "x": 214, "y": 15, "flags": 4}, + {"matrix": [6, 10], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [7, 1], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 27, "flags": 4}, + {"matrix": [7, 2], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 27, "flags": 4}, + {"matrix": [7, 3], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 78, "y": 27, "flags": 4}, + {"matrix": [7, 4], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 99, "y": 27, "flags": 4}, + {"matrix": [7, 5], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 120, "y": 27, "flags": 4}, + {"matrix": [7, 6], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 147, "y": 20, "flags": 1}, + {"matrix": [2, 8], "x": 159, "y": 27, "flags": 1}, + {"matrix": [3, 8], "x": 169, "y": 27, "flags": 1}, + {"matrix": [4, 8], "x": 180, "y": 27, "flags": 1}, + {"matrix": [0, 9], "x": 193, "y": 27, "flags": 4}, + {"matrix": [1, 9], "x": 203, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 214, "y": 27, "flags": 4}, + {"matrix": [7, 10], "x": 224, "y": 34, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [6, 1], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 39, "y": 40, "flags": 4}, + {"matrix": [6, 2], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 40, "flags": 4}, + {"matrix": [6, 3], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 81, "y": 40, "flags": 4}, + {"matrix": [6, 4], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 102, "y": 40, "flags": 4}, + {"matrix": [6, 5], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 123, "y": 40, "flags": 4}, + {"matrix": [6, 6], "x": 133, "y": 40, "flags": 4}, + {"matrix": [5, 9], "x": 193, "y": 40, "flags": 4}, + {"matrix": [4, 9], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 214, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [5, 1], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 52, "flags": 4}, + {"matrix": [5, 2], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 52, "flags": 4}, + {"matrix": [5, 3], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 52, "flags": 4}, + {"matrix": [5, 4], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 52, "flags": 4}, + {"matrix": [5, 5], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 117, "y": 52, "flags": 4}, + {"matrix": [5, 6], "x": 137, "y": 52, "flags": 1}, + {"matrix": [3, 7], "x": 169, "y": 52, "flags": 1}, + {"matrix": [6, 9], "x": 193, "y": 52, "flags": 4}, + {"matrix": [7, 9], "x": 203, "y": 52, "flags": 4}, + {"matrix": [8, 9], "x": 214, "y": 52, "flags": 4}, + {"matrix": [8, 10], "x": 224, "y": 58, "flags": 1}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [6, 0], "x": 14, "y": 64, "flags": 1}, + {"matrix": [7, 0], "x": 27, "y": 64, "flags": 1}, + {"matrix": [8, 0], "x": 66, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 105, "y": 64, "flags": 1}, + {"matrix": [9, 7], "x": 118, "y": 64, "flags": 1}, + {"matrix": [8, 7], "x": 131, "y": 64, "flags": 1}, + {"matrix": [7, 7], "x": 145, "y": 64, "flags": 1}, + {"matrix": [6, 7], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 7], "x": 169, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 180, "y": 64, "flags": 1}, + {"matrix": [9, 9], "x": 198, "y": 64, "flags": 4}, + {"matrix": [9, 10], "x": 214, "y": 64, "flags": 1} + ] + }, + "url": "https://github.com/FFS2309/alpha_fs_keyboard", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4643" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP11" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [9, 1], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 2], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [9, 2], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [9, 3], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 4], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [9, 4], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 5], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [9, 5], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 6], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [9, 6], "x": 12.75, "y": 0}, + {"label": "Extra1", "matrix": [0, 7], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 8], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [7, 8], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [8, 8], "x": 17.25, "y": 0}, + {"label": "Extra2", "matrix": [9, 8], "x": 18.5, "y": 0}, + {"label": "Extra3", "matrix": [0, 10], "x": 19.5, "y": 0}, + {"label": "Extra4", "matrix": [1, 10], "x": 20.5, "y": 0}, + {"label": "Extra5", "matrix": [2, 10], "x": 21.5, "y": 0}, + {"label": "^", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [8, 1], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [1, 2], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [8, 2], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [1, 3], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [8, 3], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [1, 4], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [8, 4], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [1, 5], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [8, 5], "x": 10, "y": 1.5}, + {"label": "\u00df", "matrix": [1, 6], "x": 11, "y": 1.5}, + {"label": "\u00b4", "matrix": [8, 6], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 7], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 8], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [6, 8], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [5, 8], "x": 17.25, "y": 1.5}, + {"label": "Num Lock", "matrix": [3, 10], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [4, 10], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [5, 10], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [6, 10], "x": 21.5, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [7, 1], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 2], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [7, 2], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 3], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [7, 3], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 4], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [7, 4], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [7, 5], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 6], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [7, 6], "x": 12.5, "y": 2.5}, + {"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Delete", "matrix": [2, 8], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 8], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [4, 8], "x": 17.25, "y": 2.5}, + {"label": "7", "matrix": [0, 9], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [1, 9], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [2, 9], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [7, 10], "x": 21.5, "y": 2.5, "h": 2}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [6, 1], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [6, 2], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 3], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [6, 3], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 4], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [6, 4], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [6, 5], "x": 10.75, "y": 3.5}, + {"label": "@", "matrix": [3, 6], "x": 11.75, "y": 3.5}, + {"label": "~", "matrix": [6, 6], "x": 12.75, "y": 3.5}, + {"label": "4", "matrix": [5, 9], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [4, 9], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [3, 9], "x": 20.5, "y": 3.5}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [5, 1], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [5, 2], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 3], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [5, 3], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 4], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [5, 5], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 6], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [5, 6], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 7], "x": 16.25, "y": 4.5}, + {"label": "1", "matrix": [6, 9], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [7, 9], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [8, 9], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [8, 10], "x": 21.5, "y": 4.5, "h": 2}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [6, 0], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [7, 0], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [8, 0], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [9, 0], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [9, 7], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [8, 7], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [7, 7], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "\u2190", "matrix": [6, 7], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [5, 7], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [4, 7], "x": 17.25, "y": 5.5}, + {"label": "0", "matrix": [9, 9], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [9, 10], "x": 20.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c b/keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c new file mode 100644 index 0000000000..bd9e146baf --- /dev/null +++ b/keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2025 Fabian Felix Selbach (@FFS2309) +// 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, RM_TOGG, KC_PSCR, KC_SCRL, KC_PAUS, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_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_ENT, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + 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_P4, KC_P5, KC_P6, + 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_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/handwired/fabiclawz/alpha_fs/readme.md b/keyboards/handwired/fabiclawz/alpha_fs/readme.md new file mode 100644 index 0000000000..2eae8d5132 --- /dev/null +++ b/keyboards/handwired/fabiclawz/alpha_fs/readme.md @@ -0,0 +1,28 @@ +# handwired/fabiclawz/alpha_fs + +![handwired/fabiclawz/alpha_fs](https://i.imgur.com/FOOmKXN.jpeg) + +My first keyboard with custom PCB, originally designed for the Milk-V duo series of RISC-V MCUs with pin compatibility with the Raspberry Pi Pico used in this +case for QMK. + +* Keyboard Maintainer: [Fabian Felix Selbach](https://github.com/FFS2309) +* Hardware Supported: Raspberry Pi Pico, Custom PCB +* Hardware Availability: [Hardware design files](https://github.com/FFS2309/alpha_fs_keyboard) + +Make example for this keyboard (after setting up your build environment): + + make handwired/fabiclawz/alpha_fs:default + +Flashing example for this keyboard: + + make handwired/fabiclawz/alpha_fs: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 (Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the Pi Pico if available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c b/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c index bcdd1818de..6d0a2baf0b 100644 --- a/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c +++ b/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/footy/readme.md b/keyboards/handwired/footy/readme.md index 6d02fad95c..7c2f2b3b10 100644 --- a/keyboards/handwired/footy/readme.md +++ b/keyboards/handwired/footy/readme.md @@ -39,4 +39,4 @@ You can build either of these firmware images by running the following commands: ``` make handwired/footy:handy make handwired/footy:superwhisper -``` \ No newline at end of file +``` diff --git a/keyboards/handwired/freoduo/readme.md b/keyboards/handwired/freoduo/readme.md index 7fa8af68cd..72fa687454 100644 --- a/keyboards/handwired/freoduo/readme.md +++ b/keyboards/handwired/freoduo/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/freoduo:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/hacked_motospeed/keymaps/german/layers.json b/keyboards/handwired/hacked_motospeed/keymaps/german/layers.json index 7bbd3cd438..b3f65ef735 100644 --- a/keyboards/handwired/hacked_motospeed/keymaps/german/layers.json +++ b/keyboards/handwired/hacked_motospeed/keymaps/german/layers.json @@ -1 +1 @@ -[["KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "LSFT(KC_8)", "LSFT(KC_9)", "KC_PEQL", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LSFT(KC_MINS)", "MO(2)", "MO(6)", "KC_TAB", "KC_BSPC", "KC_SPC", "MO(1)", "KC_LCTL", "KC_LALT", "MO(4)", "KC_LGUI", "MO(2)"], ["LALT(KC_F4)", "LSFT(KC_Q)", "LSFT(KC_W)", "LSFT(KC_E)", "LSFT(KC_R)", "LSFT(KC_T)", "LSFT(KC_Y)", "LSFT(KC_U)", "LSFT(KC_I)", "LSFT(KC_O)", "LSFT(KC_P)", "LSFT(KC_A)", "LSFT(KC_S)", "LSFT(KC_D)", "LSFT(KC_F)", "LSFT(KC_G)", "LSFT(KC_H)", "LSFT(KC_J)", "LSFT(KC_K)", "LSFT(KC_L)", "RALT(KC_7)", "RALT(KC_0)", "KC_NUHS", "LSFT(KC_Z)", "LSFT(KC_X)", "LSFT(KC_C)", "LSFT(KC_V)", "LSFT(KC_B)", "LSFT(KC_N)", "LSFT(KC_M)", "LSFT(KC_COMM)", "LSFT(KC_DOT)", "LSFT(KC_1)", "MO(3)", "TG(6)", "LSFT(KC_TAB)", "KC_DEL", "KC_ENT", "KC_TRNS", "LSFT(KC_LCTL)", "LSFT(KC_LALT)", "LSFT(KC_RALT)", "LSFT(KC_LGUI)", "MO(3)"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "KC_LBRC", "KC_UP", "KC_SCLN", "KC_PSCR", "KC_QUOT", "KC_MINS", "LSFT(KC_7)", "LSFT(KC_2)", "LSFT(KC_NUHS)", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NUBS", "LSFT(KC_NUBS)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "KC_SLSH", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "KC_TAB", "KC_DEL", "KC_ENT", "MO(3)", "OU_BT", "OU_USB", "OU_AUTO", "BL_STEP", "KC_TRNS"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "LSFT(KC_LBRC)", "KC_UP", "LSFT(KC_SCLN)", "KC_PSCR", "LSFT(KC_QUOT)", "KC_MINS", "RALT(KC_MINS)", "LSFT(KC_EQL)", "KC_EQL", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "RALT(KC_8)", "RALT(KC_9)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "LSFT(KC_SLSH)", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "LSFT(KC_TAB)", "LSFT(KC_DEL)", "LSFT(KC_ENT)", "KC_TRNS", "RSFT(KC_RCTL)", "RSFT(KC_LALT)", "RSFT(KC_RALT)", "RSFT(KC_RGUI)", "KC_TRNS"], ["RALT(KC_ESC)", "RALT(KC_Q)", "RALT(KC_W)", "RALT(KC_E)", "RALT(KC_R)", "RALT(KC_T)", "RALT(KC_Y)", "RALT(KC_U)", "RALT(KC_I)", "RALT(KC_O)", "RALT(KC_P)", "RALT(KC_A)", "RALT(KC_S)", "RALT(KC_D)", "RALT(KC_F)", "RALT(KC_G)", "RALT(KC_H)", "RALT(KC_J)", "RALT(KC_K)", "RALT(KC_L)", "RALT(KC_8)", "RALT(KC_9)", "LSFT(KC_0)", "RALT(KC_Z)", "RALT(KC_X)", "RALT(KC_C)", "RALT(KC_V)", "RALT(KC_B)", "RALT(KC_N)", "RALT(KC_M)", "RALT(KC_COMM)", "RALT(KC_DOT)", "RALT(KC_6)", "KC_NO", "RALT(KC_ENT)", "RALT(KC_TAB)", "RALT(KC_DEL)", "RALT(KC_SPC)", "RALT(KC_LSFT)", "RALT(KC_LCTL)", "RALT(KC_LALT)", "KC_TRNS", "RALT(KC_LGUI)", "KC_NO"], ["KC_0", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_F11", "KC_F12", "KC_F13", "KC_F14", "KC_F15", "KC_F16", "KC_F17", "KC_F18", "KC_F19", "KC_F20", "KC_F21", "KC_F22", "KC_F23", "KC_NO", "KC_TRNS", "KC_TAB", "KC_BSPC", "KC_SPC", "KC_LSFT", "KC_LCTL", "KC_LALT", "KC_RALT", "KC_LGUI", "KC_NO"]] \ No newline at end of file +[["KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "LSFT(KC_8)", "LSFT(KC_9)", "KC_PEQL", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LSFT(KC_MINS)", "MO(2)", "MO(6)", "KC_TAB", "KC_BSPC", "KC_SPC", "MO(1)", "KC_LCTL", "KC_LALT", "MO(4)", "KC_LGUI", "MO(2)"], ["LALT(KC_F4)", "LSFT(KC_Q)", "LSFT(KC_W)", "LSFT(KC_E)", "LSFT(KC_R)", "LSFT(KC_T)", "LSFT(KC_Y)", "LSFT(KC_U)", "LSFT(KC_I)", "LSFT(KC_O)", "LSFT(KC_P)", "LSFT(KC_A)", "LSFT(KC_S)", "LSFT(KC_D)", "LSFT(KC_F)", "LSFT(KC_G)", "LSFT(KC_H)", "LSFT(KC_J)", "LSFT(KC_K)", "LSFT(KC_L)", "RALT(KC_7)", "RALT(KC_0)", "KC_NUHS", "LSFT(KC_Z)", "LSFT(KC_X)", "LSFT(KC_C)", "LSFT(KC_V)", "LSFT(KC_B)", "LSFT(KC_N)", "LSFT(KC_M)", "LSFT(KC_COMM)", "LSFT(KC_DOT)", "LSFT(KC_1)", "MO(3)", "TG(6)", "LSFT(KC_TAB)", "KC_DEL", "KC_ENT", "KC_TRNS", "LSFT(KC_LCTL)", "LSFT(KC_LALT)", "LSFT(KC_RALT)", "LSFT(KC_LGUI)", "MO(3)"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "KC_LBRC", "KC_UP", "KC_SCLN", "KC_PSCR", "KC_QUOT", "KC_MINS", "LSFT(KC_7)", "LSFT(KC_2)", "LSFT(KC_NUHS)", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NUBS", "LSFT(KC_NUBS)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "KC_SLSH", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "KC_TAB", "KC_DEL", "KC_ENT", "MO(3)", "OU_BT", "OU_USB", "OU_AUTO", "BL_STEP", "KC_TRNS"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "LSFT(KC_LBRC)", "KC_UP", "LSFT(KC_SCLN)", "KC_PSCR", "LSFT(KC_QUOT)", "KC_MINS", "RALT(KC_MINS)", "LSFT(KC_EQL)", "KC_EQL", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "RALT(KC_8)", "RALT(KC_9)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "LSFT(KC_SLSH)", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "LSFT(KC_TAB)", "LSFT(KC_DEL)", "LSFT(KC_ENT)", "KC_TRNS", "RSFT(KC_RCTL)", "RSFT(KC_LALT)", "RSFT(KC_RALT)", "RSFT(KC_RGUI)", "KC_TRNS"], ["RALT(KC_ESC)", "RALT(KC_Q)", "RALT(KC_W)", "RALT(KC_E)", "RALT(KC_R)", "RALT(KC_T)", "RALT(KC_Y)", "RALT(KC_U)", "RALT(KC_I)", "RALT(KC_O)", "RALT(KC_P)", "RALT(KC_A)", "RALT(KC_S)", "RALT(KC_D)", "RALT(KC_F)", "RALT(KC_G)", "RALT(KC_H)", "RALT(KC_J)", "RALT(KC_K)", "RALT(KC_L)", "RALT(KC_8)", "RALT(KC_9)", "LSFT(KC_0)", "RALT(KC_Z)", "RALT(KC_X)", "RALT(KC_C)", "RALT(KC_V)", "RALT(KC_B)", "RALT(KC_N)", "RALT(KC_M)", "RALT(KC_COMM)", "RALT(KC_DOT)", "RALT(KC_6)", "KC_NO", "RALT(KC_ENT)", "RALT(KC_TAB)", "RALT(KC_DEL)", "RALT(KC_SPC)", "RALT(KC_LSFT)", "RALT(KC_LCTL)", "RALT(KC_LALT)", "KC_TRNS", "RALT(KC_LGUI)", "KC_NO"], ["KC_0", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_F11", "KC_F12", "KC_F13", "KC_F14", "KC_F15", "KC_F16", "KC_F17", "KC_F18", "KC_F19", "KC_F20", "KC_F21", "KC_F22", "KC_F23", "KC_NO", "KC_TRNS", "KC_TAB", "KC_BSPC", "KC_SPC", "KC_LSFT", "KC_LCTL", "KC_LALT", "KC_RALT", "KC_LGUI", "KC_NO"]] diff --git a/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md b/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md index fd07b155fb..41a2f2d9a4 100755 --- a/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md +++ b/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md @@ -10,4 +10,4 @@ To make use of this file you will need follow the following steps: * Copy this folder into %s * You are now ready to compile or use your keymap with the source -More information can be found in the QMK docs: \ No newline at end of file +More information can be found in the QMK docs: diff --git a/keyboards/handwired/hacked_motospeed/readme.md b/keyboards/handwired/hacked_motospeed/readme.md index ac2d4afc28..3e1e058033 100644 --- a/keyboards/handwired/hacked_motospeed/readme.md +++ b/keyboards/handwired/hacked_motospeed/readme.md @@ -20,4 +20,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/hacked_motospeed:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/heisenberg/keymaps/default/keymap.c b/keyboards/handwired/heisenberg/keymaps/default/keymap.c index 044cb42773..9b6986262a 100644 --- a/keyboards/handwired/heisenberg/keymaps/default/keymap.c +++ b/keyboards/handwired/heisenberg/keymaps/default/keymap.c @@ -165,4 +165,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Enable the adjust layer when both lower and layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} \ No newline at end of file +} diff --git a/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c b/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c index 73457a597e..7125fb71a5 100644 --- a/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c +++ b/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c @@ -229,4 +229,4 @@ void keyboard_post_init_user(void) { rgblight_sethsv_noeeprom(100, 255, 255); // sets the color to greenish without saving //rgblight_sethsv_noeeprom(HSV_TURQUOISE); -} \ No newline at end of file +} diff --git a/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md b/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md index d994401bbd..1bdc327c5c 100644 --- a/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md +++ b/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md @@ -2,4 +2,4 @@ You can flash the "turkishish" layout (which I'm currently using) like: - make handwired/heisenberg:turkishish \ No newline at end of file + make handwired/heisenberg:turkishish diff --git a/keyboards/handwired/hen_des/epssp75/readme.md b/keyboards/handwired/hen_des/epssp75/readme.md index 5c353d215b..6ab66d52be 100644 --- a/keyboards/handwired/hen_des/epssp75/readme.md +++ b/keyboards/handwired/hen_des/epssp75/readme.md @@ -15,4 +15,4 @@ Detailed [description](https://hen-des.github.io/epssp75/index.html) and expirie 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 \ No newline at end of file +* **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/handwired/hnah108/hnah108.c b/keyboards/handwired/hnah108/hnah108.c deleted file mode 100644 index fde7b16564..0000000000 --- a/keyboards/handwired/hnah108/hnah108.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2019 HnahKB - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 18, 17, 16, NO_LED, 15, 14, NO_LED, NO_LED, 13, 12, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 19, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 20, NO_LED, NO_LED, NO_LED, NO_LED, 24, NO_LED, NO_LED, 26, NO_LED, NO_LED }, - { 21, 22, 23, 25, 27, NO_LED, 28, 29, NO_LED, 0, 1 }, - { 11, 10, NO_LED, 9, NO_LED, 8, NO_LED, 7, 6, NO_LED, 5 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 4 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 3 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 2 } - }, { - // LED Index to Physical Position - { 0, 0 }, { 18, 0 }, { 37, 0 }, { 56, 0 }, { 74, 0 }, { 93, 0 }, { 112, 0 }, { 130, 0 }, { 149, 0 }, { 168, 0 }, { 186, 0 }, { 205, 0 }, { 224, 0 }, - { 0, 25 }, { 224, 25 }, - { 0, 51 }, { 224, 51 }, - { 0, 63 }, { 18, 63 }, { 37, 63 }, { 56, 63 }, { 74, 63 }, { 93, 63 }, { 112, 63 }, { 130, 63 }, { 149, 63 }, { 168, 63 }, { 186, 63 }, { 205, 63 }, { 224, 63 } - }, { - // LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, - 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/handwired/hnah108/keyboard.json b/keyboards/handwired/hnah108/keyboard.json index a02a70173c..808fd9eb24 100644 --- a/keyboards/handwired/hnah108/keyboard.json +++ b/keyboards/handwired/hnah108/keyboard.json @@ -51,7 +51,39 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [5, 9], "x": 0, "y": 0, "flags": 1}, + {"matrix": [5, 10], "x": 18, "y": 0, "flags": 1}, + {"matrix": [9, 10], "x": 37, "y": 0, "flags": 1}, + {"matrix": [8, 10], "x": 56, "y": 0, "flags": 1}, + {"matrix": [7, 10], "x": 74, "y": 0, "flags": 1}, + {"matrix": [6, 10], "x": 93, "y": 0, "flags": 1}, + {"matrix": [6, 8], "x": 112, "y": 0, "flags": 1}, + {"matrix": [6, 7], "x": 130, "y": 0, "flags": 1}, + {"matrix": [6, 5], "x": 149, "y": 0, "flags": 1}, + {"matrix": [6, 3], "x": 168, "y": 0, "flags": 1}, + {"matrix": [6, 1], "x": 186, "y": 0, "flags": 1}, + {"matrix": [6, 0], "x": 205, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 0, "y": 25, "flags": 1}, + {"matrix": [0, 5], "x": 224, "y": 25, "flags": 1}, + {"matrix": [0, 4], "x": 0, "y": 51, "flags": 1}, + {"matrix": [0, 2], "x": 224, "y": 51, "flags": 1}, + {"matrix": [0, 1], "x": 0, "y": 63, "flags": 1}, + {"matrix": [0, 0], "x": 18, "y": 63, "flags": 1}, + {"matrix": [2, 0], "x": 37, "y": 63, "flags": 1}, + {"matrix": [4, 0], "x": 56, "y": 63, "flags": 1}, + {"matrix": [5, 0], "x": 74, "y": 63, "flags": 1}, + {"matrix": [5, 1], "x": 93, "y": 63, "flags": 1}, + {"matrix": [5, 2], "x": 112, "y": 63, "flags": 1}, + {"matrix": [4, 5], "x": 130, "y": 63, "flags": 1}, + {"matrix": [5, 3], "x": 149, "y": 63, "flags": 1}, + {"matrix": [4, 8], "x": 168, "y": 63, "flags": 1}, + {"matrix": [5, 4], "x": 186, "y": 63, "flags": 1}, + {"matrix": [5, 6], "x": 205, "y": 63, "flags": 1}, + {"matrix": [5, 7], "x": 224, "y": 63, "flags": 1} + ] }, "features": { "backlight": true, diff --git a/keyboards/handwired/hnah40rgb/hnah40rgb.c b/keyboards/handwired/hnah40rgb/hnah40rgb.c deleted file mode 100644 index 1f877975e5..0000000000 --- a/keyboards/handwired/hnah40rgb/hnah40rgb.c +++ /dev/null @@ -1,47 +0,0 @@ -#include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -#if defined (ansi) -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, - {23, 24, 25, 26, 27, 28, 29, 30, 31, NO_LED, 34}, - {43, 42, 41, NO_LED, NO_LED, NO_LED, 38, NO_LED, 36, 35, 11} -}, { - //LED Index to Physical Positon - { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 224, 0}, { 224, 0}, - {224, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21}, - { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 224,42}, - {224, 64}, {224, 64}, {181,64 }, {162, 64}, {122,64}, {101,64}, { 61,64}, { 40,64}, { 20,64}, { 0,64}, - { 0,64}, { 0,0}, { 224,10}, { 224,18}, { 224,30}, { 224,47}, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, -} }; - -#else -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, - {23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34}, - {43, 42, 41, NO_LED, 40, 39, 38, 37, 36, 35, 11} -}, { - //LED Index to Physical Positon - { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 224, 0}, { 224, 0}, - {224, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21}, - { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 224,42}, - {224, 64}, {224, 64}, {181,64 }, {162, 64}, {122,64}, {101,64}, { 61,64}, { 40,64}, { 20,64}, { 0,64}, - { 0,64}, { 0,0}, { 224,10}, { 224,18}, { 224,30}, { 224,47}, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, -} }; -#endif -#endif \ No newline at end of file diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json index 6f13b70095..ec824ea14f 100644 --- a/keyboards/handwired/hnah40rgb/keyboard.json +++ b/keyboards/handwired/hnah40rgb/keyboard.json @@ -60,6 +60,58 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 224, "y": 0, "flags": 4}, + {"matrix": [3, 10], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 10], "x": 224, "y": 21, "flags": 1}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"x": 224, "y": 42, "flags": 1}, + {"matrix": [2, 10], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 181, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 122, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 101, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"x": 0, "y": 64, "flags": 1}, + {"x": 0, "y": 0, "flags": 1}, + {"x": 224, "y": 10, "flags": 1}, + {"x": 224, "y": 18, "flags": 1}, + {"x": 224, "y": 30, "flags": 1}, + {"x": 224, "y": 47, "flags": 1} + ], "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/handwired/ibm_wheelwriter/keyboard.json b/keyboards/handwired/ibm_wheelwriter/keyboard.json index 91f56540e2..8dfb3fc403 100644 --- a/keyboards/handwired/ibm_wheelwriter/keyboard.json +++ b/keyboards/handwired/ibm_wheelwriter/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "6715 Wheelwriter", "manufacturer": "IBM", - "url": "https://github.com/andresteare/qmk_firmware", "maintainer": "andresteare", "usb": { "vid": "0x8767", diff --git a/keyboards/handwired/itstleo9/info.json b/keyboards/handwired/itstleo9/info.json index 340b8a9e33..6b0d2d85a1 100644 --- a/keyboards/handwired/itstleo9/info.json +++ b/keyboards/handwired/itstleo9/info.json @@ -30,4 +30,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/itstleo9/promicro/keyboard.json b/keyboards/handwired/itstleo9/promicro/keyboard.json index 4cbc1050c0..2d297142d6 100644 --- a/keyboards/handwired/itstleo9/promicro/keyboard.json +++ b/keyboards/handwired/itstleo9/promicro/keyboard.json @@ -4,4 +4,4 @@ "cols": ["D1", "D0", "D4"], "rows": ["F4", "F5", "F6"] } -} \ No newline at end of file +} diff --git a/keyboards/handwired/itstleo9/readme.md b/keyboards/handwired/itstleo9/readme.md index 233407b393..0b4d61b0c4 100644 --- a/keyboards/handwired/itstleo9/readme.md +++ b/keyboards/handwired/itstleo9/readme.md @@ -34,4 +34,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key) and plug in the keyboard * **Physical reset button**: Double-press reset button -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/itstleo9/rp2040/keyboard.json b/keyboards/handwired/itstleo9/rp2040/keyboard.json index 0272150df1..749af38688 100644 --- a/keyboards/handwired/itstleo9/rp2040/keyboard.json +++ b/keyboards/handwired/itstleo9/rp2040/keyboard.json @@ -6,4 +6,4 @@ "cols": ["GP10", "GP11", "GP12"], "rows": ["GP21", "GP20", "GP19"] } -} \ No newline at end of file +} diff --git a/keyboards/handwired/jankrp2040dactyl/config.h b/keyboards/handwired/jankrp2040dactyl/config.h index 0cabd35336..a5f277120e 100644 --- a/keyboards/handwired/jankrp2040dactyl/config.h +++ b/keyboards/handwired/jankrp2040dactyl/config.h @@ -2,4 +2,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define GRAVE_ESC_SHIFT_OVERRIDE \ No newline at end of file +#define GRAVE_ESC_SHIFT_OVERRIDE diff --git a/keyboards/handwired/jopr/jopr.c b/keyboards/handwired/jopr/jopr.c index cb155ecb4b..0ecb9d4d9f 100644 --- a/keyboards/handwired/jopr/jopr.c +++ b/keyboards/handwired/jopr/jopr.c @@ -4,4 +4,4 @@ void led_init_ports(void) { gpio_set_pin_output(F0); gpio_set_pin_output(F1); gpio_set_pin_output(F4); -} \ No newline at end of file +} diff --git a/keyboards/handwired/jopr/keymaps/modded_white/keymap.c b/keyboards/handwired/jopr/keymaps/modded_white/keymap.c index f062953b3f..20da1fb6f6 100644 --- a/keyboards/handwired/jopr/keymaps/modded_white/keymap.c +++ b/keyboards/handwired/jopr/keymaps/modded_white/keymap.c @@ -57,4 +57,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/handwired/jotanck/keyboard.json b/keyboards/handwired/jotanck/keyboard.json index bddcce9fa5..028ef31c49 100644 --- a/keyboards/handwired/jotanck/keyboard.json +++ b/keyboards/handwired/jotanck/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jotanck", "manufacturer": "Jotix", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/jotanck", "maintainer": "jotix", "usb": { "vid": "0x4A4F", diff --git a/keyboards/handwired/jotlily60/keyboard.json b/keyboards/handwired/jotlily60/keyboard.json index fd072d83db..2d658dac0e 100644 --- a/keyboards/handwired/jotlily60/keyboard.json +++ b/keyboards/handwired/jotlily60/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "Jotix", "keyboard_name": "jotlily60", "maintainer" : "jotix", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/jotlily60", "usb": { "vid": "0x4A4F", "pid": "0x2332", diff --git a/keyboards/handwired/k8split/keyboard.json b/keyboards/handwired/k8split/keyboard.json index 2312d43689..b69f91a801 100644 --- a/keyboards/handwired/k8split/keyboard.json +++ b/keyboards/handwired/k8split/keyboard.json @@ -13,6 +13,11 @@ "mousekey": true, "nkro": true }, + "host": { + "default": { + "nkro": true + } + }, "matrix_pins": { "cols": ["C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], "rows": ["D5", "D3", "D2", "D1", "D0", "B7"] diff --git a/keyboards/handwired/k_numpad17/readme.md b/keyboards/handwired/k_numpad17/readme.md index 76bbaf4391..35f42f18a8 100644 --- a/keyboards/handwired/k_numpad17/readme.md +++ b/keyboards/handwired/k_numpad17/readme.md @@ -22,4 +22,4 @@ Bootmagic is enabled. Press the key at (0,0) while plugging the keyboard in to * Keyboard Maintainer: [Karlssn](https://github.com/Karlssn) * Hardware Availability: [Casefile](https://www.thingiverse.com/thing:4062409) -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). \ No newline at end of file +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/lagrange/transport.c b/keyboards/handwired/lagrange/transport.c index 3ff2e9f409..ef0006172d 100644 --- a/keyboards/handwired/lagrange/transport.c +++ b/keyboards/handwired/lagrange/transport.c @@ -158,7 +158,7 @@ void transport_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) /* Update the layer and LED state if necessary. */ - if (!isLeftHand) { + if (!is_keyboard_left()) { if (context.led_state.raw != new_context.led_state.raw) { context.led_state.raw = new_context.led_state.raw; led_update_kb(context.led_state); diff --git a/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md b/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md index 92d37ad8b9..03e46d4b4a 100644 --- a/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md +++ b/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md @@ -1,4 +1,4 @@ # The default keymap for mechboards_micropad This is a 4 key micropad freebie from Mechboards and Yiancar-Designs. -Press the keys to find out the secrets:) \ No newline at end of file +Press the keys to find out the secrets:) diff --git a/keyboards/handwired/minorca/keymaps/default/readme.md b/keyboards/handwired/minorca/keymaps/default/readme.md index 6ed31f82b3..8f0c28966c 100644 --- a/keyboards/handwired/minorca/keymaps/default/readme.md +++ b/keyboards/handwired/minorca/keymaps/default/readme.md @@ -2,4 +2,4 @@ Copied from https://github.com/pancinteractive/qmk_firmware/blob/master/keyboard/minorca_mkV/keymaps/default/keymap.c -It looks incomplete. \ No newline at end of file +It looks incomplete. diff --git a/keyboards/handwired/numpad20/readme.md b/keyboards/handwired/numpad20/readme.md index 4e14fbb005..bcdc0b7ad9 100644 --- a/keyboards/handwired/numpad20/readme.md +++ b/keyboards/handwired/numpad20/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/numpad20:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/handwired/oem_ansi_fullsize/keyboard.json b/keyboards/handwired/oem_ansi_fullsize/keyboard.json index 3c3ebb2646..c72444cc61 100644 --- a/keyboards/handwired/oem_ansi_fullsize/keyboard.json +++ b/keyboards/handwired/oem_ansi_fullsize/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "oem_ansi_fullsize", "manufacturer": "Cian Johnston", - "url": "https://github.com/johnstcn/qmk", "maintainer": "johnstcn", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/oem_iso_fullsize/keyboard.json b/keyboards/handwired/oem_iso_fullsize/keyboard.json index dcff4541f1..c31c8e917c 100644 --- a/keyboards/handwired/oem_iso_fullsize/keyboard.json +++ b/keyboards/handwired/oem_iso_fullsize/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "teclado_oscar", "manufacturer": "Gamdias", - "url": "https://github.com/andresteare/qmk_firmware", "maintainer": "andresteare", "usb": { "vid": "0x9856", diff --git a/keyboards/handwired/oem_iso_fullsize/readme.md b/keyboards/handwired/oem_iso_fullsize/readme.md index 47aba78653..5e2ebe9eff 100644 --- a/keyboards/handwired/oem_iso_fullsize/readme.md +++ b/keyboards/handwired/oem_iso_fullsize/readme.md @@ -27,4 +27,4 @@ These line are specifically to my pinout so it's probably not essencial for you #define LED_SCROLL_LOCK_PIN A3 #define LED_NUM_LOCK_PIN C6 #define BACKLIGHT_PINS { B5, E5, E4, A7, A1, A2 } -#define BACKLIGHT_LEVELS 1 \ No newline at end of file +#define BACKLIGHT_LEVELS 1 diff --git a/keyboards/handwired/onekey/bluepill_uf2boot/readme.md b/keyboards/handwired/onekey/bluepill_uf2boot/readme.md index 7886ed1888..108d6f3167 100644 --- a/keyboards/handwired/onekey/bluepill_uf2boot/readme.md +++ b/keyboards/handwired/onekey/bluepill_uf2boot/readme.md @@ -4,4 +4,4 @@ To trigger keypress, short together pins *B0* and *A7*. This variant requires the uf2-stm32f103 bootloader to be installed. This can be downloaded from the [uf2-stm32f103 releases page](https://github.com/mmoskal/uf2-stm32f103/releases). -Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. \ No newline at end of file +Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index a9508bc4cc..7ddc2ed5fa 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -11,7 +11,6 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U // settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port -#define OLED_DISPLAY_128X32 #define I2C_DRIVER I2CD0 #define I2C1_SDA_PIN GP12 #define I2C1_SCL_PIN GP13 diff --git a/keyboards/handwired/onekey/keymaps/digitizer/rules.mk b/keyboards/handwired/onekey/keymaps/digitizer/rules.mk index ea9f9bd9ac..9b17f2fa2c 100644 --- a/keyboards/handwired/onekey/keymaps/digitizer/rules.mk +++ b/keyboards/handwired/onekey/keymaps/digitizer/rules.mk @@ -1 +1 @@ -DIGITIZER_ENABLE = yes \ No newline at end of file +DIGITIZER_ENABLE = yes diff --git a/keyboards/handwired/onekey/nucleo_f446re/board.h b/keyboards/handwired/onekey/nucleo_f446re/board.h index 0c5f4dde79..54c93c551a 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/board.h +++ b/keyboards/handwired/onekey/nucleo_f446re/board.h @@ -4,6 +4,5 @@ #include_next -#undef STM32_HSECLK -#define STM32_HSECLK 8000000U +// Configure clocks to use onboard STLINKs MCO as HSE is not populated by default #define STM32_HSE_BYPASS diff --git a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h index 701d61d31d..ba463bf4f7 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h +++ b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h @@ -4,12 +4,6 @@ #include_next -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 4 - -#undef STM32_PLLSAIM_VALUE -#define STM32_PLLSAIM_VALUE 4 - #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md index b0645b65fe..71a5e48184 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/readme.md +++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md @@ -1,4 +1,4 @@ -# STM32 Nucleo-L432 onekey +# STM32 Nucleo-F446 onekey To trigger keypress, short together pins *A0* and *A1*. Note that the pin numbering is relative to the MCU, so that A0 and A1 refer to PA0 and PA1 on the MCU (which are also labelled A0 and A1 on the board, but this isn't true for the other PAx pins). diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/readme.md b/keyboards/handwired/onekey/sipeed_longan_nano/readme.md index 0a3a291576..ee0590fa3e 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/readme.md +++ b/keyboards/handwired/onekey/sipeed_longan_nano/readme.md @@ -2,4 +2,4 @@ Supported Hardware: *GD32VF103CB Sipeed Longan Nano*. -To trigger keypress, short together pins *B0* and *A7*. \ No newline at end of file +To trigger keypress, short together pins *B0* and *A7*. diff --git a/keyboards/handwired/onekey/stm32f405_feather/readme.md b/keyboards/handwired/onekey/stm32f405_feather/readme.md index 49a05725d5..beac723f6d 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/readme.md +++ b/keyboards/handwired/onekey/stm32f405_feather/readme.md @@ -4,4 +4,4 @@ To trigger keypress, short together pins *GPIO 12 / PC2* and *GPIO 11 / PC3*. -https://learn.adafruit.com/adafruit-stm32f405-feather-express/dfu-bootloader-details#enabling-dfu-bootloader-mode-3045622-2 \ No newline at end of file +https://learn.adafruit.com/adafruit-stm32f405-feather-express/dfu-bootloader-details#enabling-dfu-bootloader-mode-3045622-2 diff --git a/keyboards/handwired/onekey/teensy_lc/readme.md b/keyboards/handwired/onekey/teensy_lc/readme.md index 20e9be5bed..49a3b97693 100644 --- a/keyboards/handwired/onekey/teensy_lc/readme.md +++ b/keyboards/handwired/onekey/teensy_lc/readme.md @@ -35,4 +35,4 @@ When setting matrix pins, you need to use the MCU definitions instead of what is | 23/A9 | C2 | | | 24/A10 | E20 | | | 25/A11 | E21 | | -| 26/A12 | E30 | | \ No newline at end of file +| 26/A12 | E30 | | diff --git a/keyboards/handwired/orbweaver/keyboard.json b/keyboards/handwired/orbweaver/keyboard.json index 73baa9a21d..0061c79ba2 100644 --- a/keyboards/handwired/orbweaver/keyboard.json +++ b/keyboards/handwired/orbweaver/keyboard.json @@ -12,8 +12,29 @@ "rgb_matrix": true }, "rgb_matrix": { - "center_point": [40, 30], - "driver": "is31fl3731" + "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 0], "x": 56, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 168, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 0, "y": 40, "flags": 4}, + {"matrix": [2, 0], "x": 56, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 168, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 0, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 56, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 112, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 168, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 224, "y": 60, "flags": 4} + ] }, "matrix_pins": { "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], diff --git a/keyboards/handwired/orbweaver/orbweaver.c b/keyboards/handwired/orbweaver/orbweaver.c index f89d1ca363..8c23818eea 100644 --- a/keyboards/handwired/orbweaver/orbweaver.c +++ b/keyboards/handwired/orbweaver/orbweaver.c @@ -15,10 +15,10 @@ // // SPDX-License-Identifier: GPL-2.0-or-later -// This IS31FL3731 configuration is for a Razer Orbweaver Chroma. -// It was reverse-engineered by testing all possible Cx_y combinations (144 total), +// This IS31FL3731 configuration is for a Razer Orbweaver Chroma. +// It was reverse-engineered by testing all possible Cx_y combinations (144 total), // and determining which ones addressed individual diodes (60 total). These were then -// placed in order R-G-B, sweeping left to right, and then top to bottom. +// placed in order R-G-B, sweeping left to right, and then top to bottom. #include "rgb_matrix.h" @@ -30,55 +30,24 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { * | | | B location * | | | | */ {0, C9_1, C8_1, C7_1}, //top left key. - {0, C9_2, C8_2, C7_2}, + {0, C9_2, C8_2, C7_2}, {0, C9_3, C8_3, C7_3}, {0, C9_4, C8_4, C7_4}, - {0, C9_5, C8_5, C7_5}, //top right key. + {0, C9_5, C8_5, C7_5}, //top right key. {0, C9_6, C8_6, C7_6}, - {0, C9_7, C8_7, C6_6}, + {0, C9_7, C8_7, C6_6}, {0, C9_8, C7_7, C6_7}, - {0, C1_8, C2_8, C3_8}, + {0, C1_8, C2_8, C3_8}, {0, C1_7, C2_7, C3_7}, {0, C1_6, C2_6, C3_6}, - {0, C1_5, C2_5, C3_5}, - {0, C1_4, C2_4, C3_4}, - {0, C1_3, C2_3, C3_3}, + {0, C1_5, C2_5, C3_5}, + {0, C1_4, C2_4, C3_4}, + {0, C1_3, C2_3, C3_3}, {0, C1_2, C2_2, C4_3}, {0, C1_1, C3_2, C4_2}, //lower left key - {0, C9_9, C8_9, C7_9}, + {0, C9_9, C8_9, C7_9}, {0, C9_10, C8_10, C7_10}, {0, C9_11, C8_11, C7_11}, {0, C9_12, C8_12, C7_12} //lower right key }; - -led_config_t g_led_config = { - // Matrix location to LED index - { - { 0, 2, 3, 4, 5 }, - { 6, 7, 8, 9, 10 }, - { 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 19 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } - }, - - // LED index to physical location - { - {0,0}, {20,0}, {40,0}, {60,0}, {80,0}, - {0,20}, {20,20}, {40,20}, {60,20}, {80,20}, - {0,40}, {20,40}, {40,40}, {60,40}, {80,40}, - {0,60}, {20,60}, {40,60}, {60,60}, {80,60} - }, - - // LED index to flags - { - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4 - } - }; - - - diff --git a/keyboards/handwired/owlet60/keyboard.json b/keyboards/handwired/owlet60/keyboard.json index fad204e6fa..33b4e1bbae 100644 --- a/keyboards/handwired/owlet60/keyboard.json +++ b/keyboards/handwired/owlet60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Owlet60", "manufacturer": "worthlessowl", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/owlet60/", "maintainer": "worthlessowl", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/owlet60/matrix.c b/keyboards/handwired/owlet60/matrix.c index 7ef5d66a9f..bc4e698966 100644 --- a/keyboards/handwired/owlet60/matrix.c +++ b/keyboards/handwired/owlet60/matrix.c @@ -29,82 +29,59 @@ along with this program. If not, see . #include "timer.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; -static const uint8_t col_select_pins[3] = MATRIX_COL_SELECT_PINS; -static const uint8_t dat_pin = MATRIX_COL_DATA_PIN; +static const uint8_t col_select_pins[3] = MATRIX_COL_SELECT_PINS; +static const uint8_t dat_pin = MATRIX_COL_DATA_PIN; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //raw values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // raw values /* 2d array containing binary representation of its index */ static const uint8_t num_in_binary[8][3] = { - {0, 0, 0}, - {0, 0, 1}, - {0, 1, 0}, - {0, 1, 1}, - {1, 0, 0}, - {1, 0, 1}, - {1, 1, 0}, - {1, 1, 1}, + {0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1}, {1, 0, 0}, {1, 0, 1}, {1, 1, 0}, {1, 1, 1}, }; static void select_col_analog(uint8_t col); static void mux_pin_control(const uint8_t binary[]); -void debounce_init(uint8_t num_rows); -void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed); +void debounce_init(void); +void debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed); +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_init_user(void) {} +__attribute__((weak)) void matrix_scan_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) {} - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); } -inline -uint8_t matrix_rows(void) -{ +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) -{ +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -227,7 +224,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << tp_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << tp_index); } return (last_row_value != current_matrix[current_row]); } @@ -245,7 +242,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row diff --git a/keyboards/handwired/promethium/readme.md b/keyboards/handwired/promethium/readme.md index e63d2f1add..8194214535 100644 --- a/keyboards/handwired/promethium/readme.md +++ b/keyboards/handwired/promethium/readme.md @@ -10,4 +10,4 @@ Features: * Bluetooth LE *TBD* * Battery * Per switch RGB LED -* Proximity sensor for energy conservation *TBD* \ No newline at end of file +* Proximity sensor for energy conservation *TBD* diff --git a/keyboards/handwired/promethium/rgbsps.h b/keyboards/handwired/promethium/rgbsps.h index 77689344fc..2e3c9fa0b3 100644 --- a/keyboards/handwired/promethium/rgbsps.h +++ b/keyboards/handwired/promethium/rgbsps.h @@ -4,4 +4,4 @@ void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b); void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b); void rgbsps_turnoff(void); void rgbsps_send(void); -void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val); \ No newline at end of file +void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val); diff --git a/keyboards/handwired/pterodactyl/matrix.c b/keyboards/handwired/pterodactyl/matrix.c index 54da26a7d4..6c8825874c 100644 --- a/keyboards/handwired/pterodactyl/matrix.c +++ b/keyboards/handwired/pterodactyl/matrix.c @@ -86,8 +86,6 @@ uint8_t expander_status; uint8_t expander_input_pin_mask; bool i2c_initialized = false; -#define ROW_SHIFTER ((matrix_row_t)1) - __attribute__ ((weak)) void matrix_init_user(void) {} @@ -256,7 +254,7 @@ uint8_t matrix_scan(void) inline bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (ROW_SHIFTER << col)); + return (matrix[row] & (MATRIX_ROW_SHIFTER << col)); } inline @@ -314,7 +312,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) if (! col_expanded[col_index]) { uint8_t pin = onboard_col_pins[col_index]; uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -401,10 +399,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (column_state & (1 << current_row)) { // key closed; set state bit in matrix - current_matrix[current_row] |= (ROW_SHIFTER << current_col); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << current_col); } else { // key open; clear state bit in matrix - current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine whether the matrix changed state diff --git a/keyboards/handwired/pteron/readme.md b/keyboards/handwired/pteron/readme.md index a66d41edbb..a8e9073191 100644 --- a/keyboards/handwired/pteron/readme.md +++ b/keyboards/handwired/pteron/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/pteron:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/riblee_f401/readme.md b/keyboards/handwired/riblee_f401/readme.md index 6287ac40c1..d51ba88502 100644 --- a/keyboards/handwired/riblee_f401/readme.md +++ b/keyboards/handwired/riblee_f401/readme.md @@ -13,4 +13,4 @@ Flashing example for this keyboard: make handwired/riblee_f401: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). \ No newline at end of file +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/riblee_f411/readme.md b/keyboards/handwired/riblee_f411/readme.md index e59a307fe7..8efc1e6218 100644 --- a/keyboards/handwired/riblee_f411/readme.md +++ b/keyboards/handwired/riblee_f411/readme.md @@ -13,4 +13,4 @@ Flashing example for this keyboard: make handwired/riblee_f411: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). \ No newline at end of file +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/scottokeebs/scotto108/keyboard.json b/keyboards/handwired/scottokeebs/scotto108/keyboard.json index 0781bb4cae..7a7e660d79 100644 --- a/keyboards/handwired/scottokeebs/scotto108/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto108/keyboard.json @@ -135,4 +135,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c index 472318e1f5..1b90006a79 100644 --- a/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c index 8231ad94fc..2fbc9a8c81 100644 --- a/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto34/readme.md b/keyboards/handwired/scottokeebs/scotto34/readme.md index 88e9185ec2..c377a8affa 100644 --- a/keyboards/handwired/scottokeebs/scotto34/readme.md +++ b/keyboards/handwired/scottokeebs/scotto34/readme.md @@ -26,4 +26,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto36/readme.md b/keyboards/handwired/scottokeebs/scotto36/readme.md index a8cbe3cf41..0650e0f218 100644 --- a/keyboards/handwired/scottokeebs/scotto36/readme.md +++ b/keyboards/handwired/scottokeebs/scotto36/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c index a5d489f004..e53d2853c7 100644 --- a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto40/readme.md b/keyboards/handwired/scottokeebs/scotto40/readme.md index f81e639847..12ef7a23ed 100644 --- a/keyboards/handwired/scottokeebs/scotto40/readme.md +++ b/keyboards/handwired/scottokeebs/scotto40/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto61/keyboard.json b/keyboards/handwired/scottokeebs/scotto61/keyboard.json index 31510f5b86..362d8279fc 100644 --- a/keyboards/handwired/scottokeebs/scotto61/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto61/keyboard.json @@ -88,4 +88,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c index e12bf9b644..44d163a33a 100644 --- a/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto9/readme.md b/keyboards/handwired/scottokeebs/scotto9/readme.md index ab87671138..afe5a98096 100644 --- a/keyboards/handwired/scottokeebs/scotto9/readme.md +++ b/keyboards/handwired/scottokeebs/scotto9/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json index d3473c7b22..21879d9b05 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json @@ -75,4 +75,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c index cc334629f6..f1dcd782d9 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottoalp/readme.md b/keyboards/handwired/scottokeebs/scottoalp/readme.md index 3f49d61199..4210a8d0d6 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/readme.md +++ b/keyboards/handwired/scottokeebs/scottoalp/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottocmd/config.h b/keyboards/handwired/scottokeebs/scottocmd/config.h index a168f0ef21..37714b3574 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/config.h +++ b/keyboards/handwired/scottokeebs/scottocmd/config.h @@ -18,4 +18,4 @@ along with this program. If not, see . #pragma once // OLED -#define OLED_DISPLAY_128X64 \ No newline at end of file +#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c index dbb5cbc4a9..b7552a8a72 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c index 9027b50028..d2bcd3a07e 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c +++ b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c @@ -36,4 +36,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json index e8f4f60c21..089d72ad67 100644 --- a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json @@ -47,4 +47,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scottodeck/readme.md b/keyboards/handwired/scottokeebs/scottodeck/readme.md index 86224acb3c..b24b47d851 100644 --- a/keyboards/handwired/scottokeebs/scottodeck/readme.md +++ b/keyboards/handwired/scottokeebs/scottodeck/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c index 451f48a968..f13389954f 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottoergo/readme.md b/keyboards/handwired/scottokeebs/scottoergo/readme.md index 8bbf388304..3ddb7c5a4d 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/readme.md +++ b/keyboards/handwired/scottokeebs/scottoergo/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c index 2633845d50..4e4a995269 100644 --- a/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottofly/readme.md b/keyboards/handwired/scottokeebs/scottofly/readme.md index ae51e0ef75..742191f647 100644 --- a/keyboards/handwired/scottokeebs/scottofly/readme.md +++ b/keyboards/handwired/scottokeebs/scottofly/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottogame/config.h b/keyboards/handwired/scottokeebs/scottogame/config.h index a168f0ef21..37714b3574 100644 --- a/keyboards/handwired/scottokeebs/scottogame/config.h +++ b/keyboards/handwired/scottokeebs/scottogame/config.h @@ -18,4 +18,4 @@ along with this program. If not, see . #pragma once // OLED -#define OLED_DISPLAY_128X64 \ No newline at end of file +#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c index 786587e543..2643590e98 100644 --- a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottogame/readme.md b/keyboards/handwired/scottokeebs/scottogame/readme.md index c622df1b4e..3ad481092e 100644 --- a/keyboards/handwired/scottokeebs/scottogame/readme.md +++ b/keyboards/handwired/scottokeebs/scottogame/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottogame/scottogame.c b/keyboards/handwired/scottokeebs/scottogame/scottogame.c index bea5a57a3b..1de49ed27f 100644 --- a/keyboards/handwired/scottokeebs/scottogame/scottogame.c +++ b/keyboards/handwired/scottokeebs/scottogame/scottogame.c @@ -31,4 +31,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/scottokeebs/scottohazard/config.h b/keyboards/handwired/scottokeebs/scottohazard/config.h index 2036aaed34..64010b226c 100644 --- a/keyboards/handwired/scottokeebs/scottohazard/config.h +++ b/keyboards/handwired/scottokeebs/scottohazard/config.h @@ -17,4 +17,4 @@ along with this program. If not, see . #pragma once -#define EE_HANDS \ No newline at end of file +#define EE_HANDS diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c index 2633845d50..4e4a995269 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottoinvader/readme.md b/keyboards/handwired/scottokeebs/scottoinvader/readme.md index c04920498a..3b65f069e4 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/readme.md +++ b/keyboards/handwired/scottokeebs/scottoinvader/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json index 6cf65818b6..f15ec3ed9e 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json @@ -60,4 +60,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c index b3ef7e9758..a620e88277 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottokatana/readme.md b/keyboards/handwired/scottokeebs/scottokatana/readme.md index 915062f653..9605a4e6ea 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/readme.md +++ b/keyboards/handwired/scottokeebs/scottokatana/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c index e63da854f0..006ce3ec84 100644 --- a/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottolong/readme.md b/keyboards/handwired/scottokeebs/scottolong/readme.md index bdea4ee350..88303e5aad 100644 --- a/keyboards/handwired/scottokeebs/scottolong/readme.md +++ b/keyboards/handwired/scottokeebs/scottolong/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md b/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md index 4fc82f42c8..0f49f5b780 100644 --- a/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md @@ -26,4 +26,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c index 967526afa6..fe2e5738ac 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( MS_BTN1, MS_BTN2, MS_LEFT, MS_UP, MS_DOWN, MS_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottomouse/readme.md b/keyboards/handwired/scottokeebs/scottomouse/readme.md index 4102f63310..d4c5f41bcd 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/readme.md +++ b/keyboards/handwired/scottokeebs/scottomouse/readme.md @@ -26,4 +26,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoslant/readme.md b/keyboards/handwired/scottokeebs/scottoslant/readme.md index 6bb237b6bf..f3d37ee189 100644 --- a/keyboards/handwired/scottokeebs/scottoslant/readme.md +++ b/keyboards/handwired/scottokeebs/scottoslant/readme.md @@ -25,4 +25,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c index 2633845d50..4e4a995269 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottosplit/readme.md b/keyboards/handwired/scottokeebs/scottosplit/readme.md index 94e73afd13..c364699ee7 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/readme.md +++ b/keyboards/handwired/scottokeebs/scottosplit/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottostarter/readme.md b/keyboards/handwired/scottokeebs/scottostarter/readme.md index 346db2f5fd..b2641685e5 100644 --- a/keyboards/handwired/scottokeebs/scottostarter/readme.md +++ b/keyboards/handwired/scottokeebs/scottostarter/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/sector245/s245/keyboard.json b/keyboards/handwired/sector245/s245/keyboard.json new file mode 100644 index 0000000000..5a74a74f1d --- /dev/null +++ b/keyboards/handwired/sector245/s245/keyboard.json @@ -0,0 +1,50 @@ +{ + "keyboard_name": "S245 Streamdeck", + "manufacturer": "sector245", + "maintainer": "sector245", + "processor": "RP2040", + "bootloader": "rp2040", + "debounce": 20, + "usb": { + "vid": "0x5345", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "encoder": true + }, + "matrix_pins": { + "direct": [ + ["GP2", "GP3", "GP13"], + ["GP4", "GP5", "GP6"], + ["GP7", "GP8", "GP9"] + ] + }, + "encoder": { + "rotary": [ + { + "pin_a": "GP10", + "pin_b": "GP11", + "resolution": 2 + } + ] + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0, "encoder": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/handwired/sector245/s245/keymaps/default/keymap.c b/keyboards/handwired/sector245/s245/keymaps/default/keymap.c new file mode 100644 index 0000000000..0786a5918c --- /dev/null +++ b/keyboards/handwired/sector245/s245/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2025 sector245 (@sector245) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_A, KC_B, KC_C, + KC_D, KC_E, KC_F, + KC_G, KC_H, KC_I + ) +}; + +#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/tominabox1/le_chiffre/keymaps/default/rules.mk b/keyboards/handwired/sector245/s245/keymaps/default/rules.mk similarity index 56% rename from keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk rename to keyboards/handwired/sector245/s245/keymaps/default/rules.mk index cbd8b4aa81..ee32568148 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk +++ b/keyboards/handwired/sector245/s245/keymaps/default/rules.mk @@ -1,2 +1 @@ -COMBO_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keyboards/handwired/sector245/s245/readme.md b/keyboards/handwired/sector245/s245/readme.md new file mode 100644 index 0000000000..b7fc7956fe --- /dev/null +++ b/keyboards/handwired/sector245/s245/readme.md @@ -0,0 +1,24 @@ +# S245 Streamdeck + +A 3x3 macropad with rotary encoder. + +* Keyboard Maintainer: [sector245](https://github.com/sinomau) +* Hardware Supported: S245 Streamdeck PCB, RP2040 + +Make example for this keyboard (after setting up your build environment): + + make handwired/sector245/s245:default + +Flashing example for this keyboard: + + make handwired/sector245/s245: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 (top left key) and plug in the keyboard +* **Physical reset button**: Hold the BOOTSEL button on the Pico and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c b/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c index 0109b18c6c..9f1b95c7c3 100644 --- a/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c +++ b/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c @@ -38,4 +38,4 @@ enum custom_keycodes { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/skakunm_dactyl/readme.md b/keyboards/handwired/skakunm_dactyl/readme.md index 73174fbd1b..ae78156824 100644 --- a/keyboards/handwired/skakunm_dactyl/readme.md +++ b/keyboards/handwired/skakunm_dactyl/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/skakunm_dactyl:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/splittest/keymaps/bitbang/keymap.c b/keyboards/handwired/splittest/keymaps/bitbang/keymap.c index 8a83e19850..7535715da1 100644 --- a/keyboards/handwired/splittest/keymaps/bitbang/keymap.c +++ b/keyboards/handwired/splittest/keymaps/bitbang/keymap.c @@ -11,4 +11,4 @@ void keyboard_post_init_user(void) { debug_matrix = true; debug_keyboard = true; // debug_mouse=true; -} \ No newline at end of file +} diff --git a/keyboards/handwired/splittest/keymaps/data_sync/keymap.c b/keyboards/handwired/splittest/keymaps/data_sync/keymap.c new file mode 100644 index 0000000000..fcef718983 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/data_sync/keymap.c @@ -0,0 +1,8 @@ +// Copyright 2022 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_L, KC_R) +}; diff --git a/keyboards/handwired/splittest/keymaps/data_sync/keymap.json b/keyboards/handwired/splittest/keymaps/data_sync/keymap.json new file mode 100644 index 0000000000..832fd82e53 --- /dev/null +++ b/keyboards/handwired/splittest/keymaps/data_sync/keymap.json @@ -0,0 +1,5 @@ +{ + "modules": [ + "qmk/split_data_sync" + ] +} diff --git a/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md b/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md index 9d3e057bc6..9e18a74c4a 100644 --- a/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md +++ b/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md @@ -4,4 +4,4 @@ This is the default layout. For the most part it's a straightforward and easy to follow layout. -The only thing to note is the apostrophe key which is on the second layer under return. \ No newline at end of file +The only thing to note is the apostrophe key which is on the second layer under return. diff --git a/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk b/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk index f18f03c2c7..aff8946111 100644 --- a/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk +++ b/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk @@ -1,2 +1,2 @@ CAPS_WORD_ENABLE = yes -SWAP_HANDS_ENABLE = yes \ No newline at end of file +SWAP_HANDS_ENABLE = yes diff --git a/keyboards/handwired/stef9998/split_5x7/readme.md b/keyboards/handwired/stef9998/split_5x7/readme.md index bf6c9ef719..26a06749f8 100644 --- a/keyboards/handwired/stef9998/split_5x7/readme.md +++ b/keyboards/handwired/stef9998/split_5x7/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to How to enter the bootloader: * **Keycode in layout**: Press the key mapped to `QK_BOOT`.\ -In the default keymap it's accessible by pressing either of the buttons bringing you to layer `_SYM` and then pressing one of the outer Ctrl's. \ No newline at end of file +In the default keymap it's accessible by pressing either of the buttons bringing you to layer `_SYM` and then pressing one of the outer Ctrl's. diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c b/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c index 18543078c7..94c1780d08 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c +++ b/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c @@ -30,4 +30,4 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}}, {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}}, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk b/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk index 3cd6d040b8..1056aa2c41 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk +++ b/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk @@ -1,4 +1,4 @@ # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no -RGBLIGHT_SUPPORTED = no \ No newline at end of file +RGBLIGHT_SUPPORTED = no diff --git a/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk b/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk index 90fc9b184b..979fc59cc7 100644 --- a/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk +++ b/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk @@ -1 +1 @@ -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c b/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c index fa9b6ef0fd..2fa06ec7ce 100644 --- a/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c +++ b/keyboards/handwired/symmetric70_proto/matrix_debug/matrix.c @@ -44,7 +44,7 @@ static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS; static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; # ifdef MATRIX_MUL_SELECT -static const pin_t col_sel[MATRIX_COLS] = MATRIX_MUL_SEL; +static const pin_t col_sel[MATRIX_COLS] = MATRIX_MUL_SEL; # endif #endif @@ -57,8 +57,8 @@ static const uint8_t delay_sel[] = {MATRIX_IO_DELAY_MULSEL}; #endif /* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values +extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values static inline void gpio_atomic_set_pin_output_low(pin_t pin) { ATOMIC_BLOCK_FORCEON { @@ -68,7 +68,9 @@ static inline void gpio_atomic_set_pin_output_low(pin_t pin) { } static inline void gpio_atomic_set_pin_input_high(pin_t pin) { - ATOMIC_BLOCK_FORCEON { gpio_set_pin_input_high(pin); } + ATOMIC_BLOCK_FORCEON { + gpio_set_pin_input_high(pin); + } } // matrix code @@ -108,9 +110,13 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) #elif defined(DIODE_DIRECTION) # if (DIODE_DIRECTION == COL2ROW) -static void select_row(uint8_t row) { gpio_atomic_set_pin_output_low(row_pins[row]); } +static void select_row(uint8_t row) { + gpio_atomic_set_pin_output_low(row_pins[row]); +} -static void unselect_row(uint8_t row) { gpio_atomic_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_atomic_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < MATRIX_ROWS; x++) { @@ -153,7 +159,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Unselect row unselect_row(current_row); # ifdef MATRIX_IO_DELAY_PORTS - if (current_row_value) { // wait for col signal to go HIGH + if (current_row_value) { // wait for col signal to go HIGH bool is_pressed; do { MATRIX_DEBUG_DELAY_START(); @@ -170,7 +176,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) } # endif # ifdef MATRIX_IO_DELAY_ADAPTIVE - if (current_row_value) { // wait for col signal to go HIGH + if (current_row_value) { // wait for col signal to go HIGH for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { MATRIX_DEBUG_DELAY_START(); # ifdef MATRIX_MUL_SELECT @@ -184,7 +190,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) } # endif # ifdef MATRIX_IO_DELAY_ADAPTIVE2 - if (current_row_value) { // wait for col signal to go HIGH + if (current_row_value) { // wait for col signal to go HIGH pin_t state; do { MATRIX_DEBUG_DELAY_START(); @@ -204,7 +210,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) # endif if (MATRIX_IO_DELAY_ALWAYS || current_row + 1 < MATRIX_ROWS) { MATRIX_DEBUG_DELAY_START(); - matrix_output_unselect_delay(current_row, current_row_value != 0); // wait for col signal to go HIGH + matrix_output_unselect_delay(current_row, current_row_value != 0); // wait for col signal to go HIGH MATRIX_DEBUG_DELAY_END(); } @@ -218,9 +224,13 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) # elif (DIODE_DIRECTION == ROW2COL) -static void select_col(uint8_t col) { gpio_atomic_set_pin_output_low(col_pins[col]); } +static void select_col(uint8_t col) { + gpio_atomic_set_pin_output_low(col_pins[col]); +} -static void unselect_col(uint8_t col) { gpio_atomic_set_pin_input_high(col_pins[col]); } +static void unselect_col(uint8_t col) { + gpio_atomic_set_pin_input_high(col_pins[col]); +} static void unselect_cols(void) { for (uint8_t x = 0; x < MATRIX_COLS; x++) { @@ -237,7 +247,7 @@ static void init_pins(void) { static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) { bool matrix_changed = false; - bool key_pressed = false; + bool key_pressed = false; // Select col select_col(current_col); @@ -269,7 +279,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Unselect col unselect_col(current_col); if (MATRIX_IO_DELAY_ALWAYS || current_col + 1 < MATRIX_COLS) { - matrix_output_unselect_delay(current_col, key_pressed); // wait for col signal to go HIGH + matrix_output_unselect_delay(current_col, key_pressed); // wait for col signal to go HIGH } return matrix_changed; @@ -292,7 +302,7 @@ void matrix_init(void) { matrix[i] = 0; } - debounce_init(MATRIX_ROWS); + debounce_init(); matrix_init_kb(); } @@ -317,7 +327,7 @@ uint8_t matrix_scan(void) { MATRIX_DEBUG_GAP(); MATRIX_DEBUG_SCAN_START(); - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); MATRIX_DEBUG_SCAN_END(); MATRIX_DEBUG_GAP(); diff --git a/keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c b/keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c index 842df65dbd..99ce2f2c2d 100644 --- a/keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c +++ b/keyboards/handwired/symmetric70_proto/matrix_fast/matrix.c @@ -166,7 +166,7 @@ void matrix_init(void) { matrix[i] = 0; } - debounce_init(MATRIX_ROWS); + debounce_init(); matrix_init_kb(); } @@ -221,7 +221,7 @@ uint8_t matrix_scan(void) { MATRIX_DEBUG_SCAN_END(); MATRIX_DEBUG_GAP(); MATRIX_DEBUG_SCAN_START(); // debounce raw_matrix[] to matrix[] - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); MATRIX_DEBUG_SCAN_END(); MATRIX_DEBUG_GAP(); MATRIX_DEBUG_SCAN_START(); diff --git a/keyboards/handwired/t111/keymaps/oleg/config.h b/keyboards/handwired/t111/keymaps/oleg/config.h index b4f15ae896..3e5f8251c3 100644 --- a/keyboards/handwired/t111/keymaps/oleg/config.h +++ b/keyboards/handwired/t111/keymaps/oleg/config.h @@ -17,4 +17,4 @@ along with this program. If not, see . #pragma once -#define UNICODE_SELECTED_MODES UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE \ No newline at end of file +#define UNICODE_SELECTED_MODES UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE diff --git a/keyboards/handwired/t111/keymaps/oleg/rules.mk b/keyboards/handwired/t111/keymaps/oleg/rules.mk index 0517619ed1..502b2def76 100644 --- a/keyboards/handwired/t111/keymaps/oleg/rules.mk +++ b/keyboards/handwired/t111/keymaps/oleg/rules.mk @@ -1 +1 @@ -UNICODEMAP_ENABLE = yes \ No newline at end of file +UNICODEMAP_ENABLE = yes diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c b/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c index 298060bcb4..f678db94d8 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c +++ b/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c @@ -16,39 +16,6 @@ #include "tractyl_manuform.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 24, 23, 18, 17, 10, 9 }, - { 25, 22, 19, 16, 11, 8 }, - { 26, 21, 20, 15, 12, 7 }, - { NO_LED, NO_LED, NO_LED, 14, 13, 6 }, - { NO_LED, NO_LED, NO_LED, 14, 13, 6 }, - { 51, 50, 45, 44, 37, 36 }, - { 52, 49, 46, 43, 38, 35 }, - { 53, 48, 47, 42, 39, 34 }, - { NO_LED, NO_LED, NO_LED, 41, 40, 33 }, - { NO_LED, NO_LED, NO_LED, 41, 40, 33 } -}, { - { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, - { 85, 39 }, { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, - { 60, 55 }, { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, - { 16, 42 }, { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }, { 139, 16 }, - { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, { 139, 39 }, - { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, { 164, 55 }, - { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, { 208, 42 }, - { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 } -}, { - 2, 2, 2, 2, 2, 2, 1, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 1, 4, - 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1 -} }; -#endif - #ifdef SWAP_HANDS_ENABLE const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { /* Left hand, matrix positions */ diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index cc651bec95..4ecb7f33c8 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -7,6 +7,62 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"matrix": [4, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [4, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [4, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"x": 139, "y": 16, "flags": 2}, + {"x": 174, "y": 13, "flags": 2}, + {"x": 208, "y": 20, "flags": 2}, + {"x": 208, "y": 38, "flags": 2}, + {"x": 174, "y": 48, "flags": 2}, + {"x": 139, "y": 52, "flags": 2}, + {"matrix": [9, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [7, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [7, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [9, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [9, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [7, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [6, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [7, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 41, "flags": 1} + ], "max_brightness": 80, "sleep": true, "split_count": [32, 30] @@ -25,7 +81,7 @@ "pin": "D3" }, "bootmagic": { - "matrix": [4, 5] + "matrix": [5, 5] } }, "ws2812": { diff --git a/keyboards/handwired/twadlee/tp69/keyboard.json b/keyboards/handwired/twadlee/tp69/keyboard.json index 833aa8bdf8..91b162233e 100644 --- a/keyboards/handwired/twadlee/tp69/keyboard.json +++ b/keyboards/handwired/twadlee/tp69/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TP69", "manufacturer": "Tracy Wadleigh", - "url": "https://github.com/twadleigh/qmk_firmware", "maintainer": "qmk", "usb": { "vid": "0xBEEF", diff --git a/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json index b54508bf4f..f2fb14db93 100644 --- a/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json +++ b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json @@ -136,4 +136,4 @@ }, "" ] -] \ No newline at end of file +] diff --git a/keyboards/handwired/wwa/helios/keyboard.json b/keyboards/handwired/wwa/helios/keyboard.json index 8a77808e67..beb821643f 100644 --- a/keyboards/handwired/wwa/helios/keyboard.json +++ b/keyboards/handwired/wwa/helios/keyboard.json @@ -38,4 +38,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/kepler/keyboard.json b/keyboards/handwired/wwa/kepler/keyboard.json index 843403bf89..ab0689b8c8 100644 --- a/keyboards/handwired/wwa/kepler/keyboard.json +++ b/keyboards/handwired/wwa/kepler/keyboard.json @@ -50,4 +50,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/mercury/keyboard.json b/keyboards/handwired/wwa/mercury/keyboard.json index 8ed067f84d..47ad7c7c2a 100644 --- a/keyboards/handwired/wwa/mercury/keyboard.json +++ b/keyboards/handwired/wwa/mercury/keyboard.json @@ -34,4 +34,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/mercury/readme.md b/keyboards/handwired/wwa/mercury/readme.md index 32d346dbe9..1523d95d30 100644 --- a/keyboards/handwired/wwa/mercury/readme.md +++ b/keyboards/handwired/wwa/mercury/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json index b922af10a2..d8d09e74c2 100644 --- a/keyboards/handwired/wwa/soyuz/keyboard.json +++ b/keyboards/handwired/wwa/soyuz/keyboard.json @@ -57,4 +57,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/soyuzxl/keyboard.json b/keyboards/handwired/wwa/soyuzxl/keyboard.json index d666e798f4..fd32c25a4d 100644 --- a/keyboards/handwired/wwa/soyuzxl/keyboard.json +++ b/keyboards/handwired/wwa/soyuzxl/keyboard.json @@ -49,4 +49,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c b/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c index af0eb592dc..6004d8caf2 100644 --- a/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c +++ b/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c @@ -10,4 +10,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/xealous/keymaps/default/keymap.c b/keyboards/handwired/xealous/keymaps/default/keymap.c index 88aa4ddfc9..b581015b54 100644 --- a/keyboards/handwired/xealous/keymaps/default/keymap.c +++ b/keyboards/handwired/xealous/keymaps/default/keymap.c @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float tone_qwerty[][2] = TONE_QWERTY; float tone_numpad[][2] = TONE_NUMPAD; -layer_state_t default_layer_state_set_kb(layer_state_t state) { +layer_state_t default_layer_state_set_user(layer_state_t state) { if (state == 1UL<<_QWERTY) { PLAY_SONG(tone_qwerty); } else if (state == 1UL<<_NUMPAD) { diff --git a/keyboards/handwired/yodadistro/macro/readme.md b/keyboards/handwired/yodadistro/macro/readme.md index ceda19acba..4183280b99 100644 --- a/keyboards/handwired/yodadistro/macro/readme.md +++ b/keyboards/handwired/yodadistro/macro/readme.md @@ -22,4 +22,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * **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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/z150/keymaps/default/keymap.c b/keyboards/handwired/z150/keymaps/default/keymap.c index 8ebc68f37a..f7fb3a0987 100644 --- a/keyboards/handwired/z150/keymaps/default/keymap.c +++ b/keyboards/handwired/z150/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F7, KC_F8, 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_BSLS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_F9, KC_F10,KC_LALT, KC_GRV, KC_SPC, KC_CAPS, KC_P0, KC_PDOT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/zergo/keyboard.json b/keyboards/handwired/zergo/keyboard.json index 44bd80c0cd..59ee3ec636 100644 --- a/keyboards/handwired/zergo/keyboard.json +++ b/keyboards/handwired/zergo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "zErgo", "manufacturer": "GreenJack", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/zergo", "maintainer": "greenjack", "usb": { "vid": "0xFEED", diff --git a/keyboards/hazel/bad_wings/config.h b/keyboards/hazel/bad_wings/config.h index b69628e7fc..4a498a1ae3 100644 --- a/keyboards/hazel/bad_wings/config.h +++ b/keyboards/hazel/bad_wings/config.h @@ -19,4 +19,4 @@ #define POINTING_DEVICE_CS_PIN GP1 #define CIRQUE_PINNACLE_DIAMETER_MM 35 -#define POINTING_DEVICE_ROTATION_90 \ No newline at end of file +#define POINTING_DEVICE_ROTATION_90 diff --git a/keyboards/hazel/bad_wings/keymaps/default/keymap.json b/keyboards/hazel/bad_wings/keymaps/default/keymap.json index 670506eaf6..13233c1cf8 100644 --- a/keyboards/hazel/bad_wings/keymaps/default/keymap.json +++ b/keyboards/hazel/bad_wings/keymaps/default/keymap.json @@ -160,4 +160,4 @@ ] ], "author": "Jason Hazel" -} \ No newline at end of file +} diff --git a/keyboards/hazel/bad_wings/keymaps/default/rules.mk b/keyboards/hazel/bad_wings/keymaps/default/rules.mk index cb8ebf227e..7a7b6c40c2 100644 --- a/keyboards/hazel/bad_wings/keymaps/default/rules.mk +++ b/keyboards/hazel/bad_wings/keymaps/default/rules.mk @@ -1,2 +1,2 @@ MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes \ No newline at end of file +EXTRAKEY_ENABLE = yes diff --git a/keyboards/hazel/bad_wings/mcuconf.c b/keyboards/hazel/bad_wings/mcuconf.c index 9ed5ae7efb..add1bd2887 100644 --- a/keyboards/hazel/bad_wings/mcuconf.c +++ b/keyboards/hazel/bad_wings/mcuconf.c @@ -8,4 +8,4 @@ #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE #undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/hazel/bad_wings/readme.md b/keyboards/hazel/bad_wings/readme.md index 0b0f643745..3323d2c2f7 100644 --- a/keyboards/hazel/bad_wings/readme.md +++ b/keyboards/hazel/bad_wings/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top-left key and plug in the keyboard * **Physical reset button**: Hold Xiao B button, press Xiao R button, release B -* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create \ No newline at end of file +* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create diff --git a/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md b/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md index d35a2c1e4d..bed6b22e02 100644 --- a/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md +++ b/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md @@ -4,4 +4,4 @@ ## layer 1 keymap ![Wm1 Layout Image Layer1](https://i.imgur.com/cHOefMH.png) ## The keycap size of layout -![Wm1 Layout Image Layout size](https://i.imgur.com/jL1EDod.png) \ No newline at end of file +![Wm1 Layout Image Layout size](https://i.imgur.com/jL1EDod.png) diff --git a/keyboards/hfdkb/ac001/ac001.c b/keyboards/hfdkb/ac001/ac001.c deleted file mode 100644 index 83dbdeb628..0000000000 --- a/keyboards/hfdkb/ac001/ac001.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" -/* - 3---------------2 - | | | - | | | - 4-------0-------1 -*/ -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4} -}, { - // LED Index to Physical Position - { 64, 112 }, { 64, 224 }, { 224, 0 }, { 0, 0 }, { 64, 0 }, - -}, { - // LED Index to Flag - 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/hfdkb/ac001/keyboard.json b/keyboards/hfdkb/ac001/keyboard.json index ee9aab074b..ffb20e3c01 100644 --- a/keyboards/hfdkb/ac001/keyboard.json +++ b/keyboards/hfdkb/ac001/keyboard.json @@ -21,6 +21,13 @@ "multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 224, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 0, "y": 64, "flags": 4} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/hineybush/h87_g2/config.h b/keyboards/hineybush/h87_g2/config.h index f37f589f0a..ccde4ac624 100644 --- a/keyboards/hineybush/h87_g2/config.h +++ b/keyboards/hineybush/h87_g2/config.h @@ -16,4 +16,4 @@ #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 \ No newline at end of file +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/hnk/hnk100/keyboard.json b/keyboards/hnk/hnk100/keyboard.json new file mode 100644 index 0000000000..db13f1963c --- /dev/null +++ b/keyboards/hnk/hnk100/keyboard.json @@ -0,0 +1,288 @@ +{ + "manufacturer": "hnkbd", + "keyboard_name": "hnk100", + "maintainer": "ascYAOBT", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["C6", "C7", "F7", "F6", "F5", "F4", "F1", "D2", "D1", "D0", "D3", "D5"], + "rows": ["B6", "B5", "B4", "D7", "D6", "D4", "F0", "E6", "B0", "B1", "B3", "B7"] + }, + "processor": "atmega32u4", + "rgb_matrix": { + "animations": { + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "pixel_flow": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_reactive_cross": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "splash": true, + "typing_heatmap": true + }, + "brightness_steps": 20, + "default": { + "animation": "solid_color", + "val": 120 + }, + "driver": "ws2812", + "hue_steps": 22, + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 95, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 110, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 120, "y": 0, "flags": 4}, + {"matrix": [6, 1], "x": 130, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 140, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 170, "y": 0, "flags": 4}, + {"matrix": [7, 9], "x": 210, "y": 12, "flags": 4}, + {"matrix": [7, 8], "x": 200, "y": 12, "flags": 4}, + {"matrix": [7, 7], "x": 190, "y": 12, "flags": 4}, + {"matrix": [7, 6], "x": 180, "y": 12, "flags": 4}, + {"matrix": [7, 5], "x": 170, "y": 12, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 12, "flags": 4}, + {"matrix": [7, 3], "x": 150, "y": 12, "flags": 4}, + {"matrix": [7, 2], "x": 135, "y": 12, "flags": 4}, + {"matrix": [7, 0], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 110, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 100, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 90, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 50, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 40, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 30, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 20, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 10, "y": 12, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 15, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 25, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 35, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 45, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 55, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 65, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 75, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 85, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 95, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 105, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 115, "y": 24, "flags": 4}, + {"matrix": [8, 0], "x": 125, "y": 24, "flags": 4}, + {"matrix": [8, 2], "x": 137, "y": 24, "flags": 4}, + {"matrix": [8, 3], "x": 150, "y": 24, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 24, "flags": 4}, + {"matrix": [8, 5], "x": 170, "y": 24, "flags": 4}, + {"matrix": [8, 6], "x": 180, "y": 24, "flags": 4}, + {"matrix": [8, 7], "x": 190, "y": 24, "flags": 4}, + {"matrix": [8, 8], "x": 200, "y": 24, "flags": 4}, + {"matrix": [9, 9], "x": 210, "y": 36, "flags": 4}, + {"matrix": [9, 8], "x": 200, "y": 36, "flags": 4}, + {"matrix": [9, 7], "x": 190, "y": 36, "flags": 4}, + {"matrix": [9, 6], "x": 180, "y": 36, "flags": 4}, + {"matrix": [9, 2], "x": 135, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 117, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 107, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 97, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 87, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 77, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 67, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 57, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 47, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 37, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 27, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 36, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 36, "flags": 4}, + {"matrix": [4, 0], "x": 6, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 22, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 52, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 62, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 82, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 92, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 102, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 48, "flags": 4}, + {"matrix": [10, 2], "x": 142, "y": 48, "flags": 4}, + {"matrix": [10, 4], "x": 160, "y": 48, "flags": 4}, + {"matrix": [10, 6], "x": 180, "y": 48, "flags": 4}, + {"matrix": [10, 7], "x": 190, "y": 48, "flags": 4}, + {"matrix": [10, 8], "x": 200, "y": 48, "flags": 4}, + {"matrix": [11, 9], "x": 210, "y": 60, "flags": 4}, + {"matrix": [11, 8], "x": 200, "y": 60, "flags": 4}, + {"matrix": [11, 6], "x": 185, "y": 60, "flags": 4}, + {"matrix": [11, 5], "x": 170, "y": 60, "flags": 4}, + {"matrix": [11, 4], "x": 160, "y": 60, "flags": 4}, + {"matrix": [11, 3], "x": 150, "y": 60, "flags": 4}, + {"matrix": [11, 2], "x": 140, "y": 60, "flags": 4}, + {"matrix": [11, 0], "x": 128, "y": 60, "flags": 4}, + {"matrix": [5, 10], "x": 115, "y": 60, "flags": 4}, + {"matrix": [5, 8], "x": 103, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 63, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 26, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 14, "y": 60, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 60, "flags": 4} + ], + "max_brightness": 170, + "saturation_steps": 22, + "sleep": true + }, + "url": "https://hnkbd.ca/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x484E" + }, + "ws2812": { + "pin": "B2" + }, + "community_layouts": ["fullsize_ansi"], + "layouts": { + "LAYOUT_fullsize_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "F5", "matrix": [0, 7], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 8], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 9], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 10], "x": 9.5, "y": 0}, + {"label": "F9", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "F10", "matrix": [6, 0], "x": 12, "y": 0}, + {"label": "F11", "matrix": [6, 1], "x": 13, "y": 0}, + {"label": "F12", "matrix": [6, 2], "x": 14, "y": 0}, + {"label": "PSc", "matrix": [6, 3], "x": 15.25, "y": 0}, + {"label": "Scr", "matrix": [6, 4], "x": 16.25, "y": 0}, + {"label": "Pse", "matrix": [6, 5], "x": 17.25, "y": 0}, + {"label": "Grv", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "5", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "Mins", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "Eql", "matrix": [7, 0], "x": 12, "y": 1.25}, + {"label": "Bspc", "matrix": [7, 2], "x": 13, "y": 1.25, "w": 2}, + {"label": "Ins", "matrix": [7, 3], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [7, 4], "x": 16.25, "y": 1.25}, + {"label": "PgUp", "matrix": [7, 5], "x": 17.25, "y": 1.25}, + {"label": "Num", "matrix": [7, 6], "x": 18.5, "y": 1.25}, + {"label": "PsLs", "matrix": [7, 7], "x": 19.5, "y": 1.25}, + {"label": "Past", "matrix": [7, 8], "x": 20.5, "y": 1.25}, + {"label": "Pmns", "matrix": [7, 9], "x": 21.5, "y": 1.25}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "Lbrc", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "Rbrc", "matrix": [8, 0], "x": 12.5, "y": 2.25}, + {"label": "BsLs", "matrix": [8, 2], "x": 13.5, "y": 2.25, "w": 1.5}, + {"label": "Del", "matrix": [8, 3], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [8, 4], "x": 16.25, "y": 2.25}, + {"label": "PgDn", "matrix": [8, 5], "x": 17.25, "y": 2.25}, + {"label": "P7", "matrix": [8, 6], "x": 18.5, "y": 2.25}, + {"label": "P8", "matrix": [8, 7], "x": 19.5, "y": 2.25}, + {"label": "P9", "matrix": [8, 8], "x": 20.5, "y": 2.25}, + {"label": "Caps", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": "Scln", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "Quot", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Ent", "matrix": [9, 2], "x": 12.75, "y": 3.25, "w": 2.25}, + {"label": "P4", "matrix": [9, 6], "x": 18.5, "y": 3.25}, + {"label": "P5", "matrix": [9, 7], "x": 19.5, "y": 3.25}, + {"label": "P6", "matrix": [9, 8], "x": 20.5, "y": 3.25}, + {"label": "PPls", "matrix": [9, 9], "x": 21.5, "y": 2.25, "h": 2}, + {"label": "Lsft", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 3], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 4], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 5], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 6], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25}, + {"label": "Comm", "matrix": [4, 8], "x": 9.25, "y": 4.25}, + {"label": "Dot", "matrix": [4, 9], "x": 10.25, "y": 4.25}, + {"label": "Slsh", "matrix": [4, 10], "x": 11.25, "y": 4.25}, + {"label": "Rsft", "matrix": [10, 2], "x": 12.25, "y": 4.25, "w": 2.75}, + {"label": "Up", "matrix": [10, 4], "x": 16.25, "y": 4.25}, + {"label": "P1", "matrix": [10, 6], "x": 18.5, "y": 4.25}, + {"label": "P2", "matrix": [10, 7], "x": 19.5, "y": 4.25}, + {"label": "P3", "matrix": [10, 8], "x": 20.5, "y": 4.25}, + {"label": "Lctl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25}, + {"label": "Lgui", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, + {"label": "Lalt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, + {"label": "Spc", "matrix": [5, 5], "x": 3.75, "y": 5.25, "w": 6.25}, + {"label": "Ralt", "matrix": [5, 8], "x": 10, "y": 5.25, "w": 1.25}, + {"label": "Ropt", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25}, + {"label": "Mo", "matrix": [11, 0], "x": 12.5, "y": 5.25, "w": 1.25}, + {"label": "Rctl", "matrix": [11, 2], "x": 13.75, "y": 5.25, "w": 1.25}, + {"label": "Left", "matrix": [11, 3], "x": 15.25, "y": 5.25}, + {"label": "Down", "matrix": [11, 4], "x": 16.25, "y": 5.25}, + {"label": "Right", "matrix": [11, 5], "x": 17.25, "y": 5.25}, + {"label": "P0", "matrix": [11, 6], "x": 18.5, "y": 5.25, "w": 2}, + {"label": "Pdot", "matrix": [11, 8], "x": 20.5, "y": 5.25}, + {"label": "Pent", "matrix": [11, 9], "x": 21.5, "y": 4.25, "h": 2} + ] + } + } +} diff --git a/keyboards/hnk/hnk100/keymaps/default/keymap.c b/keyboards/hnk/hnk100/keymaps/default/keymap.c new file mode 100644 index 0000000000..b15a2e18b2 --- /dev/null +++ b/keyboards/hnk/hnk100/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// 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_fullsize_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_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_DEL, KC_END, KC_PGDN, 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, KC_RALT, KC_ROPT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), + [1] = LAYOUT_fullsize_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_SATU, RM_HUEU, _______, _______, _______, _______, _______, _______, + _______, KC_MUTE, KC_VOLD, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, _______, _______, _______, _______, + _______, KC_PIPE, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_VALU, _______, _______, _______, + _______, _______, _______, KC_PSCR, _______, RM_SPDD, _______, RM_SPDU, RM_PREV, RM_VALD, RM_NEXT, _______, _______, _______ + ) +}; diff --git a/keyboards/hnk/hnk100/readme.md b/keyboards/hnk/hnk100/readme.md new file mode 100644 index 0000000000..7ad9c85206 --- /dev/null +++ b/keyboards/hnk/hnk100/readme.md @@ -0,0 +1,25 @@ +# hnk100 + +Our Hide Nothing Keyboard version of the traditional 100%, with or without RGB support. For more information visit https://hnkbd.ca + +* Keyboard Maintainer: [hnkbd](https://github.com/ascYAOBT) +* Hardware Supported: hnk100, either with or without per key RGB LED +* Hardware Availability: https://hnkbd.ca + +Make example for this keyboard (after setting up your build environment): + + make hnk/hnk100:default + +Flashing example for this keyboard: + + make hnk/hnk100: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 while plugged in and with QMK Toolbox opened. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c b/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c index a5e4a91ea8..3969ccceef 100644 --- a/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c +++ b/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/horizon/keymaps/default/keymap.c b/keyboards/horizon/keymaps/default/keymap.c index bdb03bd081..5b20cf4814 100644 --- a/keyboards/horizon/keymaps/default/keymap.c +++ b/keyboards/horizon/keymaps/default/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c deleted file mode 100644 index 98a35e7483..0000000000 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2022 HorrorTroll - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 }, - { 15, NO_LED, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED, 55, 56, 57 }, - { 58, 59, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - // Key matrix (0 -> 67) - {0 , 0}, {15 , 0}, {30 , 0}, {45 , 0}, {60 , 0}, {75 , 0}, {90 , 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {224, 0}, - {3 , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16}, - {5 , 32}, {25 , 32}, {40 , 32}, {55 , 32}, {70 , 32}, {85 , 32}, {100, 32}, {115, 32}, {130, 32}, {145, 32}, {160, 32}, {175, 32}, {200, 32}, {224, 32}, - {8 , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48}, {224, 48}, - {2 , 64}, {19 , 64}, {36 , 64}, {96 , 64}, {149, 64}, {164, 64}, {179, 64}, {194, 64}, {209, 64}, {224, 64}, - - // Underglow (68 -> 85) - {210, 60}, {186, 12}, {158, 12}, {130, 12}, {101, 12}, {71 , 12}, {39 , 12}, {13 , 12}, {13 , 35}, - {13 , 12}, {39 , 12}, {71 , 12}, {101, 12}, {130, 12}, {158, 12}, {186, 12}, {210, 12}, {210, 35}, -}, { - // Key matrix (0 -> 67) - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, - - // Underglow (68 -> 85) - 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json index 250cceb3e7..80cb05a3c2 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json @@ -59,6 +59,94 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 51, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 81, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 111, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 141, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 156, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [2, 2], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 40, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 55, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 115, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 145, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 188, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 36, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 149, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 4}, + {"x": 210, "y": 60, "flags": 2}, + {"x": 186, "y": 12, "flags": 2}, + {"x": 158, "y": 12, "flags": 2}, + {"x": 130, "y": 12, "flags": 2}, + {"x": 101, "y": 12, "flags": 2}, + {"x": 71, "y": 12, "flags": 2}, + {"x": 39, "y": 12, "flags": 2}, + {"x": 13, "y": 12, "flags": 2}, + {"x": 13, "y": 35, "flags": 2}, + {"x": 13, "y": 12, "flags": 2}, + {"x": 39, "y": 12, "flags": 2}, + {"x": 71, "y": 12, "flags": 2}, + {"x": 101, "y": 12, "flags": 2}, + {"x": 130, "y": 12, "flags": 2}, + {"x": 158, "y": 12, "flags": 2}, + {"x": 186, "y": 12, "flags": 2}, + {"x": 210, "y": 12, "flags": 2}, + {"x": 210, "y": 35, "flags": 2} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c index 4ad4bcd5cc..bf7dce5949 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c @@ -31,8 +31,6 @@ enum layer_names { _FN, }; -// enum layer_keycodes { }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -91,38 +89,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_UNDERGLOW): { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - } - return true; -} - bool rgb_matrix_indicators_user(void) { hsv_t hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h index b68f9fa634..a9f64ff8d2 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h @@ -44,20 +44,6 @@ typedef struct { bool reflected; } CUSTOM_PRESETS; -enum user_rgb_mode { - RGB_MODE_ALL, - RGB_MODE_NONE, -}; - -typedef union { - uint32_t raw; - struct { - uint8_t rgb_mode :8; - }; -} user_config_t; - -user_config_t user_config; - enum layer_keycodes { //Custom Gradient control keycode G1_HUI = SAFE_RANGE, //Custom gradient color 1 hue increase @@ -80,20 +66,6 @@ enum layer_keycodes { RGB_C_E, //Cycle user effect }; -void keyboard_post_init_user(void) { - user_config.raw = eeconfig_read_user(); - switch (user_config.rgb_mode) { - case RGB_MODE_ALL: - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - break; - case RGB_MODE_NONE: - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - break; - } -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { process_record_user_oled(keycode, record); @@ -229,25 +201,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_NONE; - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - user_config.rgb_mode = RGB_MODE_ALL; - } - break; - } - eeconfig_update_user(user_config.raw); - } - return false; } return true; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c index d1cb624570..abebdd6296 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c @@ -19,4 +19,4 @@ static hsv_t COOL_DIAGONAL_math(hsv_t hsv, uint8_t i, uint8_t time) { return hsv; } -bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); } \ No newline at end of file +bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc b/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc index 1817465030..1e09e3f0c1 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc @@ -12,4 +12,4 @@ RGB_MATRIX_EFFECT(RANDOM_BREATH_RAINBOW) #include "led/kitt.c" #include "led/random_breath_rainbow.c" -#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS \ No newline at end of file +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/horrortroll/handwired_k552/lib/galaxy.c b/keyboards/horrortroll/handwired_k552/lib/galaxy.c index 6578295c6f..511c5ae775 100644 --- a/keyboards/horrortroll/handwired_k552/lib/galaxy.c +++ b/keyboards/horrortroll/handwired_k552/lib/galaxy.c @@ -59,4 +59,4 @@ void render_galaxy(void) { }; oled_write_raw_P(galaxy[0], ANIM_SIZE); -} \ No newline at end of file +} diff --git a/keyboards/horrortroll/handwired_k552/mcuconf.h b/keyboards/horrortroll/handwired_k552/mcuconf.h index 88bd6f4846..4469bc3398 100644 --- a/keyboards/horrortroll/handwired_k552/mcuconf.h +++ b/keyboards/horrortroll/handwired_k552/mcuconf.h @@ -30,4 +30,4 @@ #define STM32_SPI_USE_SPI1 TRUE #undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 FALSE \ No newline at end of file +#define STM32_SPI_USE_SPI2 FALSE diff --git a/keyboards/horrortroll/nyx/rev1/rev1.c b/keyboards/horrortroll/nyx/rev1/rev1.c index 48cbeb6680..d927f53f01 100644 --- a/keyboards/horrortroll/nyx/rev1/rev1.c +++ b/keyboards/horrortroll/nyx/rev1/rev1.c @@ -17,52 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - case QK_RGB_MATRIX_MODE_NEXT: - if (record->event.pressed) { - switch (rgb_matrix_get_mode()) { - case RGB_MATRIX_SOLID_MULTISPLASH: - rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR); - return false; - default: - rgb_matrix_step(); - return false; - } - } - return false; - case QK_RGB_MATRIX_MODE_PREVIOUS: - if (record->event.pressed) { - switch (rgb_matrix_get_mode()) { - case RGB_MATRIX_SOLID_COLOR: - rgb_matrix_mode(RGB_MATRIX_SOLID_MULTISPLASH); - return false; - default: - rgb_matrix_step_reverse(); - return false; - } - } - return false; - } - - return process_record_user(keycode, record); -} bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -76,14 +30,4 @@ bool rgb_matrix_indicators_kb(void) { } return true; } - -void keyboard_post_init_kb(void) { - if (!(rgb_matrix_get_flags() & LED_FLAG_ALL)) { - rgb_matrix_set_color_all(0, 0, 0); - } else { - rgb_matrix_mode_noeeprom(RGB_MATRIX_CUSTOM_STARTUP_SWIRL_ANIM); - } - - keyboard_post_init_user(); -} #endif diff --git a/keyboards/horrortroll/readme.md b/keyboards/horrortroll/readme.md index 64bcdf0c65..d862cab63e 100644 --- a/keyboards/horrortroll/readme.md +++ b/keyboards/horrortroll/readme.md @@ -32,4 +32,4 @@ **Discord:** HorrorTroll#0975 **Facebook:** https://www.facebook.com/PhamChonChe.Duc -**Email:** sonicvipduc@gmail.com \ No newline at end of file +**Email:** sonicvipduc@gmail.com diff --git a/keyboards/hotdox76v2/hotdox76v2.c b/keyboards/hotdox76v2/hotdox76v2.c index e60777703e..022bd92a1f 100644 --- a/keyboards/hotdox76v2/hotdox76v2.c +++ b/keyboards/hotdox76v2/hotdox76v2.c @@ -8,56 +8,6 @@ #include "oled_font_lib/logo2.h" #include "oled_font_lib/ext_font.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { - { - { NO_LED, 34, 33, 32, 35, 37, 36 }, - { 27, 28, 29, 30, 31, NO_LED, NO_LED }, - { 26, 25, 24, 23, 22, 21, 20 }, - { 14, 15, 16, 17, 18, 19, NO_LED }, - { 13, 12, 11, 10, 9, 8, 7 }, - { 0, 1, 2, 3, 4, 5, 6 }, - /*right*/ - { NO_LED, 77, 76, 75, 78, 80, 79 }, - { 70, 71, 72, 73, 74, NO_LED, NO_LED }, - { 69, 68, 67, 66, 65, 64, 63 }, - { 57, 58, 59, 60, 61, 62, NO_LED }, - { 56, 55, 54, 53, 52, 51, 50 }, - { 43, 44, 45, 46, 47, 48, 49 } - }, - { - // LED Index to Physical Position - {0,0}, {17,0}, {34,0}, {52,0}, {69,0}, {86,0}, {103,0}, - {103,13}, {86,13}, {69,13}, {52,13}, {34,13}, {17,13}, {0,13}, - {0,26}, {17,26}, {34,26}, {52,26}, {69,26}, {86,26}, - {103,38}, {86,38}, {69,38}, {52,38}, {34,38}, {17,38}, {0,38}, - {0,51}, {17,51}, {34,51}, {52,51}, {69,51}, - {86,64}, {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, - {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, - - {224,0}, {207,0}, {190,0}, {172,0}, {155,0}, {138,0}, {121,0}, - {121,13}, {138,13}, {155,13}, {172,13}, {190,13}, {207,13}, {224,13}, - {224,26}, {207,26}, {190,26}, {172,26}, {155,26}, {138,26}, - {121,38}, {138,38}, {155,38}, {172,38}, {190,38}, {207,38}, {224,38}, - {224,51}, {207,51}, {190,51}, {172,51}, {155,51}, - {138,64}, {155,64}, {172,64}, {190,64}, {207,64}, {224,64}, - {155,64}, {172,64}, {190,64}, {207,64}, {224,64} - - - }, - { - // LED Index to Flag - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 2,2,2,2,2, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 2,2,2,2,2 - } -}; -// clang-format on -#endif - #ifdef OLED_ENABLE # define UNC (' ') diff --git a/keyboards/hotdox76v2/keyboard.json b/keyboards/hotdox76v2/keyboard.json index 8881670b56..cb70bdefee 100644 --- a/keyboards/hotdox76v2/keyboard.json +++ b/keyboards/hotdox76v2/keyboard.json @@ -24,6 +24,94 @@ }, "center_point": [112, 32], "driver": "ws2812", + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 103, "y": 13, "flags": 4}, + {"matrix": [4, 5], "x": 86, "y": 13, "flags": 4}, + {"matrix": [4, 4], "x": 69, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 52, "y": 13, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 13, "flags": 4}, + {"matrix": [4, 1], "x": 17, "y": 13, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 26, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 26, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 38, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 38, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 38, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 51, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 51, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 51, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 51, "flags": 4}, + {"matrix": [0, 3], "x": 86, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 69, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 52, "y": 64, "flags": 4}, + {"matrix": [0, 4], "x": 34, "y": 64, "flags": 4}, + {"matrix": [0, 6], "x": 17, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 64, "flags": 4}, + {"x": 69, "y": 64, "flags": 2}, + {"x": 52, "y": 64, "flags": 2}, + {"x": 34, "y": 64, "flags": 2}, + {"x": 17, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"matrix": [11, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [11, 1], "x": 207, "y": 0, "flags": 4}, + {"matrix": [11, 2], "x": 190, "y": 0, "flags": 4}, + {"matrix": [11, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [11, 4], "x": 155, "y": 0, "flags": 4}, + {"matrix": [11, 5], "x": 138, "y": 0, "flags": 4}, + {"matrix": [11, 6], "x": 121, "y": 0, "flags": 4}, + {"matrix": [10, 6], "x": 121, "y": 13, "flags": 4}, + {"matrix": [10, 5], "x": 138, "y": 13, "flags": 4}, + {"matrix": [10, 4], "x": 155, "y": 13, "flags": 4}, + {"matrix": [10, 3], "x": 172, "y": 13, "flags": 4}, + {"matrix": [10, 2], "x": 190, "y": 13, "flags": 4}, + {"matrix": [10, 1], "x": 207, "y": 13, "flags": 4}, + {"matrix": [10, 0], "x": 224, "y": 13, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 207, "y": 26, "flags": 4}, + {"matrix": [9, 2], "x": 190, "y": 26, "flags": 4}, + {"matrix": [9, 3], "x": 172, "y": 26, "flags": 4}, + {"matrix": [9, 4], "x": 155, "y": 26, "flags": 4}, + {"matrix": [9, 5], "x": 138, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 121, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 138, "y": 38, "flags": 4}, + {"matrix": [8, 4], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 3], "x": 172, "y": 38, "flags": 4}, + {"matrix": [8, 2], "x": 190, "y": 38, "flags": 4}, + {"matrix": [8, 1], "x": 207, "y": 38, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 38, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 51, "flags": 4}, + {"matrix": [7, 1], "x": 207, "y": 51, "flags": 4}, + {"matrix": [7, 2], "x": 190, "y": 51, "flags": 4}, + {"matrix": [7, 3], "x": 172, "y": 51, "flags": 4}, + {"matrix": [7, 4], "x": 155, "y": 51, "flags": 4}, + {"matrix": [6, 3], "x": 138, "y": 64, "flags": 4}, + {"matrix": [6, 2], "x": 155, "y": 64, "flags": 4}, + {"matrix": [6, 1], "x": 172, "y": 64, "flags": 4}, + {"matrix": [6, 4], "x": 190, "y": 64, "flags": 4}, + {"matrix": [6, 6], "x": 207, "y": 64, "flags": 4}, + {"matrix": [6, 5], "x": 224, "y": 64, "flags": 4}, + {"x": 155, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 190, "y": 64, "flags": 2}, + {"x": 207, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 150, "sleep": true, "split_count": [43, 43] diff --git a/keyboards/hp69/keymaps/default/rules.mk b/keyboards/hp69/keymaps/default/rules.mk index 628167ff66..ef72559a0c 100644 --- a/keyboards/hp69/keymaps/default/rules.mk +++ b/keyboards/hp69/keymaps/default/rules.mk @@ -1 +1 @@ -AUDIO_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes diff --git a/keyboards/hs60/v1/ansi/keymaps/default/readme.md b/keyboards/hs60/v1/ansi/keymaps/default/readme.md index fa811319d3..0c10315c81 100644 --- a/keyboards/hs60/v1/ansi/keymaps/default/readme.md +++ b/keyboards/hs60/v1/ansi/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ANSI HS60 ![Layout image](https://imgur.com/CSyPw0J.png) -Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/hs60/v1/iso/keymaps/default/readme.md b/keyboards/hs60/v1/iso/keymaps/default/readme.md index 9125cb349e..a0d36ee927 100644 --- a/keyboards/hs60/v1/iso/keymaps/default/readme.md +++ b/keyboards/hs60/v1/iso/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ISO HS60 ![Layout image](https://imgur.com/HXj4tYL.png) -Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/hs60/v2/ansi/keymaps/default/readme.md b/keyboards/hs60/v2/ansi/keymaps/default/readme.md index 3afd8afb33..da48fc9297 100644 --- a/keyboards/hs60/v2/ansi/keymaps/default/readme.md +++ b/keyboards/hs60/v2/ansi/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ANSI HS60 V2. VIA support disabled. ![Layout image](https://i.imgur.com/m8t5CfE.png) -Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster. \ No newline at end of file +Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster. diff --git a/keyboards/hs60/v2/hhkb/keymaps/default/readme.md b/keyboards/hs60/v2/hhkb/keymaps/default/readme.md index 5259a584d2..2d7ad0d103 100644 --- a/keyboards/hs60/v2/hhkb/keymaps/default/readme.md +++ b/keyboards/hs60/v2/hhkb/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for HHKB HS60 V2. VIA support disabled. ![Layout image](https://imgur.com/usbrQWL.png) -Default layer is normal HHKB with 7U space. Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal HHKB with 7U space. Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/hs60/v2/iso/keymaps/default/readme.md b/keyboards/hs60/v2/iso/keymaps/default/readme.md index 9aa0a3a2b5..7f41ad185f 100644 --- a/keyboards/hs60/v2/iso/keymaps/default/readme.md +++ b/keyboards/hs60/v2/iso/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ISO HS60 V2. VIA support disabled. ![Layout image](https://imgur.com/6go4vQV.png) -Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/ianklug/grooveboard/keymaps/default/keymap.c b/keyboards/ianklug/grooveboard/keymaps/default/keymap.c index 643d9f1d1b..caac536104 100644 --- a/keyboards/ianklug/grooveboard/keymaps/default/keymap.c +++ b/keyboards/ianklug/grooveboard/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json index 3bf1069fd1..3dc35aa22a 100644 --- a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json +++ b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 101/102", "manufacturer": "ashpil", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/ashpil_usbc", "maintainer": "ashpil", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/mschwingen/info.json b/keyboards/ibm/model_m/mschwingen/info.json index 0deb57ed03..27b3ff5381 100644 --- a/keyboards/ibm/model_m/mschwingen/info.json +++ b/keyboards/ibm/model_m/mschwingen/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "atmega32U4 board for IBM Model M", "manufacturer": "mschwingen", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/mschwingen", "maintainer": "mschwingen", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/teensy2/keyboard.json b/keyboards/ibm/model_m/teensy2/keyboard.json index fac1d42ebe..62be457462 100644 --- a/keyboards/ibm/model_m/teensy2/keyboard.json +++ b/keyboards/ibm/model_m/teensy2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 101/102", "manufacturer": "wangfuco", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensy2", "maintainer": "wangfuco", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/teensypp/keyboard.json b/keyboards/ibm/model_m/teensypp/keyboard.json index e77c43483b..5166cda073 100644 --- a/keyboards/ibm/model_m/teensypp/keyboard.json +++ b/keyboards/ibm/model_m/teensypp/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 101/102", "manufacturer": "iw0rm3r", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensypp", "maintainer": "iw0rm3r", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/yugo_m/keyboard.json b/keyboards/ibm/model_m/yugo_m/keyboard.json index aee2f9720a..f4b3282102 100644 --- a/keyboards/ibm/model_m/yugo_m/keyboard.json +++ b/keyboards/ibm/model_m/yugo_m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Yugo-M (IBM Model M replacment controller)", "manufacturer": "IBM", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/yugo_m", "maintainer": "Nidzo Tomic", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m_122/ibm122m/keyboard.json b/keyboards/ibm/model_m_122/ibm122m/keyboard.json index a9e10ffd6a..23bfbf2c6a 100644 --- a/keyboards/ibm/model_m_122/ibm122m/keyboard.json +++ b/keyboards/ibm/model_m_122/ibm122m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 122 key", "manufacturer": "IBM", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_122/ibm122m", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m_122/m122_3270/info.json b/keyboards/ibm/model_m_122/m122_3270/info.json index 9b7a78c7f7..364ab250dc 100644 --- a/keyboards/ibm/model_m_122/m122_3270/info.json +++ b/keyboards/ibm/model_m_122/m122_3270/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Model M PC/3270 122 key", "manufacturer": "IBM", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_122/m122_3270", "maintainer": "jmaynard", "usb": { "vid": "0x1209", diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json index 50ce403130..06ce761651 100644 --- a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json +++ b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M Space-Saving Keyboard", "manufacturer": "tiltowait", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_ssk/teensypp_ssk", "maintainer": "tiltowait", "usb": { "vid": "0xFEED", diff --git a/keyboards/icebreaker/readme.md b/keyboards/icebreaker/readme.md index 439756f1b3..dac4163669 100644 --- a/keyboards/icebreaker/readme.md +++ b/keyboards/icebreaker/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idlebuilds/dinkey32_30/dinkey32_30.c b/keyboards/idlebuilds/dinkey32_30/dinkey32_30.c new file mode 100644 index 0000000000..0473726a44 --- /dev/null +++ b/keyboards/idlebuilds/dinkey32_30/dinkey32_30.c @@ -0,0 +1,26 @@ +// Copyright 2023 Idle Builds (@IdleBuilds) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + static const char PROGMEM idle_builds_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x80, 0x80, 0x80, 0xc0, 0xff, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf3, 0xf3, 0xf3, 0xf3, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x39, 0x3d, 0x3d, 0x3d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x88, 0x88, 0x88, 0x88, 0x88, 0xd8, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xa8, 0xa8, 0xa8, 0xa8, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xa8, 0xa8, 0xa8, 0xa8, 0xf8, 0xf8, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xf8, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xf8, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x88, 0x88, 0x88, 0x88, 0x88, 0xd8, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xb8, 0xa8, 0xa8, 0xa8, 0xe8, 0xe8, 0x40}; + oled_write_raw_P(idle_builds_logo, sizeof(idle_builds_logo)); + } else { + oled_write_P(PSTR("\n\nDINKEY 32|30"), false); + } + return true; +} +#endif diff --git a/keyboards/idlebuilds/dinkey32_30/keyboard.json b/keyboards/idlebuilds/dinkey32_30/keyboard.json new file mode 100644 index 0000000000..f26cd4366e --- /dev/null +++ b/keyboards/idlebuilds/dinkey32_30/keyboard.json @@ -0,0 +1,107 @@ +{ + "keyboard_name": "dinkey32_30", + "manufacturer": "Idle Builds", + "maintainer": "IdleBuilds", + "url": "https://github.com/IdleBuilds/Dinkey", + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "usb": { + "device_version": "1.0.0", + "pid": "0x3230", + "vid": "0xFEED" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "oled": true + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "modifiers": true + } + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["E6", "D7", "C6", "D4", "F6"], + "rows": ["F4", "F5", "B4", "B5"] + }, + "layouts": { + "LAYOUT_32": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.93}, + {"matrix": [0, 1], "x": 1, "y": 0.31}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.28}, + {"matrix": [0, 4], "x": 4, "y": 0.42}, + {"matrix": [4, 4], "x": 7, "y": 0.42}, + {"matrix": [4, 3], "x": 8, "y": 0.28}, + {"matrix": [4, 2], "x": 9, "y": 0}, + {"matrix": [4, 1], "x": 10, "y": 0.31}, + {"matrix": [4, 0], "x": 11, "y": 0.93}, + {"matrix": [1, 1], "x": 1, "y": 1.31}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.28}, + {"matrix": [1, 4], "x": 4, "y": 1.42}, + {"matrix": [5, 4], "x": 7, "y": 1.42}, + {"matrix": [5, 3], "x": 8, "y": 1.28}, + {"matrix": [5, 2], "x": 9, "y": 1}, + {"matrix": [5, 1], "x": 10, "y": 1.31}, + {"matrix": [2, 0], "x": 0, "y": 2.93}, + {"matrix": [2, 1], "x": 1, "y": 2.31}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.28}, + {"matrix": [2, 4], "x": 4, "y": 2.42}, + {"matrix": [6, 4], "x": 7, "y": 2.42}, + {"matrix": [6, 3], "x": 8, "y": 2.28}, + {"matrix": [6, 2], "x": 9, "y": 2}, + {"matrix": [6, 1], "x": 10, "y": 2.31}, + {"matrix": [6, 0], "x": 11, "y": 2.93}, + {"matrix": [3, 3], "x": 3.5, "y": 3.75}, + {"matrix": [3, 4], "x": 4.5, "y": 4}, + {"matrix": [7, 4], "x": 6.5, "y": 4}, + {"matrix": [7, 3], "x": 7.5, "y": 3.75} + ] + }, + "LAYOUT_30": { + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 1.93}, + {"matrix": [0, 1], "x": 1, "y": 0.31}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.28}, + {"matrix": [0, 4], "x": 4, "y": 0.42}, + {"matrix": [4, 4], "x": 7, "y": 0.42}, + {"matrix": [4, 3], "x": 8, "y": 0.28}, + {"matrix": [4, 2], "x": 9, "y": 0}, + {"matrix": [4, 1], "x": 10, "y": 0.31}, + {"matrix": [5, 0], "x": 11, "y": 1.93}, + {"matrix": [1, 1], "x": 1, "y": 1.31}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.28}, + {"matrix": [1, 4], "x": 4, "y": 1.42}, + {"matrix": [5, 4], "x": 7, "y": 1.42}, + {"matrix": [5, 3], "x": 8, "y": 1.28}, + {"matrix": [5, 2], "x": 9, "y": 1}, + {"matrix": [5, 1], "x": 10, "y": 1.31}, + {"matrix": [2, 1], "x": 1, "y": 2.31}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.28}, + {"matrix": [2, 4], "x": 4, "y": 2.42}, + {"matrix": [6, 4], "x": 7, "y": 2.42}, + {"matrix": [6, 3], "x": 8, "y": 2.28}, + {"matrix": [6, 2], "x": 9, "y": 2}, + {"matrix": [6, 1], "x": 10, "y": 2.31}, + {"matrix": [3, 3], "x": 3.5, "y": 3.75}, + {"matrix": [3, 4], "x": 4.5, "y": 4}, + {"matrix": [7, 4], "x": 6.5, "y": 4}, + {"matrix": [7, 3], "x": 7.5, "y": 3.75} + ] + } + } +} diff --git a/keyboards/idlebuilds/dinkey32_30/keymaps/default/keymap.c b/keyboards/idlebuilds/dinkey32_30/keymaps/default/keymap.c new file mode 100644 index 0000000000..5e3e90de26 --- /dev/null +++ b/keyboards/idlebuilds/dinkey32_30/keymaps/default/keymap.c @@ -0,0 +1,14 @@ +// Copyright 2023 Idle Builds (@IdleBuilds) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_30( + KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_P, + KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, + KC_BSPC, KC_TAB, KC_SPC, KC_ENT + ) +}; diff --git a/keyboards/idlebuilds/dinkey32_30/readme.md b/keyboards/idlebuilds/dinkey32_30/readme.md new file mode 100644 index 0000000000..2b882e7eca --- /dev/null +++ b/keyboards/idlebuilds/dinkey32_30/readme.md @@ -0,0 +1,28 @@ +# Dinkey 32|30 + +![Dinkey 32|30 — 30 key config](https://i.imgur.com/L7e2yfP.jpeg) +![Dinkey 32|30 — 32 key config](https://i.imgur.com/iEurnyP.jpeg) + +A low-profile split keyboard with 30 or 32 key configuration. Part of the Dinkey keyboard series by Idle Builds. + +* Keyboard Maintainer: [IdleBuilds](https://github.com/IdleBuilds) +* Hardware Supported: Dinkey 32|30 PCB, ATmega32U4 +* Hardware Availability: [Store](https://www.idlebuilds.com), [Idle Builds GitHub](https://github.com/IdleBuilds/Dinkey) + +Make example for this keyboard (after setting up your build environment): + + make idlebuilds/dinkey32_30:default + +Flashing example for this keyboard: + + make idlebuilds/dinkey32_30: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 (top left key on left half) 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/idlebuilds/dinkey34/dinkey34.c b/keyboards/idlebuilds/dinkey34/dinkey34.c new file mode 100644 index 0000000000..3140a25440 --- /dev/null +++ b/keyboards/idlebuilds/dinkey34/dinkey34.c @@ -0,0 +1,42 @@ +// Copyright 2023 Idle Builds (@IdleBuilds) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + oled_write_P(PSTR("LAYER:\n\n"), false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("BASE\n"), false); + break; + case 1: + oled_write_P(PSTR("LAYER 1\n"), false); + break; + case 2: + oled_write_P(PSTR("LAYER 2\n"), false); + break; + case 3: + oled_write_P(PSTR("LAYER 3\n"), false); + break; + default: + oled_write_P(PSTR("UNKNOWN\n"), false); + } + } else { + static const char PROGMEM my_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0xff, 0x3f, 0x03, 0x03, 0x03, 0x03, 0x07, 0xce, 0xfc, 0x10, 0x00, 0x80, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0x7e, 0x1e, 0x78, 0xe0, 0x80, 0x00, 0xc0, 0xfe, 0x1f, 0x00, 0x00, 0x80, 0xfe, 0xff, 0xe0, 0xb0, 0x18, 0x1c, 0x0e, 0x02, 0x00, 0x00, 0x00, 0xc0, 0xfe, 0xfe, 0xe2, 0xe2, 0x63, 0x63, 0x63, 0x03, 0x00, 0x03, 0x06, 0x1c, 0x38, 0xf0, 0xf0, 0x38, 0x1c, 0x0e, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0xcc, 0xe4, 0xf4, 0xde, 0xde, 0xce, 0x80, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xd8, 0xcc, 0xcc, 0xfe, 0xdf, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0c, 0x04, 0x06, 0x06, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x0c, 0x0c, 0x00, 0x00, 0x0f, 0x0f, 0x08, 0x08, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x08, 0x08, 0x08, 0x0c, 0x0c, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + oled_write_raw_P(my_logo, sizeof(my_logo)); + } + return true; +} +#endif diff --git a/keyboards/idlebuilds/dinkey34/keyboard.json b/keyboards/idlebuilds/dinkey34/keyboard.json new file mode 100644 index 0000000000..9040410939 --- /dev/null +++ b/keyboards/idlebuilds/dinkey34/keyboard.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "dinkey34", + "manufacturer": "Idle Builds", + "maintainer": "IdleBuilds", + "url": "https://github.com/IdleBuilds/Dinkey", + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "usb": { + "device_version": "1.0.0", + "pid": "0x3400", + "vid": "0xFEED" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "oled": true + }, + "split": { + "enabled": true, + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "modifiers": true + } + } + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["E6", "D7", "C6", "D4", "F6"], + "rows": ["F4", "F5", "B4", "B5"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0.93, "matrix": [0, 0]}, + {"x": 1, "y": 0.31, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0.28, "matrix": [0, 3]}, + {"x": 4, "y": 0.42, "matrix": [0, 4]}, + + {"x": 7, "y": 0.42, "matrix": [4, 4]}, + {"x": 8, "y": 0.28, "matrix": [4, 3]}, + {"x": 9, "y": 0, "matrix": [4, 2]}, + {"x": 10, "y": 0.31, "matrix": [4, 1]}, + {"x": 11, "y": 0.93, "matrix": [4, 0]}, + + {"x": 0, "y": 1.93, "matrix": [1, 0]}, + {"x": 1, "y": 1.31, "matrix": [1, 1]}, + {"x": 2, "y": 1, "matrix": [1, 2]}, + {"x": 3, "y": 1.28, "matrix": [1, 3]}, + {"x": 4, "y": 1.42, "matrix": [1, 4]}, + + {"x": 7, "y": 1.42, "matrix": [5, 4]}, + {"x": 8, "y": 1.28, "matrix": [5, 3]}, + {"x": 9, "y": 1, "matrix": [5, 2]}, + {"x": 10, "y": 1.31, "matrix": [5, 1]}, + {"x": 11, "y": 1.93, "matrix": [5, 0]}, + + {"x": 0, "y": 2.93, "matrix": [2, 0]}, + {"x": 1, "y": 2.31, "matrix": [2, 1]}, + {"x": 2, "y": 2, "matrix": [2, 2]}, + {"x": 3, "y": 2.28, "matrix": [2, 3]}, + {"x": 4, "y": 2.42, "matrix": [2, 4]}, + + {"x": 7, "y": 2.42, "matrix": [6, 4]}, + {"x": 8, "y": 2.28, "matrix": [6, 3]}, + {"x": 9, "y": 2, "matrix": [6, 2]}, + {"x": 10, "y": 2.31, "matrix": [6, 1]}, + {"x": 11, "y": 2.93, "matrix": [6, 0]}, + + {"matrix": [3, 0], "x": 3.5, "y": 3.75}, + {"matrix": [3, 1], "x": 4.5, "y": 4}, + + {"matrix": [7, 1], "x": 6.5, "y": 4}, + {"matrix": [7, 0], "x": 7.5, "y": 3.75} + ] + } + } +} diff --git a/keyboards/idlebuilds/dinkey34/keymaps/default/keymap.c b/keyboards/idlebuilds/dinkey34/keymaps/default/keymap.c new file mode 100644 index 0000000000..17f04e5b20 --- /dev/null +++ b/keyboards/idlebuilds/dinkey34/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2023 Idle Builds (@IdleBuilds) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_BSPC, KC_TAB, KC_SPC, KC_ENT + ), +}; diff --git a/keyboards/idlebuilds/dinkey34/readme.md b/keyboards/idlebuilds/dinkey34/readme.md new file mode 100644 index 0000000000..52ca151b3a --- /dev/null +++ b/keyboards/idlebuilds/dinkey34/readme.md @@ -0,0 +1,27 @@ +# Dinkey 34 + +![Dinkey 34](https://i.imgur.com/MhrvYzo.jpeg) + +A low-profile split keyboard with 34 keys. Part of the Dinkey keyboard series by Idle Builds. + +* Keyboard Maintainer: [IdleBuilds](https://github.com/IdleBuilds) +* Hardware Supported: Dinkey 34 PCB, ATmega32U4 +* Hardware Availability: [Store](https://www.idlebuilds.com), [Idle Builds GitHub](https://github.com/IdleBuilds/Dinkey) + +Make example for this keyboard (after setting up your build environment): + + make idlebuilds/dinkey34:default + +Flashing example for this keyboard: + + make idlebuilds/dinkey34: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 (top left key on left half) 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/idobao/id42/id42.c b/keyboards/idobao/id42/id42.c deleted file mode 100755 index 5e76e4c5be..0000000000 --- a/keyboards/idobao/id42/id42.c +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │41 │40 │39 │38 │37 │36 │35 │34 │33 │32 │31 │30 │ - * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │ 29 │28 │27 │26 │25 │24 │23 │22 │21 │20 │ 19 │ - * ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──┬┴──┬───┤ - * │ 18 │17 │16 │15 │14 │13 │12 │11 │ 10 │ 9 │ 8 │ - * ├────┬┴──┬┴───┼───┴───┴─┬─┴───┴───┼─┬───┼───┼───┤ - * │ 7 │ 6 │ 5 │ 4 │ 3 │ │ 2 │ 1 │ 0 │ - * └────┴───┴────┴─────────┴─────────┘ └───┴───┴───┘ - */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - // WS2812 LED strings are addressed from 0 (1st) to RGB_MATRIX_LED_COUNT-1 (last) - { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 }, - { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __, 19 }, - { 18, 17, 16, 15, 14, 13, 12, 11, 10, __, 9, 8 }, - { 7, 6, 5, 4, __, __, 3, __, __, 2, 1, 0 } -}, { - // LED Index to Physical Position - // **NB**: Reversed order - // Generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - {224,64 }, {204,64 }, {183,64 }, {135,64 }, { 84,64 }, { 48,64 }, { 25,64 }, { 3,64 }, - {224,43 }, {204,43 }, {181,43 }, {158,43 }, {137,43 }, {117,43 }, { 97,43 }, { 76,43 }, { 56,43 }, { 36,43 }, { 8,43 }, - {216,21 }, {188,21 }, {168,21 }, {148,21 }, {127,21 }, {107,21 }, { 87,21 }, { 66,21 }, { 46,21 }, { 25,21 }, { 3,21 }, - {224,0 }, {204,0 }, {183,0 }, {163,0 }, {143,0 }, {122,0 }, {102,0 }, { 81,0 }, { 61,0 }, { 41,0 }, { 20,0 }, { 0,0 } -}, { - // LED Index to Flag - // **NB**: Reversed order - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id42/keyboard.json b/keyboards/idobao/id42/keyboard.json index 0f1cecd16a..d726f04e78 100644 --- a/keyboards/idobao/id42/keyboard.json +++ b/keyboards/idobao/id42/keyboard.json @@ -56,6 +56,50 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 10], "x": 204, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 135, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 84, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 25, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 3, "y": 64, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 43, "flags": 4}, + {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 181, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 158, "y": 43, "flags": 1}, + {"matrix": [2, 6], "x": 137, "y": 43, "flags": 1}, + {"matrix": [2, 5], "x": 117, "y": 43, "flags": 1}, + {"matrix": [2, 4], "x": 97, "y": 43, "flags": 1}, + {"matrix": [2, 3], "x": 76, "y": 43, "flags": 1}, + {"matrix": [2, 2], "x": 56, "y": 43, "flags": 1}, + {"matrix": [2, 1], "x": 36, "y": 43, "flags": 1}, + {"matrix": [2, 0], "x": 8, "y": 43, "flags": 4}, + {"matrix": [1, 11], "x": 216, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 188, "y": 21, "flags": 1}, + {"matrix": [1, 8], "x": 168, "y": 21, "flags": 1}, + {"matrix": [1, 7], "x": 148, "y": 21, "flags": 1}, + {"matrix": [1, 6], "x": 127, "y": 21, "flags": 1}, + {"matrix": [1, 5], "x": 107, "y": 21, "flags": 1}, + {"matrix": [1, 4], "x": 87, "y": 21, "flags": 1}, + {"matrix": [1, 3], "x": 66, "y": 21, "flags": 1}, + {"matrix": [1, 2], "x": 46, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 1}, + {"matrix": [1, 0], "x": 3, "y": 21, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 204, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 163, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id61/config.h b/keyboards/idobao/id61/config.h deleted file mode 100644 index 3766a8ef1d..0000000000 --- a/keyboards/idobao/id61/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID61_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 71 - #else - #define RGB_MATRIX_LED_COUNT 61 // = 71 - 10 - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id61/id61.c b/keyboards/idobao/id61/id61.c deleted file mode 100644 index bd2271049b..0000000000 --- a/keyboards/idobao/id61/id61.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#if defined(RGB_MATRIX_ENABLE) - -/* Pre-key - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │49 │48 │ 47 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ 46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │35 │34 │ 33 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ 32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │22 │21 │ 20 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ 19 │18 │17 │16 │15 │14 │13 │12 │11 │10 │ 9 │ 8 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - * - * Underglow (from top / [Esc] = top left) - * ┌────┬────┬────┬────┬────┐ - * │ 61 │ 62 │ 63 │ 64 │ 65 │ - * ├────┴────┴────┴────┴────┤ - * ├────┬────┬────┬────┬────┤ - * │ 70 │ 69 │ 68 │ 67 │ 66 │ - * └────┴────┴────┴────┴────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47 }, - { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33 }, - { 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __ }, - { 19, __, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, __ }, - { 7, 6, 5, __, __, __, 4, __, __, __, 3, 2, 1, 0 }, -}, { - // LED Index to Physical Position - // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - /* NB: Reverse order! */ - {224,64 }, {204,64 }, {184,64 }, {163,64 }, {103,64 }, { 42,64 }, { 22,64 }, { 2,64 }, - {212,48 }, {182,48 }, {165,48 }, {149,48 }, {133,48 }, {117,48 }, {101,48 }, { 85,48 }, { 69,48 }, { 52,48 }, { 36,48 }, { 10,48 }, - {216,32 }, {190,32 }, {174,32 }, {157,32 }, {141,32 }, {125,32 }, {109,32 }, { 93,32 }, { 77,32 }, { 61,32 }, { 44,32 }, { 28,32 }, { 6,32 }, - {222,16 }, {202,16 }, {186,16 }, {170,16 }, {153,16 }, {137,16 }, {121,16 }, {105,16 }, { 89,16 }, { 73,16 }, { 57,16 }, { 40,16 }, { 24,16 }, { 4,16 }, - {218,0 }, {194,0 }, {178,0 }, {161,0 }, {145,0 }, {129,0 }, {113,0 }, { 97,0 }, { 81,0 }, { 65,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 } - // underglow LEDs (positions pushed to nearest edge to match edge key colors) - #ifndef ID61_DISABLE_UNDERGLOW - , { 0,0 }, { 56,0 }, { 112,0 }, {168,0 }, {224,0 }, - {224,64 }, {168,64 }, {112,64 }, { 56,64 }, { 0,64 } - #endif -}, { - // LED Index to Flag - /* NB: Reverse order! */ - 1, 1, 1, 1, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - // underglow LEDs - #ifndef ID61_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2 - #endif -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id61/keyboard.json b/keyboards/idobao/id61/keyboard.json index d3bf62c726..af0c29788d 100644 --- a/keyboards/idobao/id61/keyboard.json +++ b/keyboards/idobao/id61/keyboard.json @@ -56,6 +56,79 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 12], "x": 212, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 182, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [2, 12], "x": 216, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 190, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 174, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 170, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 56, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 168, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ], "max_brightness": 170, "sleep": true }, diff --git a/keyboards/idobao/id61/post_rules.mk b/keyboards/idobao/id61/post_rules.mk deleted file mode 100644 index 673b260396..0000000000 --- a/keyboards/idobao/id61/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# The Denwir D60 case has a sealed/solid undercase, -# this enables switching off thoes LEDs -# Usage: `make idobao/id61:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID61_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/id63/config.h b/keyboards/idobao/id63/config.h deleted file mode 100644 index 5a7df9028e..0000000000 --- a/keyboards/idobao/id63/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID63_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 75 - #else - #define RGB_MATRIX_LED_COUNT (75 - 12) - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id63/id63.c b/keyboards/idobao/id63/id63.c deleted file mode 100644 index f425eb4fe4..0000000000 --- a/keyboards/idobao/id63/id63.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* Pre-key LED addresses - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │ 49 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ 48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │ 35 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ - * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ - * - * Underglow LED addresses (as seen from top / [Esc] = top left) - * ┌────┬────┬────┬────┬────┬────┐ - * │ 63 │ 64 │ 65 │ 66 │ 67 │ 68 │ - * ├────┴────┴────┴────┴────┴────┤ - * ├────┬────┬────┬────┬────┬────┤ - * │ 74 │ 73 │ 72 │ 71 │ 70 │ 69 │ - * └────┴────┴────┴────┴────┴────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49 }, - { 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 }, - { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, __, 22 }, - { 21, __, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, - { 8, 7, __, 6, __, __, 5, __, __, 4, 3, 2, 1, 0 }, -}, { - // LED Index to Physical Position - // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - /* NB: Reverse & upside-down order! */ - {224,64 }, {208,64 }, {192,64 }, {176,64 }, {160,64 }, {102,64 }, { 42,64 }, { 22,64 }, { 2,64 }, - {224,48 }, {208,48 }, {186,48 }, {164,48 }, {148,48 }, {132,48 }, {116,48 }, {100,48 }, { 84,48 }, { 68,48 }, { 52,48 }, { 36,48 }, { 10,48 }, - {214,32 }, {188,32 }, {172,32 }, {156,32 }, {140,32 }, {124,32 }, {108,32 }, { 92,32 }, { 76,32 }, { 60,32 }, { 44,32 }, { 28,32 }, { 6,32 }, - {220,16 }, {200,16 }, {184,16 }, {168,16 }, {152,16 }, {136,16 }, {120,16 }, {104,16 }, { 88,16 }, { 72,16 }, { 56,16 }, { 40,16 }, { 24,16 }, { 4,16 }, - {216,0 }, {192,0 }, {176,0 }, {160,0 }, {144,0 }, {128,0 }, {112,0 }, { 96,0 }, { 80,0 }, { 64,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 } - // underglow LEDs (positions pushed to nearest edge to match edge key colors) - #ifndef ID63_DISABLE_UNDERGLOW - , { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, - {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 } - #endif -}, { - // LED Index to Flag - /* NB: Reverse & upside-down order! */ - 4, 4, 4, 1, 1, 4, 1, 1, 1, - 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - // underglow LEDs - #ifndef ID63_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2 - #endif -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id63/keyboard.json b/keyboards/idobao/id63/keyboard.json index 141c1263d1..bfe0ac7cbe 100644 --- a/keyboards/idobao/id63/keyboard.json +++ b/keyboards/idobao/id63/keyboard.json @@ -56,6 +56,83 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id63/post_rules.mk b/keyboards/idobao/id63/post_rules.mk deleted file mode 100644 index 1a465397fd..0000000000 --- a/keyboards/idobao/id63/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# The Denwir D60 case has a sealed/solid undercase, -# this enables switching off thoes LEDs -# Usage: `make idobao/id63:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID63_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/id67/config.h b/keyboards/idobao/id67/config.h deleted file mode 100644 index 8f454d1ff4..0000000000 --- a/keyboards/idobao/id67/config.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2021 Tybera (@tybera) -// Copyright 2021 Werther (@thewerther) -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID67_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 77 - #else - #define RGB_MATRIX_LED_COUNT (77 - 10) - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id67/id67.c b/keyboards/idobao/id67/id67.c deleted file mode 100644 index dab6347eb3..0000000000 --- a/keyboards/idobao/id67/id67.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2021 Tybera (@tybera) -// Copyright 2021 Werther (@thewerther) -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#if defined(RGB_MATRIX_ENABLE) - -/* NB!!: Indices are reversed on the physical board, top left is bottom right. - * These "LED Index to *" arrays are in that reversed order! - * i.e., Space row on top, listed right to left */ -led_config_t g_led_config = { { - /* Under- / Per-Key - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │66 │65 │64 │63 │62 │61 │60 │59 │58 │57 │56 │55 │54 │ 53 │52 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │ 51 │50 │49 │48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │ 38 │37 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │ 36 │35 │34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │ 24 │23 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │ 22 │21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ │ 2 │ 1 │ 0 │ - * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ - * - * Bottom Side (as seen from top orientation) - * 67 68 69 70 71 - * 76 75 74 73 72 - */ - // Key Matrix to LED Index - {66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52}, - {51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37}, - {36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, __, 24, 23}, - {22, __, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9}, - { 8, 7, __, 6, __, __, 5, __, __, __, 4, 3, 2, 1, 0}, -}, { - // LED Index to Physical Position - // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb - // **NB: In reverse order** - {224,64 }, {209,64 }, {194,64 }, {170,64 }, {151,64 }, { 95,64 }, { 39,64 }, { 21,64 }, { 2,64 }, - {224,48 }, {209,48 }, {189,48 }, {168,48 }, {153,48 }, {138,48 }, {123,48 }, {108,48 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 9,48 }, - {224,32 }, {200,32 }, {175,32 }, {161,32 }, {146,32 }, {131,32 }, {116,32 }, {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 6,32 }, - {224,16 }, {205,16 }, {187,16 }, {172,16 }, {157,16 }, {142,16 }, {127,16 }, {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 }, - {224,0 }, {202,0 }, {179,0 }, {164,0 }, {149,0 }, {134,0 }, {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 } - // underglow LEDs - #ifndef ID67_DISABLE_UNDERGLOW - , {0, 0}, {56, 0}, {112, 0}, {168, 0}, {224, 0}, - {224, 64}, {168, 64}, {112, 64}, {56, 64}, {0, 64} - #endif -}, { - // LED Index to Flag - // **NB: In reverse order** - 1, 1, 1, 1, 1, 4, 1, 1, 1, // fifth/bottom row - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, // third row - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 // first/top row - // underglow LEDs - #ifndef ID67_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2 - #endif -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id67/keyboard.json b/keyboards/idobao/id67/keyboard.json index 786ed39be0..025b965050 100644 --- a/keyboards/idobao/id67/keyboard.json +++ b/keyboards/idobao/id67/keyboard.json @@ -56,6 +56,85 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 170, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 151, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"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, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 56, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 168, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id67/post_rules.mk b/keyboards/idobao/id67/post_rules.mk deleted file mode 100644 index 32832a65b2..0000000000 --- a/keyboards/idobao/id67/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Some ID67 variants (v1 base build & "Bestype") have a solid back plate, -# this enables switching off thoes LEDs -# Usage: `make idobao/id67:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID67_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/id75/v2/keyboard.json b/keyboards/idobao/id75/v2/keyboard.json index 743c7cf404..068c01a785 100644 --- a/keyboards/idobao/id75/v2/keyboard.json +++ b/keyboards/idobao/id75/v2/keyboard.json @@ -44,7 +44,94 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 8, "y": 12, "flags": 2}, + {"x": 60, "y": 12, "flags": 2}, + {"x": 112, "y": 12, "flags": 2}, + {"x": 164, "y": 12, "flags": 2}, + {"x": 216, "y": 12, "flags": 2}, + {"x": 216, "y": 60, "flags": 2}, + {"x": 164, "y": 60, "flags": 2}, + {"x": 112, "y": 60, "flags": 2}, + {"x": 60, "y": 60, "flags": 2}, + {"x": 8, "y": 60, "flags": 2}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "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, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4} + ] }, "build": { "lto": true diff --git a/keyboards/idobao/id75/v2/v2.c b/keyboards/idobao/id75/v2/v2.c deleted file mode 100644 index 55d58d92e1..0000000000 --- a/keyboards/idobao/id75/v2/v2.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2022 peepeetee - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index -{ 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70 }, -{ 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 }, -{ 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 }, -{ 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25 }, -{ 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 } -}, { - // LED Index to Physical Position -{8, 12},{60, 12},{112, 12},{164, 12},{216, 12}, -{216, 60},{164, 60},{112, 60},{60, 60},{8, 60}, - - -{224, 64}, {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, {96, 64}, {80, 64}, {64, 64}, {48, 64}, {32, 64}, {16, 64}, {0, 64}, -{224, 48}, {208, 48}, {192, 48}, {176, 48}, {160, 48}, {144, 48}, {128, 48}, {112, 48}, {96, 48}, {80, 48}, {64, 48}, {48, 48}, {32, 48}, {16, 48}, {0, 48}, -{224, 32}, {208, 32}, {192, 32}, {176, 32}, {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {16, 32}, {0, 32}, -{224, 16}, {208, 16}, {192, 16}, {176, 16}, {160, 16}, {144, 16}, {128, 16}, {112, 16}, {96, 16}, {80, 16}, {64, 16}, {48, 16}, {32, 16}, {16, 16}, {0, 16}, -{224, 0}, {208, 0}, {192, 0}, {176, 0}, {160, 0}, {144, 0}, {128, 0}, {112, 0}, {96, 0}, {80, 0}, {64, 0}, {48, 0}, {32, 0}, {16, 0}, {0, 0}, - -}, { - // LED Index to Flag -2,2,2,2,2,2,2,2,2,2, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - -} }; - -#endif diff --git a/keyboards/idobao/id80/v3/ansi/ansi.c b/keyboards/idobao/id80/v3/ansi/ansi.c deleted file mode 100644 index 75f995fbbe..0000000000 --- a/keyboards/idobao/id80/v3/ansi/ansi.c +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* Per-key LED's - * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ - * │79 ││78 │77 │76 │75 ││74 │73 │72 │71 ││70 │69 │68 │67 ││66 ││65 │ - * ├───┼┴──┬┴──┬┴──┬┴──┬┴┴─┬─┴─┬─┴─┬─┴─┬─┴┴┬──┴┬──┴┬──┴┬──┴┴───┤├───┤ - * │64 │63 │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │ 51 ││50 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ - * │ 49 │48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │ 36 ││35 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┘ - * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ - * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │11 │ 10 │┌───┐ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│ 9 │ - * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │┌───┼───┼───┐ - * └────┴────┴────┴────────────────────────┴─────┴─────┘│ 2 │ 1 │ 0 │ - * └───┴───┴───┘ - * Underglow (as seen from top) - * ┌────┬────┬────┬────┬────┬────┐ - * │ 80 │ 81 │ 82 │ 83 │ 84 │ 85 │ - * ├────┼────┴────┴────┴────┼────┤ - * │ 93 │ │ 86 │ - * ├────┼────┬────┬────┬────┼────┤ - * │ 92 │ 91 │ 90 │ 89 │ 88 │ 87 │ - * └────┴────┴────┴────┴────┴────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - /* Generated with: https://xelus.netlify.app/guides/KLE_to_RGB_parser */ - { 8, 21, 34, 49, 64, 79, __, __, __, __, __ }, - { 7, __, 33, 48, 63, 78, __, __, __, __, __ }, - { 6, 20, 32, 47, 62, 77, __, __, 35, 50, 65 }, - { 0, 19, 31, 46, 61, 76, 9, __, 36, __, 67 }, - { 1, 18, 30, 45, 60, 75, 10, 22, 37, 52, 68 }, - { 2, 17, 29, 44, 59, 74, 11, 23, 38, 53, 69 }, - { 5, 16, 28, 43, 58, 73, __, __, __, 51, 66 }, - { 3, 15, 27, 42, 57, 72, 12, 24, 39, 54, 70 }, - { 4, 14, 26, 41, 56, 71, 13, 25, 40, 55, __ }, -}, { - /* NB: Reversed order */ - // per-key - {224,64 }, {209,64 }, {195,64 }, {173,61 }, {151,61 }, { 94,61 }, { 39,61 }, { 20,61 }, { 2,61 }, - {209,52 }, {185,49 }, {165,49 }, {151,49 }, {136,49 }, {121,49 }, {106,49 }, { 92,49 }, { 77,49 }, { 62,49 }, { 48,49 }, { 33,49 }, { 9,49 }, - {196,38 }, {173,38 }, {158,38 }, {143,38 }, {129,38 }, {114,38 }, { 99,38 }, { 84,38 }, { 70,38 }, { 55,38 }, { 40,38 }, { 26,38 }, { 6,38 }, - {224,26 }, {202,26 }, {184,26 }, {169,26 }, {154,26 }, {140,26 }, {125,26 }, {110,26 }, { 95,26 }, { 81,26 }, { 66,26 }, { 51,26 }, { 37,26 }, { 22,26 }, { 4,26 }, - {224,15 }, {198,15 }, {176,15 }, {162,15 }, {147,15 }, {132,15 }, {118,15 }, {103,15 }, { 88,15 }, { 73,15 }, { 59,15 }, { 44,15 }, { 29,15 }, { 15,15 }, { 0,15 }, - {224,0 }, {206,0 }, {187,0 }, {173,0 }, {158,0 }, {143,0 }, {125,0 }, {110,0 }, { 95,0 }, { 81,0 }, { 62,0 }, { 48,0 }, { 33,0 }, { 18,0 }, { 0,0 }, - // underglow - { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, - {224,32 }, - {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 }, - { 0,32 } -}, { - /* NB: Reversed order */ - 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // - 2, 2, 2, 2, 2, 2, - 2, - 2, 2, 2, 2, 2, 2, - 2 -} }; - -#endif diff --git a/keyboards/idobao/id80/v3/ansi/keyboard.json b/keyboards/idobao/id80/v3/ansi/keyboard.json index 0ab369fb5d..a366289a1f 100644 --- a/keyboards/idobao/id80/v3/ansi/keyboard.json +++ b/keyboards/idobao/id80/v3/ansi/keyboard.json @@ -53,6 +53,102 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 0], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 195, "y": 64, "flags": 4}, + {"matrix": [7, 0], "x": 173, "y": 61, "flags": 4}, + {"matrix": [8, 0], "x": 151, "y": 61, "flags": 4}, + {"matrix": [6, 0], "x": 94, "y": 61, "flags": 1}, + {"matrix": [2, 0], "x": 39, "y": 61, "flags": 4}, + {"matrix": [1, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [0, 0], "x": 2, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 209, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 185, "y": 49, "flags": 4}, + {"matrix": [5, 6], "x": 165, "y": 49, "flags": 1}, + {"matrix": [7, 6], "x": 151, "y": 49, "flags": 1}, + {"matrix": [8, 6], "x": 136, "y": 49, "flags": 1}, + {"matrix": [8, 1], "x": 121, "y": 49, "flags": 1}, + {"matrix": [7, 1], "x": 106, "y": 49, "flags": 1}, + {"matrix": [6, 1], "x": 92, "y": 49, "flags": 1}, + {"matrix": [5, 1], "x": 77, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 62, "y": 49, "flags": 1}, + {"matrix": [3, 1], "x": 48, "y": 49, "flags": 1}, + {"matrix": [2, 1], "x": 33, "y": 49, "flags": 1}, + {"matrix": [0, 1], "x": 9, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 196, "y": 38, "flags": 4}, + {"matrix": [5, 7], "x": 173, "y": 38, "flags": 1}, + {"matrix": [7, 7], "x": 158, "y": 38, "flags": 1}, + {"matrix": [8, 7], "x": 143, "y": 38, "flags": 1}, + {"matrix": [8, 2], "x": 129, "y": 38, "flags": 1}, + {"matrix": [7, 2], "x": 114, "y": 38, "flags": 1}, + {"matrix": [6, 2], "x": 99, "y": 38, "flags": 1}, + {"matrix": [5, 2], "x": 84, "y": 38, "flags": 1}, + {"matrix": [4, 2], "x": 70, "y": 38, "flags": 1}, + {"matrix": [3, 2], "x": 55, "y": 38, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 1}, + {"matrix": [1, 2], "x": 26, "y": 38, "flags": 1}, + {"matrix": [0, 2], "x": 6, "y": 38, "flags": 4}, + {"matrix": [2, 8], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 8], "x": 202, "y": 26, "flags": 1}, + {"matrix": [4, 8], "x": 184, "y": 26, "flags": 1}, + {"matrix": [5, 8], "x": 169, "y": 26, "flags": 1}, + {"matrix": [7, 8], "x": 154, "y": 26, "flags": 1}, + {"matrix": [8, 8], "x": 140, "y": 26, "flags": 1}, + {"matrix": [8, 3], "x": 125, "y": 26, "flags": 1}, + {"matrix": [7, 3], "x": 110, "y": 26, "flags": 1}, + {"matrix": [6, 3], "x": 95, "y": 26, "flags": 1}, + {"matrix": [5, 3], "x": 81, "y": 26, "flags": 1}, + {"matrix": [4, 3], "x": 66, "y": 26, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 26, "flags": 1}, + {"matrix": [2, 3], "x": 37, "y": 26, "flags": 1}, + {"matrix": [1, 3], "x": 22, "y": 26, "flags": 1}, + {"matrix": [0, 3], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 224, "y": 15, "flags": 4}, + {"matrix": [6, 9], "x": 198, "y": 15, "flags": 4}, + {"matrix": [4, 9], "x": 176, "y": 15, "flags": 1}, + {"matrix": [5, 9], "x": 162, "y": 15, "flags": 1}, + {"matrix": [7, 9], "x": 147, "y": 15, "flags": 1}, + {"matrix": [8, 9], "x": 132, "y": 15, "flags": 1}, + {"matrix": [8, 4], "x": 118, "y": 15, "flags": 1}, + {"matrix": [7, 4], "x": 103, "y": 15, "flags": 1}, + {"matrix": [6, 4], "x": 88, "y": 15, "flags": 1}, + {"matrix": [5, 4], "x": 73, "y": 15, "flags": 1}, + {"matrix": [4, 4], "x": 59, "y": 15, "flags": 1}, + {"matrix": [3, 4], "x": 44, "y": 15, "flags": 1}, + {"matrix": [2, 4], "x": 29, "y": 15, "flags": 1}, + {"matrix": [1, 4], "x": 15, "y": 15, "flags": 1}, + {"matrix": [0, 4], "x": 0, "y": 15, "flags": 1}, + {"matrix": [2, 10], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 10], "x": 206, "y": 0, "flags": 4}, + {"matrix": [3, 10], "x": 187, "y": 0, "flags": 4}, + {"matrix": [4, 10], "x": 173, "y": 0, "flags": 4}, + {"matrix": [5, 10], "x": 158, "y": 0, "flags": 4}, + {"matrix": [7, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [8, 5], "x": 125, "y": 0, "flags": 4}, + {"matrix": [7, 5], "x": 110, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 95, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 62, "y": 0, "flags": 4}, + {"matrix": [3, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 33, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 32, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id87/v2/keyboard.json b/keyboards/idobao/id87/v2/keyboard.json index ad6641f954..1b7d428dda 100644 --- a/keyboards/idobao/id87/v2/keyboard.json +++ b/keyboards/idobao/id87/v2/keyboard.json @@ -56,6 +56,111 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 0, "y": 64, "flags": 2}, + {"x": 37, "y": 64, "flags": 2}, + {"x": 75, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 149, "y": 64, "flags": 2}, + {"x": 187, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 187, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 75, "y": 0, "flags": 2}, + {"x": 37, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 7], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 4], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 180, "y": 64, "flags": 1}, + {"matrix": [10, 6], "x": 198, "y": 64, "flags": 1}, + {"matrix": [10, 2], "x": 211, "y": 64, "flags": 1}, + {"matrix": [10, 1], "x": 224, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 211, "y": 52, "flags": 1}, + {"matrix": [10, 4], "x": 170, "y": 52, "flags": 1}, + {"matrix": [10, 5], "x": 146, "y": 52, "flags": 4}, + {"matrix": [10, 7], "x": 133, "y": 52, "flags": 4}, + {"matrix": [10, 8], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [9, 8], "x": 127, "y": 40, "flags": 4}, + {"matrix": [9, 7], "x": 140, "y": 40, "flags": 4}, + {"matrix": [9, 5], "x": 153, "y": 40, "flags": 4}, + {"matrix": [9, 3], "x": 174, "y": 40, "flags": 1}, + {"matrix": [8, 1], "x": 224, "y": 27, "flags": 1}, + {"matrix": [8, 2], "x": 211, "y": 27, "flags": 1}, + {"matrix": [8, 6], "x": 198, "y": 27, "flags": 1}, + {"matrix": [8, 3], "x": 179, "y": 27, "flags": 4}, + {"matrix": [8, 4], "x": 162, "y": 27, "flags": 4}, + {"matrix": [8, 5], "x": 149, "y": 27, "flags": 4}, + {"matrix": [8, 7], "x": 136, "y": 27, "flags": 4}, + {"matrix": [8, 8], "x": 123, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [7, 8], "x": 117, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 7], "x": 143, "y": 15, "flags": 4}, + {"matrix": [7, 5], "x": 156, "y": 15, "flags": 4}, + {"matrix": [7, 3], "x": 175, "y": 15, "flags": 1}, + {"matrix": [7, 6], "x": 198, "y": 15, "flags": 1}, + {"matrix": [7, 2], "x": 211, "y": 15, "flags": 1}, + {"matrix": [7, 1], "x": 224, "y": 15, "flags": 1}, + {"matrix": [6, 1], "x": 224, "y": 0, "flags": 1}, + {"matrix": [6, 2], "x": 211, "y": 0, "flags": 1}, + {"matrix": [6, 6], "x": 198, "y": 0, "flags": 1}, + {"matrix": [6, 3], "x": 182, "y": 0, "flags": 1}, + {"matrix": [6, 4], "x": 169, "y": 0, "flags": 1}, + {"matrix": [6, 5], "x": 156, "y": 0, "flags": 1}, + {"matrix": [6, 7], "x": 143, "y": 0, "flags": 1}, + {"matrix": [6, 8], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id87/v2/v2.c b/keyboards/idobao/id87/v2/v2.c deleted file mode 100644 index 7992fb6295..0000000000 --- a/keyboards/idobao/id87/v2/v2.c +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 vinorodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#if defined(RGB_MATRIX_ENABLE) - -/* Under-, Per-Key - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │102│ │101│100│99 │98 │ │97 │96 │95 │94 │ │93 │92 │91 │90 │ │89 │88 │87 │ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │70 │71 │72 │73 │74 │75 │76 │77 │78 │79 │80 │81 │82 │ 83 │ │84 │85 │86 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │ 69 │68 │67 │66 │65 │64 │63 │62 │61 │60 │59 │58 │57 │ 56 │ │55 │54 │53 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ 40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │50 │51 │ 52 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ 39 │38 │37 │36 │35 │34 │33 │32 │31 │30 │29 │ 28 │ │27 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ │24 │25 │26 │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - * - * Underglow (as seen from top) - * ┌───┬───┬───┬───┬───┬───┬───┐ - * │14 │13 │12 │11 │10 │ 9 │ 8 │ - * ├───┼───┴───┴───┴───┴───┼───┤ - * │15 │ │ 7 │ - * ├───┼───┬───┬───┬───┬───┼───┤ - * │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ - * └───┴───┴───┴───┴───┴───┴───┘ -*/ -led_config_t g_led_config = { { - // Key Matrix to LED Index - // partially generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser & CSV Excel formula - - { 102, __, 101, 100, 99, 98, 97, 96, 95 }, - { 70, 71, 72, 73, 74, 75, 76, 77, 78 }, - { 69, 68, 67, 66, 65, 64, 63, 62, 61 }, - { 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 39, __, 38, 37, 36, 35, 34, 33, 32 }, - { 16, 17, 18, 23, 22, __, 19, 21, 20 }, - { __, 87, 88, 90, 91, 92, 89, 93, 94 }, - { 80, 86, 85, 83, __, 82, 84, 81, 79 }, - { __, 53, 54, 56, 57, 58, 55, 59, 60 }, - { __, __, 27, 52, __, 51, __, 50, 49 }, - { __, 26, 25, __, 28, 29, 24, 30, 31 } -}, { - // LED Index to Physical Position - // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - // underglow - /* colors are pushed to the edge as only the edges can be seen */ - { 0,64 }, { 37,64 }, { 75,64 }, {112,64 }, {149,64 }, {187,64 }, {224,64 }, - {224,32 }, - {224,0 }, {187,0 }, {149,0 }, {112,0 }, { 75,0 }, { 37,0 }, { 0,0 }, - { 0,32 }, - // under-, per-key - /* pattern is complex; starts at btm-lft, zig-zags up, and ends top-lft */ - { 2,64 }, { 18,64 }, { 34,64 }, { 83,64 }, {131,64 }, {148,64 }, {164,64 }, {180,64 }, {198,64 }, {211,64 }, {224,64 }, // lf-2-rt, btm - {211,52 }, {170,52 }, {146,52 }, {133,52 }, {120,52 }, {107,52 }, { 94,52 }, { 81,52 }, { 68,52 }, { 55,52 }, { 42,52 }, { 29,52 }, { 8,52 }, // rt-2-lf** - { 5,40 }, { 23,40 }, { 36,40 }, { 49,40 }, { 62,40 }, { 75,40 }, { 88,40 }, {101,40 }, {114,40 }, {127,40 }, {140,40 }, {153,40 }, {174,40 }, // lf-2-rt - {224,27 }, {211,27 }, {198,27 }, {179,27 }, {162,27 }, {149,27 }, {136,27 }, {123,27 }, {110,27 }, { 97,27 }, { 84,27 }, { 71,27 }, { 58,27 }, { 45,27 }, { 32,27 }, { 19,27 }, { 3,27 }, // rt-2-lf** - { 0,15 }, { 13,15 }, { 26,15 }, { 39,15 }, { 52,15 }, { 65,15 }, { 78,15 }, { 91,15 }, {104,15 }, {117,15 }, {130,15 }, {143,15 }, {156,15 }, {175,15 }, {198,15 }, {211,15 }, {224,15 }, // lf-2-rt - {224,0 }, {211,0 }, {198,0 }, {182,0 }, {169,0 }, {156,0 }, {143,0 }, {123,0 }, {110,0 }, { 97,0 }, { 84,0 }, { 65,0 }, { 52,0 }, { 39,0 }, { 26,0 }, { 0,0 }, // rt-2-lf**, top -}, { - // LED Index to Flag - // underglow - 2, 2, 2, 2, 2, 2, 2, - 2, - 2, 2, 2, 2, 2, 2, 2, - 2, - // under-, per-key - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/montex/v1rgb/keyboard.json b/keyboards/idobao/montex/v1rgb/keyboard.json index 1c5252bbea..affe87fd1f 100755 --- a/keyboards/idobao/montex/v1rgb/keyboard.json +++ b/keyboards/idobao/montex/v1rgb/keyboard.json @@ -33,6 +33,39 @@ "solid_splash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"matrix": [0, 2], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 56, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 168, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4}, + {"matrix": [4, 3], "x": 168, "y": 41, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 41, "flags": 4}, + {"matrix": [4, 1], "x": 56, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 41, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [3, 1], "x": 56, "y": 29, "flags": 4}, + {"matrix": [3, 2], "x": 112, "y": 29, "flags": 4}, + {"matrix": [3, 3], "x": 168, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 112, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 56, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 56, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 168, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 224, "y": 17, "flags": 4}, + {"matrix": [0, 4], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 168, "y": 0, "flags": 1} + ], "max_brightness": 170 }, "features": { diff --git a/keyboards/idobao/montex/v1rgb/v1rgb.c b/keyboards/idobao/montex/v1rgb/v1rgb.c deleted file mode 100755 index b70067cfcf..0000000000 --- a/keyboards/idobao/montex/v1rgb/v1rgb.c +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2022 peepeetee (@peepeetee) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -/* WS2812 indices always start at 0 - * underglow = 0-3 - * note: starting point of 4 and jump from 6 to 7 - * ┌───┌───┐───┬───┬───┐ - * │ 6 │ 5 │ 4 │30 │29 │ - * ├───┼───┘───┼───┼───┤ - * │24 │25 │26 │27 │28 │ - * ├───┼───┼───┼───┼───┤ - * │23 │22 │21 │20 │19 │ - * ├───┼───┼───┼───┤ │ - * │15 │16 │17 │18 │ │ - * ├───┼───┼───┼───┤───┤ - * │14 │13 │12 │11 │10 │ - * ├───┼───┴───┼───┤ │ - * │ 7 │ 8 │ 9 │ │ - * └───┴───────┴───┘───┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 6, 5, 4, 30, 29}, - { 24, 25, 26, 27, 28}, - { 23, 22, 21, 20, 19}, - { 15, 16, 17, 18, NO_LED}, - { 14, 13, 12, 11, NO_LED}, - { 7, 8, 9, 10, NO_LED} -}, { - // LED Index to Physical Position - /* underglow: because this is under the kb, you want the colors on the edge (corners) of the acrylic plate */ - { 224,0 }, { 224,64}, { 0,64 }, { 0,0 }, // 0-3 (underglow) - /* per-key: origins generated from https://xelus.netlify.app/guides/KLE_to_RGB_parser */ - { 112,0 }, { 56,0 }, { 0,0 }, /* ---- */ /* ---- */ // 4-6 (top row middle to left) - { 0,64 }, { 84,64 }, { 168,64 }, // 7-9 (jump to bottom left) - { 224,58 }, { 168,41 }, { 112,41 }, { 56,41 }, { 0,41 }, // 10-14 (flow Z pattern upwards...) - { 0,29 }, { 56,29 }, { 112,29 }, { 168,29 }, // 15-18 - { 224,35 }, { 168,29 }, { 112,29 }, { 56,29 }, { 0,29 }, // 19-23 - { 0,17 }, { 56,17 }, { 112,17 }, { 168,17 }, { 224,17 }, // 24-28 - /* ---- */ /* ---- */ /* ---- */ { 224,0 }, { 168,0 } // 29-30 (end at top) -}, { - // LED Index to Flag - 2, 2, 2, 2, // 0 1 2 3 (underglow) - 1, 1, 1, // 4 5 6 - 4, 4, 4, 4, // 7 - 10 - 4, 4, 4, 4, //11 - 14 - 4, 4, 4, 4, //15 - 18 - 4, 4, 4, 4, 4, //19 - 23 - 4, 4, 4, 4, 4, //24 - 28 - 1, 1 //29 30 -} }; - -#endif diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h deleted file mode 100755 index 548f3f62e7..0000000000 --- a/keyboards/idobao/montex/v2/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 IBNobody (@IBNobody) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID27_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 31 // The number of LEDs connected - #else - #define RGB_MATRIX_LED_COUNT 27 // -4 disabled underglow LEDs - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/montex/v2/keyboard.json b/keyboards/idobao/montex/v2/keyboard.json index 319f46a459..0832ed8729 100755 --- a/keyboards/idobao/montex/v2/keyboard.json +++ b/keyboards/idobao/montex/v2/keyboard.json @@ -41,6 +41,39 @@ "solid_splash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 4], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 168, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 56, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 56, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 168, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 112, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 56, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 56, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 112, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 168, "y": 41, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4}, + {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 168, "y": 64, "flags": 4}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/montex/v2/post_rules.mk b/keyboards/idobao/montex/v2/post_rules.mk deleted file mode 100644 index f2d43fa6ac..0000000000 --- a/keyboards/idobao/montex/v2/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# some (if not most) Montex have a solid back plate, -# this enables switching off the bottom facing LEDs -# Usage: `make idobao/montex/v2:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID27_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/montex/v2/v2.c b/keyboards/idobao/montex/v2/v2.c deleted file mode 100755 index ad6e32a692..0000000000 --- a/keyboards/idobao/montex/v2/v2.c +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2022 IBNobody (@IBNobody) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* Under-, Per-key - * ┌───┬───┬───┬───┬───┐ - * │ 4 │ 3 │ 2 │ 1 │ 0 │ - * ├───┼───┼───┼───┼───┤ - * │ 5 │ 6 │ 7 │ 8 │ 9 │ - * ├───┼───┼───┼───┼───┤ - * │14 │13 │12 │11 │ │ - * ├───┼───┼───┼───┤10 │ - * │15 │16 │17 │18 │ │ - * ├───┼───┼───┼───┼───┤ - * │23 │22 │21 │20 │ │ - * ├───┼───┴───┼───┤19 │ - * │24 │ 25 │26 │ │ - * └───┴───────┴───┴───┘ - * - * Underglow (from top / [Esc] = top left) - * ┌─────────┬─────────┐ - * │ │ │ - * │ │ │ - * │ 29 │ 30 │ - * │ │ │ - * │ │ │ - * ├─────────┼─────────┤ - * │ │ │ - * │ │ │ - * │ 28 │ 27 │ - * │ │ │ - * │ │ │ - * └─────────┴─────────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - // Montex v2 WS2812 are laid in a Z-shape with index 0 = top-right - // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser - { 4, 3, 2, 1, 0}, - { 5, 6, 7, 8, 9}, - { 14, 13, 12, 11, 10}, - { 15, 16, 17, 18, __}, - { 23, 22, 21, 20, __}, - { 24, 25, 26, 19, __} -}, { - // LED Index to Physical Position - // per-key - // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser - {224,0 }, {168,0 }, {112,0 }, { 56,0 }, { 0,0 }, // top row - { 0,17 }, { 56,17 }, {112,17 }, {168,17 }, {224,17 }, // num-lk & /*- (reversed) - {224,35 }, {168,29 }, {112,29 }, { 56,29 }, { 0,29 }, // 789+ - { 0,41 }, { 56,41 }, {112,41 }, {168,41 }, // 456 (reversed) - {224,58 }, {168,52 }, {112,52 }, { 56,52 }, // 123 - { 0,52 }, { 0,64 }, { 84,64 }, {168,64 } // 0. & enter (reversed) - // underglow LEDs (positions pushed to nearest edge to match edge key colors) - #ifndef ID27_DISABLE_UNDERGLOW - , {224,64 }, { 0,64 }, - { 0,0 }, { 224,0 } - #endif -}, { - // LED Index to Flag - // LED_FLAG_MODIFIER 0x01, LED_FLAG_UNDERGLOW 0x02, LED_FLAG_KEYLIGHT 0x04, LED_FLAG_INDICATOR 0x08 - // per-key - 1, 1, 1, 1, 1, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4 - // underglow - #ifndef ID27_DISABLE_UNDERGLOW - , 2, 2, 2, 2 - #endif -} }; - -#endif diff --git a/keyboards/idyllic/tinny50_rgb/keyboard.json b/keyboards/idyllic/tinny50_rgb/keyboard.json index 4d3cd320dd..e3d44714ab 100644 --- a/keyboards/idyllic/tinny50_rgb/keyboard.json +++ b/keyboards/idyllic/tinny50_rgb/keyboard.json @@ -59,7 +59,39 @@ "default": { "val": 223 }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 126, "y": 64, "flags": 2}, + {"x": 108, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 72, "y": 64, "flags": 2}, + {"x": 54, "y": 64, "flags": 2}, + {"x": 36, "y": 64, "flags": 2}, + {"x": 18, "y": 64, "flags": 2}, + {"x": 0, "y": 52, "flags": 2}, + {"x": 0, "y": 39, "flags": 2}, + {"x": 0, "y": 26, "flags": 2}, + {"x": 0, "y": 13, "flags": 2}, + {"x": 18, "y": 0, "flags": 2}, + {"x": 36, "y": 0, "flags": 2}, + {"x": 54, "y": 0, "flags": 2}, + {"x": 72, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 108, "y": 0, "flags": 2}, + {"x": 126, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 162, "y": 0, "flags": 2}, + {"x": 180, "y": 0, "flags": 2}, + {"x": 198, "y": 0, "flags": 2}, + {"x": 224, "y": 13, "flags": 2}, + {"x": 224, "y": 26, "flags": 2}, + {"x": 224, "y": 39, "flags": 2}, + {"x": 224, "y": 52, "flags": 2}, + {"x": 198, "y": 64, "flags": 2}, + {"x": 180, "y": 64, "flags": 2}, + {"x": 162, "y": 64, "flags": 2}, + {"x": 144, "y": 64, "flags": 2} + ] }, "ws2812": { "pin": "GP10", diff --git a/keyboards/idyllic/tinny50_rgb/readme.md b/keyboards/idyllic/tinny50_rgb/readme.md index 8529433a1a..fbe144583f 100644 --- a/keyboards/idyllic/tinny50_rgb/readme.md +++ b/keyboards/idyllic/tinny50_rgb/readme.md @@ -24,4 +24,4 @@ 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 both the `BOOT` and `RESET` buttons at the same time -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c b/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c deleted file mode 100644 index d8b06b8fb6..0000000000 --- a/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2022 Zykrah - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} - }, { - // LED Index to Physical Position - {150, 64}, {130, 64}, {110, 64}, { 90, 64}, { 70, 64}, { 50, 64}, { 30, 64}, - { 0, 52}, { 0, 39}, { 0, 26}, { 0, 13}, - { 30, 0}, { 50, 0}, { 70, 0}, { 90, 0}, {110, 0}, {130, 0}, {150, 0}, {170, 0}, {190, 0}, {210, 0}, {230, 0}, - {255, 13}, {255, 26}, {255, 39}, {255, 52}, - {230, 64}, {210, 64}, {190, 64}, {170, 64} - }, { - // LED Index to Flag - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, // UNDERGLOW - } -}; -#endif - diff --git a/keyboards/illusion/rosa/keymaps/default/keymap.c b/keyboards/illusion/rosa/keymaps/default/keymap.c index 7b6e13fb69..16b2a53849 100644 --- a/keyboards/illusion/rosa/keymaps/default/keymap.c +++ b/keyboards/illusion/rosa/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ) -}; \ No newline at end of file +}; diff --git a/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c b/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c index 14b9ef10e6..04a5a99187 100644 --- a/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c +++ b/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c b/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c index 072739c306..2b66ecdd3e 100644 --- a/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c +++ b/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/ilumkb/simpler61/keyboard.json b/keyboards/ilumkb/simpler61/keyboard.json index 10e182dac8..eb98400603 100644 --- a/keyboards/ilumkb/simpler61/keyboard.json +++ b/keyboards/ilumkb/simpler61/keyboard.json @@ -43,6 +43,69 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 2, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 162, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 202, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 4, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 24, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 44, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 200, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 4} + ], "led_process_limit": 4, "led_flush_limit": 26, "sleep": true diff --git a/keyboards/ilumkb/simpler61/simpler61.c b/keyboards/ilumkb/simpler61/simpler61.c index 99cefc7844..afff4dbc36 100644 --- a/keyboards/ilumkb/simpler61/simpler61.c +++ b/keyboards/ilumkb/simpler61/simpler61.c @@ -84,27 +84,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW7_CS30, SW7_CS29, SW7_CS28}, {0, SW5_CS30, SW5_CS29, SW5_CS28}, }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40}, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, NO_LED, 53}, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, NO_LED, 58, 59, NO_LED, 60}, - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {2, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {114, 32}, {130, 32}, {146, 32}, {162, 32}, {178, 32}, {204, 32}, - {9, 48}, {36, 48}, {52, 48}, {68, 48}, {84, 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {180, 48}, {202, 48}, {224, 48}, - {4, 64}, {24, 64}, {44, 64}, {112, 64}, {180, 64}, {200, 64}, {220, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/ilumkb/simpler64/keyboard.json b/keyboards/ilumkb/simpler64/keyboard.json index 240d0d67c2..b49c986d86 100644 --- a/keyboards/ilumkb/simpler64/keyboard.json +++ b/keyboards/ilumkb/simpler64/keyboard.json @@ -43,6 +43,72 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 162, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4} + ], "led_process_limit": 4, "led_flush_limit": 26, "sleep": true diff --git a/keyboards/ilumkb/simpler64/simpler64.c b/keyboards/ilumkb/simpler64/simpler64.c index 21892a55f4..aa0a97fe54 100644 --- a/keyboards/ilumkb/simpler64/simpler64.c +++ b/keyboards/ilumkb/simpler64/simpler64.c @@ -87,27 +87,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW6_CS30, SW6_CS29, SW6_CS28}, {0, SW5_CS30, SW5_CS29, SW5_CS28}, }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40}, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54}, - { 55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63}, - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {6, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {114, 32}, {130, 32}, {146, 32}, {162, 32}, {178, 32}, {204, 32}, - {8, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {138, 48}, {154, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, - {2, 64}, {22, 64}, {42, 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c index dc12ec4f30..da9f0fd617 100644 --- a/keyboards/inett_studio/sqx/hotswap/hotswap.c +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c @@ -114,44 +114,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, }; -led_config_t g_led_config = { - { - { 18, 19, 20, 21, 22, 23, 24, 16, 17, 36, 37, 38, 39, 40}, - { 26, 27, 28, 29, 30, 31, 25, 48, 41, 42, 43, 44, 45, 46}, - { 8, 7, 0, 32, 33, 34, 35, 49, 50, 51, 52, 53, NO_LED, 47}, - { 9, NO_LED, 10, 1, 2, 3, 4, 5, 56, 55, 57, 58, 59, 54}, - { 14, 13, 12, 11, NO_LED, NO_LED, 6, 15, NO_LED, NO_LED, 60, 61, 62, 63}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{112, 64},{ 32, 32}, - { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64},{ 40, 64},{ 20, 64},{ 0, 64}, - - { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16}, - { 0, 16},{ 16, 16}, - { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 64, 32},{ 80, 32},{ 96, 32},{112, 32}, - - {112, 0},{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{224, 0}, - {128, 16},{144, 16},{160, 16},{176, 16},{192, 16},{216, 16},{216, 32},{112, 16}, - - {128, 32},{144, 32},{160, 32},{176, 32},{192, 32}, {224, 48},{144, 48}, - {128, 48},{160, 48},{176, 48},{192, 48},{160, 64},{180, 64},{200, 64},{224, 64} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 4, 1, 1, 1, 1, - - 1, 4, 4, 4, 4, 4, 4, 4, - 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 1, 1, 4, - - 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 1, 1, 1, 1, 1, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/inett_studio/sqx/hotswap/keyboard.json b/keyboards/inett_studio/sqx/hotswap/keyboard.json index 0c28be4582..a7dd508f3f 100644 --- a/keyboards/inett_studio/sqx/hotswap/keyboard.json +++ b/keyboards/inett_studio/sqx/hotswap/keyboard.json @@ -40,6 +40,72 @@ "pixel_fractal": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [2, 2], "x": 48, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 16, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 96, "y": 16, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 16, "flags": 1}, + {"matrix": [0, 6], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 32, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 32, "flags": 4}, + {"matrix": [1, 5], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 112, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 128, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 208, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 216, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 200, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 170 }, "rgblight": { diff --git a/keyboards/inett_studio/sqx/universal/keyboard.json b/keyboards/inett_studio/sqx/universal/keyboard.json index 2c2b03bd0d..7e207f0eb1 100644 --- a/keyboards/inett_studio/sqx/universal/keyboard.json +++ b/keyboards/inett_studio/sqx/universal/keyboard.json @@ -40,6 +40,80 @@ "pixel_fractal": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 32, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [0, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [0, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [0, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 0, "y": 48, "flags": 4}, + {"matrix": [1, 3], "x": 0, "y": 48, "flags": 4}, + {"matrix": [1, 4], "x": 16, "y": 48, "flags": 1}, + {"matrix": [1, 5], "x": 32, "y": 48, "flags": 1}, + {"matrix": [2, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4}, + {"matrix": [2, 5], "x": 16, "y": 64, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 0, "y": 0, "flags": 1}, + {"matrix": [3, 3], "x": 16, "y": 0, "flags": 4}, + {"matrix": [3, 4], "x": 32, "y": 0, "flags": 4}, + {"matrix": [3, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 64, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 80, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 0, "flags": 4}, + {"x": 96, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 16, "flags": 4}, + {"x": 32, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 48, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 64, "y": 16, "flags": 4}, + {"matrix": [3, 2], "x": 80, "y": 16, "flags": 4}, + {"x": 48, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 80, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 96, "y": 32, "flags": 4}, + {"matrix": [0, 7], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"matrix": [4, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"x": 142, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 170 }, "rgblight": { diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c index 105e89ecc5..0f92fa3807 100644 --- a/keyboards/inett_studio/sqx/universal/universal.c +++ b/keyboards/inett_studio/sqx/universal/universal.c @@ -114,48 +114,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 36, 37, 38, 39, 40, 41, 42}, - { 8, 9, 10, 11, 12, 13, 7, 45, 46, 47, 48, 49, 50, 51}, - { 26,27, 18, 14, 15, 16, 17, 54, 55, 56, 57, 58, 59, 53}, - { 29,30, 31, 19, 20, 21, 22, 23, 62, 63, 64, 65, 66, 61}, - { 35,34, 33, NO_LED, NO_LED, NO_LED, 24, 44, NO_LED, NO_LED, 68, 69, 70, 71}, - }, - { - { 32, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{ 96, 64},{ 96, 64}, - { 0, 32},{ 16, 32}, - { 0, 48},{ 0, 48},{ 16, 48},{ 32, 48},{ 64, 64},{ 32, 64},{ 16, 64},{ 0, 64}, - { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16}, - { 0, 16},{ 16, 16}, - { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 48, 32},{ 64, 32},{ 80, 32},{ 96, 32}, - - {128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{216, 0},{224, 0}, - {112, 0},{128, 16}, - {144, 16},{160, 16},{176, 16},{192, 16},{208, 16},{224, 16},{224, 32},{216, 32}, - {128, 32},{144, 32},{160, 32},{176, 32},{192, 32},{208, 32},{208, 48},{224, 48}, - {128, 48},{144, 48}, - {160, 48},{176, 48},{192, 48},{142, 64},{160, 64},{176, 64},{208, 64},{224, 64} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, - 4, 4, 1, 1, 1, 4, 4, 4, - - 1, 4, 4, 4, 4, 4, 4, 4, - 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, - 4, 4, 4, 4, 4, 1, 1, 1, - - 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, - 4, 4, 4, 4, 1, 1, 1, 1, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c index 431406d008..9cc1b78129 100644 --- a/keyboards/inland/kb83/kb83.c +++ b/keyboards/inland/kb83/kb83.c @@ -164,31 +164,3 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } return true; } - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - - default: - return true; - } -} diff --git a/keyboards/inland/v83p/keymaps/default/rules.mk b/keyboards/inland/v83p/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/inland/v83p/keymaps/default/rules.mk +++ b/keyboards/inland/v83p/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index c719208af1..2fd1bd0612 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -150,57 +150,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 1, SW11_CS7, SW10_CS7, SW12_CS7 } }; -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, NO_LED }, - { 29, NO_LED, 30, 31, 32, 33, 34, 35, 36, 37 }, - { 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED }, - { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 }, - { 57, 58, 59, 60, 61, NO_LED, 62, NO_LED, 63, NO_LED }, - { 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 }, - { NO_LED, 74, NO_LED, 75, 76, 77, 78, 79, 80, 81 }, - { 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } - }, { - // LED Index to Physical Position - // Key LED - { 0, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 79, 0 }, { 92, 0 }, { 105, 0 }, { 118, 0 }, { 131, 0 }, { 144, 0 }, { 158, 0 }, { 171, 0 }, { 197, 0 }, { 210, 0 }, { 224, 0 }, - - { 0, 21 }, { 13, 21 }, { 26, 21 }, { 39, 21 }, { 52, 21 }, { 65, 21 }, { 79, 21 }, { 92, 21 }, { 105, 21 }, { 118, 21 }, { 131, 21 }, { 144, 21 }, { 158, 21 }, { 171, 21 }, { 197, 21 }, { 210, 21 }, { 224, 21 }, - { 0, 32 }, { 13, 32 }, { 26, 32 }, { 39, 32 }, { 52, 32 }, { 65, 32 }, { 79, 32 }, { 92, 32 }, { 105, 32 }, { 118, 32 }, { 131, 32 }, { 144, 32 }, { 158, 32 }, { 171, 32 }, { 197, 32 }, { 210, 32 }, { 224, 32 }, - { 0, 42 }, { 13, 42 }, { 26, 42 }, { 39, 42 }, { 52, 42 }, { 65, 42 }, { 79, 42 }, { 92, 42 }, { 105, 42 }, { 118, 42 }, { 131, 42 }, { 144, 42 }, { 171, 42 }, - { 0, 53 }, { 26, 53 }, { 39, 53 }, { 52, 53 }, { 65, 53 }, { 79, 53 }, { 92, 53 }, { 105, 53 }, { 118, 53 }, { 131, 53 }, { 144, 53 }, { 171, 53 }, { 210, 53 }, - { 0, 64 }, { 13, 64 }, { 26, 64 }, { 79, 64 }, { 131, 64 }, { 144, 64 }, { 158, 64 }, { 171, 64 }, { 197, 64 }, { 210, 64 }, { 224, 64 }, - - // Underglow LED - { 224, 64 }, { 206, 64 }, { 189, 64 }, { 172, 64 }, { 155, 64 }, { 137, 64 }, { 120, 64 }, { 103, 64 }, { 86, 64 }, { 68, 64 }, { 51, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 }, - { 0, 42 }, { 0, 21 }, - { 0, 0 }, { 17, 0 }, { 34, 0 }, { 51, 0 }, { 68, 0 }, { 86, 0 }, { 103, 0 }, { 120, 0 }, { 137, 0 }, { 155, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 224, 0 }, - { 224, 21 }, { 224, 42 } - }, { - // LED Index to Flag - //Key LED - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - - // Underglow LED - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - - 2, 2, - - 2, 2, - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - } -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up diff --git a/keyboards/input_club/k_type/keyboard.json b/keyboards/input_club/k_type/keyboard.json index ed004335c0..99ff1fe5b6 100644 --- a/keyboards/input_club/k_type/keyboard.json +++ b/keyboards/input_club/k_type/keyboard.json @@ -53,7 +53,128 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "custom" + "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 79, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 92, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 131, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 144, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 158, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 171, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 197, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 210, "y": 0, "flags": 1}, + {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 6], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 7], "x": 13, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 26, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 39, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 65, "y": 21, "flags": 4}, + {"matrix": [2, 2], "x": 79, "y": 21, "flags": 4}, + {"matrix": [2, 3], "x": 92, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 105, "y": 21, "flags": 4}, + {"matrix": [2, 5], "x": 118, "y": 21, "flags": 4}, + {"matrix": [2, 6], "x": 131, "y": 21, "flags": 4}, + {"matrix": [2, 7], "x": 144, "y": 21, "flags": 4}, + {"matrix": [2, 8], "x": 158, "y": 21, "flags": 4}, + {"matrix": [3, 0], "x": 171, "y": 21, "flags": 1}, + {"matrix": [3, 2], "x": 197, "y": 21, "flags": 4}, + {"matrix": [3, 3], "x": 210, "y": 21, "flags": 4}, + {"matrix": [3, 4], "x": 224, "y": 21, "flags": 4}, + {"matrix": [3, 5], "x": 0, "y": 32, "flags": 1}, + {"matrix": [3, 6], "x": 13, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 26, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 39, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 52, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 92, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 105, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 118, "y": 32, "flags": 4}, + {"matrix": [4, 5], "x": 131, "y": 32, "flags": 4}, + {"matrix": [4, 6], "x": 144, "y": 32, "flags": 4}, + {"matrix": [4, 7], "x": 158, "y": 32, "flags": 4}, + {"matrix": [4, 8], "x": 171, "y": 32, "flags": 4}, + {"matrix": [5, 0], "x": 197, "y": 32, "flags": 4}, + {"matrix": [5, 1], "x": 210, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 224, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 0, "y": 42, "flags": 1}, + {"matrix": [5, 4], "x": 13, "y": 42, "flags": 4}, + {"matrix": [5, 5], "x": 26, "y": 42, "flags": 4}, + {"matrix": [5, 6], "x": 39, "y": 42, "flags": 4}, + {"matrix": [5, 7], "x": 52, "y": 42, "flags": 4}, + {"matrix": [5, 8], "x": 65, "y": 42, "flags": 4}, + {"matrix": [5, 9], "x": 79, "y": 42, "flags": 4}, + {"matrix": [6, 0], "x": 92, "y": 42, "flags": 4}, + {"matrix": [6, 1], "x": 105, "y": 42, "flags": 4}, + {"matrix": [6, 2], "x": 118, "y": 42, "flags": 4}, + {"matrix": [6, 3], "x": 131, "y": 42, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 42, "flags": 4}, + {"matrix": [6, 6], "x": 171, "y": 42, "flags": 1}, + {"matrix": [6, 8], "x": 0, "y": 53, "flags": 1}, + {"matrix": [7, 0], "x": 26, "y": 53, "flags": 4}, + {"matrix": [7, 1], "x": 39, "y": 53, "flags": 4}, + {"matrix": [7, 2], "x": 52, "y": 53, "flags": 4}, + {"matrix": [7, 3], "x": 65, "y": 53, "flags": 4}, + {"matrix": [7, 4], "x": 79, "y": 53, "flags": 4}, + {"matrix": [7, 5], "x": 92, "y": 53, "flags": 4}, + {"matrix": [7, 6], "x": 105, "y": 53, "flags": 4}, + {"matrix": [7, 7], "x": 118, "y": 53, "flags": 4}, + {"matrix": [7, 8], "x": 131, "y": 53, "flags": 4}, + {"matrix": [7, 9], "x": 144, "y": 53, "flags": 4}, + {"matrix": [8, 1], "x": 171, "y": 53, "flags": 1}, + {"matrix": [8, 3], "x": 210, "y": 53, "flags": 1}, + {"matrix": [8, 4], "x": 0, "y": 64, "flags": 1}, + {"matrix": [8, 5], "x": 13, "y": 64, "flags": 1}, + {"matrix": [8, 6], "x": 26, "y": 64, "flags": 1}, + {"matrix": [8, 7], "x": 79, "y": 64, "flags": 4}, + {"matrix": [8, 8], "x": 131, "y": 64, "flags": 1}, + {"matrix": [8, 9], "x": 144, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 158, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 171, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 197, "y": 64, "flags": 1}, + {"matrix": [9, 3], "x": 210, "y": 64, "flags": 1}, + {"matrix": [9, 4], "x": 224, "y": 64, "flags": 1}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 206, "y": 64, "flags": 2}, + {"x": 189, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 155, "y": 64, "flags": 2}, + {"x": 137, "y": 64, "flags": 2}, + {"x": 120, "y": 64, "flags": 2}, + {"x": 103, "y": 64, "flags": 2}, + {"x": 86, "y": 64, "flags": 2}, + {"x": 68, "y": 64, "flags": 2}, + {"x": 51, "y": 64, "flags": 2}, + {"x": 34, "y": 64, "flags": 2}, + {"x": 17, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 17, "y": 0, "flags": 2}, + {"x": 34, "y": 0, "flags": 2}, + {"x": 51, "y": 0, "flags": 2}, + {"x": 68, "y": 0, "flags": 2}, + {"x": 86, "y": 0, "flags": 2}, + {"x": 103, "y": 0, "flags": 2}, + {"x": 120, "y": 0, "flags": 2}, + {"x": 137, "y": 0, "flags": 2}, + {"x": 155, "y": 0, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 189, "y": 0, "flags": 2}, + {"x": 206, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 42, "flags": 2} + ] }, "features": { "bootmagic": false, diff --git a/keyboards/itstleo/itstleo40/keyboard.json b/keyboards/itstleo/itstleo40/keyboard.json index ff55e3b0ce..6fb745e866 100644 --- a/keyboards/itstleo/itstleo40/keyboard.json +++ b/keyboards/itstleo/itstleo40/keyboard.json @@ -75,4 +75,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/itstleo/itstleo40/readme.md b/keyboards/itstleo/itstleo40/readme.md index b76a966509..aa48340194 100644 --- a/keyboards/itstleo/itstleo40/readme.md +++ b/keyboards/itstleo/itstleo40/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ivndbt/late9/readme.md b/keyboards/ivndbt/late9/readme.md index 8f1ae628fe..0a8a3bb7df 100644 --- a/keyboards/ivndbt/late9/readme.md +++ b/keyboards/ivndbt/late9/readme.md @@ -22,4 +22,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ -After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. \ No newline at end of file +After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. diff --git a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c index cf38757100..fac1ca4a4e 100644 --- a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c +++ b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c @@ -81,4 +81,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), LSFT(KC_BSLS), KC_PDOT, KC_PEQL ), -}; \ No newline at end of file +}; diff --git a/keyboards/ivndbt/ows/keyboard.json b/keyboards/ivndbt/ows/keyboard.json new file mode 100644 index 0000000000..f36c67a42e --- /dev/null +++ b/keyboards/ivndbt/ows/keyboard.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "OWS", + "manufacturer": "ivndbt", + "url": "https://github.com/ivndbt/obiwanstenobit", + "maintainer": "ivndbt", + "usb": { + "vid": "0x6961", + "pid": "0x3033", + "device_version": "0.1.1" + }, + "development_board": "promicro_rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP4", "GP5", "GP6", "GP8", "GP7", "GP22", "GP26", "GP21", "GP23", "GP20"], + "rows": ["GP9", "GP28", "GP27"] + }, + "features": { + "bootmagic": true, + "nkro": true, + "steno": true, + "mousekey": false, + "extrakey": true + }, + "host": { + "default": { + "nkro": true + } + }, + "stenography": { + "enabled": true, + "protocol": "geminipr" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [2, 8], "x": 0, "y": 0}, + {"matrix": [0, 9], "x": 1, "y": 0}, + {"matrix": [0, 8], "x": 2, "y": 0}, + {"matrix": [0, 7], "x": 3, "y": 0}, + {"matrix": [0, 6], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 0], "x": 8, "y": 0}, + {"matrix": [0, 1], "x": 9, "y": 0}, + {"matrix": [0, 2], "x": 10, "y": 0}, + {"matrix": [0, 3], "x": 11, "y": 0}, + {"matrix": [0, 4], "x": 12, "y": 0}, + {"matrix": [2, 3], "x": 13, "y": 0}, + + {"matrix": [2, 9], "x": 0, "y": 1}, + {"matrix": [1, 9], "x": 1, "y": 1}, + {"matrix": [1, 8], "x": 2, "y": 1}, + {"matrix": [1, 7], "x": 3, "y": 1}, + {"matrix": [1, 6], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [1, 0], "x": 8, "y": 1}, + {"matrix": [1, 1], "x": 9, "y": 1}, + {"matrix": [1, 2], "x": 10, "y": 1}, + {"matrix": [1, 3], "x": 11, "y": 1}, + {"matrix": [1, 4], "x": 12, "y": 1}, + {"matrix": [2, 4], "x": 13, "y": 1}, + + {"matrix": [2, 7], "x": 3, "y": 3}, + {"matrix": [2, 6], "x": 4, "y": 3}, + {"matrix": [2, 5], "x": 5, "y": 3}, + + {"matrix": [2, 0], "x": 8, "y": 3}, + {"matrix": [2, 1], "x": 9, "y": 3}, + {"matrix": [2, 2], "x": 10, "y": 3} + ] + } + } +} diff --git a/keyboards/ivndbt/ows/keymaps/default/keymap.c b/keyboards/ivndbt/ows/keymaps/default/keymap.c new file mode 100644 index 0000000000..19d484e952 --- /dev/null +++ b/keyboards/ivndbt/ows/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2026 ivndbt +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Layers declarations +enum layers { + _PLOVER, + _LOWER, + _RAISE, + _CONTROL, + _QWERTY +}; + +#define LOWER TL_LOWR +#define RAISE TL_UPPR +#define QWERTY TG(_QWERTY) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_PLOVER] = LAYOUT( + LOWER, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, + RAISE, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, + STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2 + ), + +[_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, KC_DEL, KC_ESC, _______, KC_UP, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, + _______, _______, _______, KC_HOME, KC_END, _______ + ), + +[_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, + _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT + ), + +[_CONTROL] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_RBT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + +[_QWERTY] = LAYOUT( + KC_BSPC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, QWERTY, + KC_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_Z, KC_ENT, + KC_X, KC_C, KC_V, KC_B, KC_N, KC_M + ) +}; diff --git a/keyboards/ivndbt/ows/keymaps/default/readme.md b/keyboards/ivndbt/ows/keymaps/default/readme.md new file mode 100644 index 0000000000..79cd68eb08 --- /dev/null +++ b/keyboards/ivndbt/ows/keymaps/default/readme.md @@ -0,0 +1,6 @@ +# OWS usage + +OWS is meant to be use with [Plover](https://opensteno.org/plover/) via the GeminiPR steno protocol.\ +To get started, make sure to follow the setup guide described in the [Plover Wiki](https://plover.wiki/index.php/Setting_up_a_hobbyist_writer_with_Plover) for hobbyist writers. + +For an in-depth look at its features, please visit the [project repository](https://github.com/ivndbt/obiwanstenobit). diff --git a/keyboards/ivndbt/ows/keymaps/default/rules.mk b/keyboards/ivndbt/ows/keymaps/default/rules.mk new file mode 100644 index 0000000000..7c9bf212a6 --- /dev/null +++ b/keyboards/ivndbt/ows/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/ivndbt/ows/readme.md b/keyboards/ivndbt/ows/readme.md new file mode 100644 index 0000000000..7cca68ebbf --- /dev/null +++ b/keyboards/ivndbt/ows/readme.md @@ -0,0 +1,32 @@ +# OWS + +Open-source steno keyboard with a pseudo-split layout, designed to be compact, portable, and cost-effective. + +![OWS](https://i.imgur.com/OKkenaR.jpeg "OWS v1 prototype") + +* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) +* Hardware supported: Pro Micro RP2040 +* Hardware Availability: OWS is open-source, check the [project repository](https://github.com/ivndbt/obiwanstenobit) + +Make example for this keyboard (after setting up your build environment): + + make ivndbt/ows:default + +Flashing example for this keyboard: + + make ivndbt/ows: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 + +1. There are 4 ways to enter the bootloader: + + * **Physical reset button**: Double tap the `RST` button located on the back of the Controller PCB. + * **Physical boot button**: Hold the `BOOT` button as you plug the RP2040 + * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top-left key on the right-hand Main PCB) while plugging in the keyboard. + * **Keycode in layout**: Press the key assigned to `QK_BOOT` if it is available + +2. Wait for the OS to detect the device +3. Copy the `.uf2` file to the new USB disk or flash via QMK CLI +4. Wait for the keyboard to become available diff --git a/keyboards/jacky_studio/bear_65/rev1/keyboard.json b/keyboards/jacky_studio/bear_65/rev1/keyboard.json index df7be71869..3181635e03 100644 --- a/keyboards/jacky_studio/bear_65/rev1/keyboard.json +++ b/keyboards/jacky_studio/bear_65/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bear 65", "manufacturer": "Jacky", - "url": "https://qmk.fm/keyboards", "maintainer": "qmk", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/jacky_studio/bear_65/rev2/keyboard.json b/keyboards/jacky_studio/bear_65/rev2/keyboard.json index 0fa471d44a..bfc31bb1a5 100644 --- a/keyboards/jacky_studio/bear_65/rev2/keyboard.json +++ b/keyboards/jacky_studio/bear_65/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bear65 V2", "manufacturer": "Jacky", - "url": "https://qmk.fm/keyboards", "maintainer": "qmk", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/janus/config.h b/keyboards/janus/config.h index 8f28edfb91..605d9b9477 100644 --- a/keyboards/janus/config.h +++ b/keyboards/janus/config.h @@ -12,4 +12,4 @@ /* Double tap reset button to enter bootloader */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/janus/halconf.h b/keyboards/janus/halconf.h index 550a6e0abf..776808b278 100644 --- a/keyboards/janus/halconf.h +++ b/keyboards/janus/halconf.h @@ -6,4 +6,4 @@ #include_next #undef HAL_USE_SIO -#define HAL_USE_SIO TRUE \ No newline at end of file +#define HAL_USE_SIO TRUE diff --git a/keyboards/janus/keymaps/default/keymap.c b/keyboards/janus/keymaps/default/keymap.c index 351e3a3db0..251589ffce 100644 --- a/keyboards/janus/keymaps/default/keymap.c +++ b/keyboards/janus/keymaps/default/keymap.c @@ -47,4 +47,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_NUM, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/janus/keymaps/default/readme.md b/keyboards/janus/keymaps/default/readme.md index dc7534e317..abbcf44178 100644 --- a/keyboards/janus/keymaps/default/readme.md +++ b/keyboards/janus/keymaps/default/readme.md @@ -10,4 +10,4 @@ It is inspired by [Callum's keymap](https://github.com/qmk/qmk_firmware/tree/mas * Symbol layer only contains non-shifted symbol keys. * General differences in key positions. -For simplicity's sake, the keymap uses QMK's native one shot key implementation. There are other excellent one shot implementations out there, including Callum's in the aforementioned keymap. \ No newline at end of file +For simplicity's sake, the keymap uses QMK's native one shot key implementation. There are other excellent one shot implementations out there, including Callum's in the aforementioned keymap. diff --git a/keyboards/janus/mcuconf.h b/keyboards/janus/mcuconf.h index c41253d4fb..6e619860c3 100644 --- a/keyboards/janus/mcuconf.h +++ b/keyboards/janus/mcuconf.h @@ -6,4 +6,4 @@ #include_next #undef RP_SIO_USE_UART0 -#define RP_SIO_USE_UART0 TRUE \ No newline at end of file +#define RP_SIO_USE_UART0 TRUE diff --git a/keyboards/jaykeeb/joker/keyboard.json b/keyboards/jaykeeb/joker/keyboard.json index b35c8c5830..68a5b1830b 100644 --- a/keyboards/jaykeeb/joker/keyboard.json +++ b/keyboards/jaykeeb/joker/keyboard.json @@ -487,4 +487,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/jaykeeb/joker/keymaps/default/keymap.c b/keyboards/jaykeeb/joker/keymaps/default/keymap.c index a9f7194160..3ce114ab99 100644 --- a/keyboards/jaykeeb/joker/keymaps/default/keymap.c +++ b/keyboards/jaykeeb/joker/keymaps/default/keymap.c @@ -12,4 +12,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_PDOT ) -}; \ No newline at end of file +}; diff --git a/keyboards/jaykeeb/joker/matrix_diagram.md b/keyboards/jaykeeb/joker/matrix_diagram.md index d7b79bf97a..f8308157c1 100644 --- a/keyboards/jaykeeb/joker/matrix_diagram.md +++ b/keyboards/jaykeeb/joker/matrix_diagram.md @@ -20,4 +20,4 @@ ┌─────┬─────┬───────────────────────────┬─────┬─────┐ │50 │51 │56 │5A │5B │ WKL └─────┴─────┴───────────────────────────┴─────┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/jaykeeb/skyline/keymaps/default/keymap.c b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c index 78cf4b4c44..caee0ba44e 100644 --- a/keyboards/jaykeeb/skyline/keymaps/default/keymap.c +++ b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/jaykeeb/skyline/readme.md b/keyboards/jaykeeb/skyline/readme.md index 6f58ba33de..0c72e1d49f 100644 --- a/keyboards/jaykeeb/skyline/readme.md +++ b/keyboards/jaykeeb/skyline/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jaykeeb/sriwedari70/keyboard.json b/keyboards/jaykeeb/sriwedari70/keyboard.json index efb13554dc..ddeaa316e3 100644 --- a/keyboards/jaykeeb/sriwedari70/keyboard.json +++ b/keyboards/jaykeeb/sriwedari70/keyboard.json @@ -141,4 +141,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/jiran/keymaps/default/config.h b/keyboards/jiran/keymaps/default/config.h index b1020ed78c..149a54be7f 100644 --- a/keyboards/jiran/keymaps/default/config.h +++ b/keyboards/jiran/keymaps/default/config.h @@ -18,4 +18,4 @@ along with this program. If not, see . #pragma once // #define USE_I2C -#define EE_HANDS \ No newline at end of file +#define EE_HANDS diff --git a/keyboards/jiran/readme.md b/keyboards/jiran/readme.md index 13dc8963df..e311d43356 100644 --- a/keyboards/jiran/readme.md +++ b/keyboards/jiran/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make jiran:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/jlw/bruce_le_clavier/readme.md b/keyboards/jlw/bruce_le_clavier/readme.md index 7bef2d5eef..f2684b28fa 100644 --- a/keyboards/jlw/bruce_le_clavier/readme.md +++ b/keyboards/jlw/bruce_le_clavier/readme.md @@ -50,4 +50,4 @@ Exemple de « make » (après avoir installé votre environnement de développem Exemple de flash pour ce clavier: make jlw/bruce_le_clavier:flash - \ No newline at end of file + diff --git a/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c b/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c index 73ef2e0213..5218cbb3e5 100644 --- a/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c +++ b/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk b/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk +++ b/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/jones/v03/keymaps/default/keymap.c b/keyboards/jones/v03/keymaps/default/keymap.c index d051bd781e..c81e300cf1 100644 --- a/keyboards/jones/v03/keymaps/default/keymap.c +++ b/keyboards/jones/v03/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM,JP_DOT, JP_SLSH,JP_BSLS,KC_UP, XXXXXXX, KC_MUTE,KC_LALT,KC_LGUI,KC_LNG2, KC_SPC, KC_SPC, KC_LNG1,KC_RGUI,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/jones/v03/keymaps/default_jp/rules.mk b/keyboards/jones/v03/keymaps/default_jp/rules.mk index d371e96a07..aa97fcc936 100644 --- a/keyboards/jones/v03/keymaps/default_jp/rules.mk +++ b/keyboards/jones/v03/keymaps/default_jp/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes # Enable Tap Dance \ No newline at end of file +TAP_DANCE_ENABLE = yes # Enable Tap Dance diff --git a/keyboards/jones/v03/matrix.c b/keyboards/jones/v03/matrix.c index d8bc134cf7..1f566eaedb 100644 --- a/keyboards/jones/v03/matrix.c +++ b/keyboards/jones/v03/matrix.c @@ -16,8 +16,6 @@ along with this program. If not, see . */ #include "matrix.h" -#define ROW_SHIFTER ((uint16_t)1) - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -62,10 +60,10 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Check col pin pin_state if (gpio_read_pin(col_pins[col_index]) == 0) { // Pin LO, set col bit - current_matrix[current_row] |= (ROW_SHIFTER << col_index); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << col_index); } else { // Pin HI, clear col bit - current_matrix[current_row] &= ~(ROW_SHIFTER << col_index); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << col_index); } } } diff --git a/keyboards/jones/v03_1/keymaps/default/keymap.c b/keyboards/jones/v03_1/keymaps/default/keymap.c index b374a6488b..14f4b45bf9 100644 --- a/keyboards/jones/v03_1/keymaps/default/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default/keymap.c @@ -23,4 +23,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, XXXXXXX, KC_MUTE,KC_LNG2,KC_LALT,KC_LGUI, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,KC_LNG1,KC_LEFT,KC_DOWN,KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk b/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk index 18b26d5c82..15d7e0624c 100644 --- a/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk +++ b/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes # Enable Tap Dance \ No newline at end of file +TAP_DANCE_ENABLE = yes # Enable Tap Dance diff --git a/keyboards/jones/v03_1/matrix.c b/keyboards/jones/v03_1/matrix.c index d8bc134cf7..1f566eaedb 100644 --- a/keyboards/jones/v03_1/matrix.c +++ b/keyboards/jones/v03_1/matrix.c @@ -16,8 +16,6 @@ along with this program. If not, see . */ #include "matrix.h" -#define ROW_SHIFTER ((uint16_t)1) - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -62,10 +60,10 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Check col pin pin_state if (gpio_read_pin(col_pins[col_index]) == 0) { // Pin LO, set col bit - current_matrix[current_row] |= (ROW_SHIFTER << col_index); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << col_index); } else { // Pin HI, clear col bit - current_matrix[current_row] &= ~(ROW_SHIFTER << col_index); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << col_index); } } } diff --git a/keyboards/jorne/keymaps/default/config.h b/keyboards/jorne/keymaps/default/config.h index 2fb5ca4c4f..3fa16d679a 100644 --- a/keyboards/jorne/keymaps/default/config.h +++ b/keyboards/jorne/keymaps/default/config.h @@ -2,8 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define OLED_DISPLAY_128X32 - #ifdef RGBLIGHT_ENABLE #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/joshajohnson/hub16/matrix.c b/keyboards/joshajohnson/hub16/matrix.c index 26222cf15a..f786c9fd73 100644 --- a/keyboards/joshajohnson/hub16/matrix.c +++ b/keyboards/joshajohnson/hub16/matrix.c @@ -14,28 +14,23 @@ 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 "wait.h" -#include "util.h" #include "matrix.h" // Encoder things #define SWITCH_1 F7 #define SWITCH_2 D7 -static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row); static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -/* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - static void select_row(uint8_t row) { gpio_set_pin_output(row_pins[row]); gpio_write_pin_low(row_pins[row]); } -static void unselect_row(uint8_t row) { gpio_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < MATRIX_ROWS; x++) { @@ -57,9 +52,9 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Clear data in matrix row current_matrix[current_row] = 0; - // Select row and wait for row selecton to stabilize + // Select row and wait for row selection to stabilize select_row(current_row); - wait_us(30); + matrix_io_delay(); // For each col... for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { @@ -76,6 +71,19 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) return (last_row_value != current_matrix[current_row]); } +static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Populate the matrix row with the state of the encoder + current_matrix[current_row] |= gpio_read_pin(SWITCH_1) ? (1 << 0) : 0; + current_matrix[current_row] |= gpio_read_pin(SWITCH_2) ? (1 << 1) : 0; + + return (last_row_value != current_matrix[current_row]); +} void matrix_init_custom(void) { // initialize key pins @@ -84,42 +92,16 @@ void matrix_init_custom(void) { init_pins(); } -bool matrix_scan_custom(void) { +bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool changed = false; // Set row, read cols - for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(raw_matrix, current_row); + for (uint8_t current_row = 0; current_row < MATRIX_ROWS - 1; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); } // Read encoder switches, already debounced - changed |= read_encoder_switches(matrix, 4); + changed |= read_encoder_switches(current_matrix, 4); return changed; } - -static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) { - // Store last value of row prior to reading - matrix_row_t last_row_value = current_matrix[current_row]; - - // Clear data in matrix row - current_matrix[current_row] = 0; - - // Debounce the encoder buttons using a shift register - static uint8_t btn_1_array; - static uint8_t btn_2_array; - bool btn_1_rise = 0; - bool btn_2_rise = 0; - btn_1_array <<= 1; - btn_2_array <<= 1; - btn_1_array |= gpio_read_pin(SWITCH_1); - btn_2_array |= gpio_read_pin(SWITCH_2); - (btn_1_array == 0b01111111) ? (btn_1_rise = 1) : (btn_1_rise = 0); - (btn_2_array == 0b01111111) ? (btn_2_rise = 1) : (btn_2_rise = 0); - - // Populate the matrix row with the state of the encoder - current_matrix[current_row] |= btn_1_rise ? (1 << 0) : 0; - current_matrix[current_row] |= btn_2_rise ? (1 << 1) : 0; - - return (last_row_value != current_matrix[current_row]); -} diff --git a/keyboards/joshajohnson/hub20/hub20.c b/keyboards/joshajohnson/hub20/hub20.c deleted file mode 100644 index 8b1c58e1f7..0000000000 --- a/keyboards/joshajohnson/hub20/hub20.c +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright 2020 joshajohnson 2021 peepeetee - * - * 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 "quantum.h" - - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - {NO_LED,NO_LED,NO_LED,NO_LED}, - { 7, 8, 9, 10}, - { 11, 12, 13, 14}, - { 15, 16, 17, 18}, - { 19, 20, 21, 22}, - { 23, 24, 25, 26} - //todo: assign leds to keys differently for the different layouts -}, { - // LED Index to Physical Position - { 190, 50}, { 111, 50}, { 35, 50}, {38, 0}, {38, 35}, {186, 35}, {186, 0}, // UNDERGLOW - //todo: underglow location needs to be recalculated. The top row is above row 4, and for now they have the same y value 0 - { 0, 0}, {75, 0}, {150, 0}, {225, 0}, // row 4 - { 0, 16}, {75, 16}, {150, 16}, {225, 16}, // row 3 - { 0, 32}, {75, 32}, {150, 32}, {225, 32}, // row 2 - { 0, 48}, {75, 48}, {150, 48}, {225, 48}, // row 1 - { 0, 64}, {75, 64}, {150, 64}, {225, 64} // row 0 - -}, { - // LED Index to Flag - LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, // UNDERGLOW - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 4 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 3 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 2 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 1 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT // row 0 - -} }; -#endif - - - -// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER && LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO -// #error lower left enter conflicts with lower left zero -// #endif - -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER && LED_MERGE_NUMPAD_LEFT_HANDED_ZERO -// #error lower right enter conflicts with lower right zero -// #endif - -// /* LAYOUT_left_handed - - -// * ┌───┬───┐ -// * │01 │02 │ -// * ┌───┼───┼───┼───┐ -// * │10 │11 │12 │13 │ -// * ├───┼───┼───┼───┤ -// * │ │21 │22 │23 │ -// * │20 ├───┼───┼───┤ -// * │ │31 │32 │33 │ -// * ├───┼───┼───┼───┤ -// * │ │41 │42 │43 │ -// * │40 ├───┼───┴───┤ -// * │ │51 │ 52 │ -// * └───┴───┴───────┘ -// */ - -// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20 -// #define LED_MERGE_NUMPAD_LEFT_HANDED_PLUS FALSE -// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_PLUS - -// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40 -// #define LED_MERGE_NUMPAD_LEFT_HANDED_ENTER FALSE -// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ENTER - -// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52 -// #define LED_MERGE_NUMPAD_LEFT_HANDED_ZERO FALSE -// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ZERO - - -// /* LAYOUT_right_handed - - -// * ┌───┬───┐ -// * │01 │02 │ -// * ┌───┼───┼───┼───┐ -// * │10 │11 │12 │13 │ -// * ├───┼───┼───┼───┤ -// * │20 │21 │22 │ │ -// * ├───┼───┼───┤23 │ -// * │30 │31 │32 │ │ -// * ├───┼───┼───┼───┤ -// * │40 │41 │42 │ │ -// * ├───┴───┼───┤43 │ -// * │ 50 │52 │ │ -// * └───────┴───┴───┘ -// */ -// //LOCATION OF bottom row 0 NOT TESTED, WAITING ENDORSEMENT FROM MANUFACTURER - -// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23 -// #define LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS FALSE -// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS - -// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43 -// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER FALSE -// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER - -// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer) -// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO FALSE -// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO - -// uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) { -// // Keys here have 2 leds. Here we add the led that is not bound to the key -// // and the default led would be added -// // by the default code that runs after this in rgb_matrix_map_row_column_to_led - -// uint8_t counter = 0; - -// #if LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20, leds 7 and 11, 7 already bound - -// if (row == 2 && column == 0) { -// led_i[counter] = 11; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40, leds 19 and 23, 23 already bound -// if (row == 4 && column == 0) { -// led_i[counter] = 23; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52, leds 25 and 26, 26 already bound -// if (row == 5 && column == 2) { -// led_i[counter] = 26; -// counter ++; -// } -// #endif - -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23, led 14 and 18, 14 already bound -// if (row == 2 && column == 3) { -// led_i[counter] = 18; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43, led 22 and 26, 22 already bound -// if (row == 4 && column == 3) { -// led_i[counter] = 26; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer) -// // LED 23 and 24, 23(?) already bound -// if (row == 5 && column == 0) { -// led_i[counter] = 24; -// counter ++; -// } -// #endif -// return counter; -// } diff --git a/keyboards/joshajohnson/hub20/keyboard.json b/keyboards/joshajohnson/hub20/keyboard.json index 0d557c58b5..c26a25de3c 100644 --- a/keyboards/joshajohnson/hub20/keyboard.json +++ b/keyboards/joshajohnson/hub20/keyboard.json @@ -28,7 +28,36 @@ "solid_reactive_simple": true, "solid_reactive": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 190, "y": 50, "flags": 2}, + {"x": 111, "y": 50, "flags": 2}, + {"x": 35, "y": 50, "flags": 2}, + {"x": 38, "y": 0, "flags": 2}, + {"x": 38, "y": 35, "flags": 2}, + {"x": 186, "y": 35, "flags": 2}, + {"x": 186, "y": 0, "flags": 2}, + {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 150, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 224, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/jukaie/jk01/jk01.c b/keyboards/jukaie/jk01/jk01.c index 595f6bf43f..804d1a55b7 100644 --- a/keyboards/jukaie/jk01/jk01.c +++ b/keyboards/jukaie/jk01/jk01.c @@ -170,4 +170,4 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } return true; /* Process all other keycodes normally */ -}; \ No newline at end of file +}; diff --git a/keyboards/junco/rev1/keyboard.json b/keyboards/junco/rev1/keyboard.json index 936a0bf29c..1ec680aa3a 100644 --- a/keyboards/junco/rev1/keyboard.json +++ b/keyboards/junco/rev1/keyboard.json @@ -22,6 +22,82 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"x": 95, "y": 64, "flags": 2}, + {"x": 52, "y": 64, "flags": 2}, + {"x": 86, "y": 40, "flags": 2}, + {"x": 52, "y": 40, "flags": 2}, + {"x": 9, "y": 40, "flags": 2}, + {"x": 9, "y": 8, "flags": 2}, + {"x": 52, "y": 8, "flags": 2}, + {"x": 86, "y": 8, "flags": 2}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 86, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 52, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 34, "y": 64, "flags": 4}, + {"x": 129, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 138, "y": 40, "flags": 2}, + {"x": 172, "y": 40, "flags": 2}, + {"x": 215, "y": 40, "flags": 2}, + {"x": 215, "y": 8, "flags": 2}, + {"x": 172, "y": 8, "flags": 2}, + {"x": 138, "y": 8, "flags": 2}, + {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4}, + {"matrix": [9, 4], "x": 121, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 138, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 155, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 172, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 190, "y": 64, "flags": 4} + ], "split_count": [37, 37] }, "encoder": { diff --git a/keyboards/junco/rev1/rev1.c b/keyboards/junco/rev1/rev1.c index d1346b82e2..0167a095ad 100644 --- a/keyboards/junco/rev1/rev1.c +++ b/keyboards/junco/rev1/rev1.c @@ -21,106 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}} }; #endif - -/* RGB LED matrix */ -#ifdef RGB_MATRIX_ENABLE -/* - Key Matrix Physical - L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, - L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, - L40, L41, L42, L43, L44, R42, R41, R43, R44, R45 - - Key Electrical - Left: - { L00, L01, L02, L03, L04, L05 }, - { L10, L11, L12, L13, L14, L15 }, - { L20, L21, L22, L23, L24, L25 }, - { L30, L31, L32, L33, L34, L35 }, - { L40, L41, L42, L43, L44, L45 }, - Right: - { R05, R04, R03, R02, R01, R00 }, - { R15, R14, R13, R12, R11, R10 }, - { R25, R24, R23, R22, R21, R20 }, - { R35, R34, R33, R32, R31, R30 }, - { R45, R44, R43, R42, R41, R40 } - - Key matrix physical filled with LED electrical indexes, count starting at 1 - - Col - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Row - - 14 13 12 11 10 9 46 47 48 49 50 51 0 - 6 7 8 45 44 43 - 15 16 17 18 19 20 57 56 55 54 53 52 1 - - 26 25 24 23 22 21 58 59 60 61 62 63 2 - 5 4 3 40 41 42 - 27 28 29 30 31 32 NO NO 69 68 67 66 65 64 3 - - 37 36 35 34 33 70 71 72 73 74 4 - 2 1 38 39 -*/ - -// clang-format off -led_config_t g_led_config = { - { // Key Electrical Matrix to LED Index (count start at 0, so 8 is the first non-underglow key) - - // Left Half - { 13, 12, 11, 10, 9, 8 }, - { 14, 15, 16, 17, 18, 19 }, - { 25, 24, 23, 22, 21, 20 }, - { 26, 27, 28, 29, 30, 31 }, - { 36, 35, 34, 33, 32, NO_LED }, - - // Right Half - { 50, 49, 48, 47, 46, 45 }, - { 51, 52, 53, 54, 55, 56 }, - { 62, 61, 60, 59, 58, 57 }, - { 63, 64, 65, 66, 67, 68 }, - { 73, 72, 71, 70, 69, NO_LED } - }, - { // LED Index to LED Physical Position (mirrored on right half) - - // Left Underglow (indicies 1 - 8) - { 95, 72 }, { 52, 72 }, { 86, 40 }, { 52, 40 }, { 9, 40 }, { 9, 8 }, { 52, 8 }, { 86, 8 }, - // Left Matrix (indicies 9 - 37) - { 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 }, - { 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 }, - { 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 }, - { 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, /* No Led */ - { 103, 64 }, { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 }, - - // Right Underglow (indicies 38 - 45) - { 129, 72 }, { 172, 72 }, { 138, 40 }, { 172, 40 }, { 215, 40 }, { 215, 8 }, { 172, 8 }, { 138, 8 }, - // Right Matrix (indicies 46 - 74) - { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 }, - { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 }, - { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 }, - /* No Led */ { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, - { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 } - }, - { // LED Index to Flag (2 - Underglow, 4 - Key Backlight) - - // Left Underglow - 2, 2, 2, 2, 2, 2, 2, 2, - // Left Matrix - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - - // Right Underglow - 2, 2, 2, 2, 2, 2, 2, 2, - // Right Matrix - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4 - } -}; - -#endif diff --git a/keyboards/jyap808/pando58/keyboard.json b/keyboards/jyap808/pando58/keyboard.json new file mode 100644 index 0000000000..a4f4f48ebe --- /dev/null +++ b/keyboards/jyap808/pando58/keyboard.json @@ -0,0 +1,106 @@ +{ + "keyboard_name": "Pando58", + "manufacturer": "jyap808", + "maintainer": "jyap808", + "bootloader": "rp2040", + "processor": "RP2040", + "usb": { + "vid": "0x4A59", + "pid": "0x3538", + "device_version": "1.2.0" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"], + "rows": ["GP14", "GP15", "GP26", "GP27", "GP28"] + }, + "diode_direction": "COL2ROW", + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP0" + }, + "transport": { + "watchdog": true + } + }, + "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": [5, 5], "x": 11, "y": 0}, + {"matrix": [5, 4], "x": 12, "y": 0}, + {"matrix": [5, 3], "x": 13, "y": 0}, + {"matrix": [5, 2], "x": 14, "y": 0}, + {"matrix": [5, 1], "x": 15, "y": 0}, + {"matrix": [5, 0], "x": 16, "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": [6, 5], "x": 11, "y": 1}, + {"matrix": [6, 4], "x": 12, "y": 1}, + {"matrix": [6, 3], "x": 13, "y": 1}, + {"matrix": [6, 2], "x": 14, "y": 1}, + {"matrix": [6, 1], "x": 15, "y": 1}, + {"matrix": [6, 0], "x": 16, "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": [7, 5], "x": 11, "y": 2}, + {"matrix": [7, 4], "x": 12, "y": 2}, + {"matrix": [7, 3], "x": 13, "y": 2}, + {"matrix": [7, 2], "x": 14, "y": 2}, + {"matrix": [7, 1], "x": 15, "y": 2}, + {"matrix": [7, 0], "x": 16, "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": [8, 5], "x": 11, "y": 3}, + {"matrix": [8, 4], "x": 12, "y": 3}, + {"matrix": [8, 3], "x": 13, "y": 3}, + {"matrix": [8, 2], "x": 14, "y": 3}, + {"matrix": [8, 1], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 16, "y": 3}, + + {"matrix": [4, 1], "x": 2, "y": 4}, + {"matrix": [4, 2], "x": 3, "y": 4}, + {"matrix": [4, 3], "x": 4, "y": 4}, + {"matrix": [4, 4], "x": 6, "y": 4}, + {"matrix": [4, 5], "x": 7, "y": 4}, + + {"matrix": [9, 5], "x": 9, "y": 4}, + {"matrix": [9, 4], "x": 10, "y": 4}, + {"matrix": [9, 3], "x": 12, "y": 4}, + {"matrix": [9, 2], "x": 13, "y": 4}, + {"matrix": [9, 1], "x": 14, "y": 4} + ] + } + } +} diff --git a/keyboards/jyap808/pando58/keymaps/default/keymap.c b/keyboards/jyap808/pando58/keymaps/default/keymap.c new file mode 100644 index 0000000000..4983b86f9b --- /dev/null +++ b/keyboards/jyap808/pando58/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2026 Julian Yap (@jyap808) +// 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_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, + KC_LGUI,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, + KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, + KC_LEFT,KC_RGHT,KC_BSPC,KC_LCTL,KC_LALT, KC_ENT ,KC_SPC ,TL_LOWR,KC_UP ,KC_DOWN), + + [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_EQL , + KC_CAPS,_______,_______,_______,_______,_______, KC_VOLD,KC_VOLU,KC_MUTE,_______,KC_PSCR,_______, + _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______, + _______,_______,_______,_______,_______,_______, _______,_______,KC_LBRC,KC_RBRC,_______,_______, + KC_HOME,KC_END ,KC_DEL ,_______,_______, _______,_______,_______,KC_PGUP,KC_PGDN), +}; diff --git a/keyboards/jyap808/pando58/readme.md b/keyboards/jyap808/pando58/readme.md new file mode 100644 index 0000000000..28a6151b61 --- /dev/null +++ b/keyboards/jyap808/pando58/readme.md @@ -0,0 +1,31 @@ +# Pando58 + +![Pando58 - 3D printed case](https://i.imgur.com/e01JcXL.jpeg) + +![Pando58 - Layered build](https://i.imgur.com/JyufNvG.jpeg) + +*58-key columnar split keyboard driven by RP2040 Zero controllers, utilizing RJ45 sockets for interconnect.* + +[Build guide](https://jyap808.github.io/pando58) + +* Keyboard Maintainer: [jyap808](https://github.com/jyap808) +* Hardware Availability: [github/jyap808/pando58](https://github.com/jyap808/pando58) +* Hardware Supported: RP2040 Zero + +Make example for this keyboard (after setting up your build environment): + + make jyap808/pando58:default + +Flashing example for this keyboard: + + make jyap808/pando58:default:flash + +See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](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/kakunpc/angel64/alpha/matrix.c b/keyboards/kakunpc/angel64/alpha/matrix.c index ff2b8a801e..50213d5b80 100644 --- a/keyboards/kakunpc/angel64/alpha/matrix.c +++ b/keyboards/kakunpc/angel64/alpha/matrix.c @@ -22,67 +22,52 @@ along with this program. If not, see . #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. */ #include "matrix.h" -#if (MATRIX_COLS <= 8) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define ROW_SHIFTER ((uint32_t)1) -#endif - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -88,7 +80,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -113,10 +105,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/kakunpc/thedogkeyboard/matrix.c b/keyboards/kakunpc/thedogkeyboard/matrix.c index ff2b8a801e..50213d5b80 100644 --- a/keyboards/kakunpc/thedogkeyboard/matrix.c +++ b/keyboards/kakunpc/thedogkeyboard/matrix.c @@ -22,67 +22,52 @@ along with this program. If not, see . #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1< #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/kbdfans/baguette66/rgb/keyboard.json b/keyboards/kbdfans/baguette66/rgb/keyboard.json index 5955add028..77103382bd 100644 --- a/keyboards/kbdfans/baguette66/rgb/keyboard.json +++ b/keyboards/kbdfans/baguette66/rgb/keyboard.json @@ -58,6 +58,74 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [2, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 205, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 187, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 150, "sat_steps": 8, "sleep": true, diff --git a/keyboards/kbdfans/baguette66/rgb/rgb.c b/keyboards/kbdfans/baguette66/rgb/rgb.c index 8e1dbc5bcd..379597b58e 100644 --- a/keyboards/kbdfans/baguette66/rgb/rgb.c +++ b/keyboards/kbdfans/baguette66/rgb/rgb.c @@ -17,26 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,NO_LED, 14 }, - { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED}, - { NO_LED, 58, 59, NO_LED, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, 62, NO_LED, 63, 64, 65 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{195,0}, {210,0},{224,0}, - {224,16}, {206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16},{68,16},{53,16},{38,16},{23,16},{4,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32}, - {220,48},{205,48},{187,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, - {21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/bella/rgb/keyboard.json b/keyboards/kbdfans/bella/rgb/keyboard.json index 2ca18d2851..7bbc5ea7a2 100644 --- a/keyboards/kbdfans/bella/rgb/keyboard.json +++ b/keyboards/kbdfans/bella/rgb/keyboard.json @@ -54,6 +54,102 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 41, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 9, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c index 4818c99005..2dd792c5bc 100644 --- a/keyboards/kbdfans/bella/rgb/rgb.c +++ b/keyboards/kbdfans/bella/rgb/rgb.c @@ -118,36 +118,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW4_CS3, SW4_CS2, SW4_CS1}, /* RGB40 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15*/ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, NO_LED, 9, 10, 11, 12, 13, }, /* R0 */ - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, NO_LED, 27, 28, }, /* R1 */ - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43, }, /* R2 */ - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, NO_LED, 57, }, /* R3 */ - { 58, NO_LED, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, NO_LED, 70, NO_LED, }, /* R4 */ - { 71, 72, 73, NO_LED, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, NO_LED, 78, 79, }, /* R5 */ - }, { - {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, - {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, - {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {202, 29}, {224, 29}, - {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {196, 41}, {224, 41}, - {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52}, - {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, - {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, - {0, 32}, {224,32}, - {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, - }, { - 4,1,1,1,1,1,1,1,1,1,1,1,1,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,1, - 4,4,4,4,4,4,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/bella/rgb_iso/keyboard.json b/keyboards/kbdfans/bella/rgb_iso/keyboard.json index c7dd6423b5..43f36625f9 100644 --- a/keyboards/kbdfans/bella/rgb_iso/keyboard.json +++ b/keyboards/kbdfans/bella/rgb_iso/keyboard.json @@ -54,6 +54,103 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 35, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 41, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 18, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c index 8d9349e295..ecbe4b3122 100644 --- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c +++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c @@ -119,36 +119,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW4_CS3, SW4_CS2, SW4_CS1}, /* RGB40 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15*/ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, NO_LED, 9, 10, 11, 12, 13, }, /* R0 */ - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, NO_LED, 27, 28, }, /* R1 */ - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 56, NO_LED, 43, }, /* R2 */ - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 42, NO_LED, 57, }, /* R3 */ - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, 71, NO_LED, }, /* R4 */ - { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, }, /* R5 */ - }, { - {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, - {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, - {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {200, 35}, {224, 29}, - {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {187, 41}, {224, 41}, - {2, 52}, {18, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52}, - {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, - {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, - {0, 32}, {224,32}, - {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, - }, { - 4,1,1,1,1,1,1,1,1,1,1,1,1,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,1, - 4,4,4,4,4,4,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/boop65/rgb/keyboard.json b/keyboards/kbdfans/boop65/rgb/keyboard.json index 4a051c9112..6fc36d1539 100644 --- a/keyboards/kbdfans/boop65/rgb/keyboard.json +++ b/keyboards/kbdfans/boop65/rgb/keyboard.json @@ -56,6 +56,91 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 32, "y": 8, "flags": 2}, + {"x": 64, "y": 8, "flags": 2}, + {"x": 96, "y": 8, "flags": 2}, + {"x": 128, "y": 8, "flags": 2}, + {"x": 160, "y": 8, "flags": 2}, + {"x": 192, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 32, "y": 56, "flags": 2}, + {"x": 64, "y": 56, "flags": 2}, + {"x": 96, "y": 56, "flags": 2}, + {"x": 128, "y": 56, "flags": 2}, + {"x": 160, "y": 56, "flags": 2}, + {"x": 192, "y": 56, "flags": 2}, + {"x": 224, "y": 56, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c index f70c92812f..5a6caf64d1 100644 --- a/keyboards/kbdfans/boop65/rgb/rgb.c +++ b/keyboards/kbdfans/boop65/rgb/rgb.c @@ -112,29 +112,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW6_CS39, SW6_CS38, SW6_CS37} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}, - {0,8},{32,8},{64,8},{96,8},{128,8},{160,8},{192,8},{224,8}, - {0,56},{32,56},{64,56},{96,56},{128,56},{160,56},{192,56},{224,56} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2 -} }; bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kbdfans/bounce/75/hotswap/readme.md b/keyboards/kbdfans/bounce/75/hotswap/readme.md index 7e631099cc..94704924ca 100644 --- a/keyboards/kbdfans/bounce/75/hotswap/readme.md +++ b/keyboards/kbdfans/bounce/75/hotswap/readme.md @@ -18,4 +18,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/kbdfans/bounce/pad/keymaps/default/keymap.c b/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c index 70648d0ae9..9deceaf38a 100644 --- a/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c +++ b/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_P0, KC_PDOT, KC_PENT ), -}; \ No newline at end of file +}; diff --git a/keyboards/kbdfans/d60b/keyboard.json b/keyboards/kbdfans/d60b/keyboard.json new file mode 100644 index 0000000000..817cc6f504 --- /dev/null +++ b/keyboards/kbdfans/d60b/keyboard.json @@ -0,0 +1,215 @@ +{ + "manufacturer": "KBDfans", + "keyboard_name": "D60B", + "maintainer": "chrisgve", + "bootloader": "atmel-dfu", + "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F5", "F4", "E6", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], + "rows": ["C7", "C6", "B6", "B5", "F6"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true + } + }, + "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, + "flower_blooming": 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, + "riverflow": 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 + }, + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 200, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x1600", + "vid": "0xCA04" + }, + "ws2812": { + "pin": "F7" + }, + "layouts": { + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "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, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 7], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c b/keyboards/kbdfans/d60b/keymaps/default/keymap.c similarity index 51% rename from keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c rename to keyboards/kbdfans/d60b/keymaps/default/keymap.c index f3aa8083f1..d0a47b0d2f 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c +++ b/keyboards/kbdfans/d60b/keymaps/default/keymap.c @@ -1,5 +1,4 @@ -/* Copyright 2020 markva - * Copyright 2021 bdtc123 +/* Copyright 2025 chrisgve * * 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 @@ -14,21 +13,25 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #include QMK_KEYBOARD_H +// clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_60_iso_arrow( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + [0]=LAYOUT_60_ansi_tsangan_split_bs_rshift( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRAVE, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL ), - [1] = LAYOUT_60_iso_arrow( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + + [1]=LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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, + RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ ) }; +//clang-format on diff --git a/keyboards/kbdfans/d60b/readme.md b/keyboards/kbdfans/d60b/readme.md new file mode 100644 index 0000000000..903a52019f --- /dev/null +++ b/keyboards/kbdfans/d60b/readme.md @@ -0,0 +1,26 @@ +# KBDfans D60B + +Customizable 60% Tsangan Hotswap by PCB by [KBDfans](https://kbdfans.com). +This board has also, at times, been referred to as the Sun60, but the name on the PCB is D60 B. + +- Keyboard Maintainer: [chrisgve](https://github.com/chrisgve) +- Hardware Supported: KBDfans D60B +- Hardware Availability: no longer available for sale + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/d60b:default + +The keyboard uses a DFU bootloader. To make a keymap and use dfu to flash it: + + make kbdfans/d60b: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**: Short the two pads close to the position of the caps lock key +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kbdfans/kbd19x/keyboard.json b/keyboards/kbdfans/kbd19x/keyboard.json index b5f4673060..8834b78d87 100644 --- a/keyboards/kbdfans/kbd19x/keyboard.json +++ b/keyboards/kbdfans/kbd19x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD19x", "manufacturer": "KBDfans", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd19x", "maintainer": "jshuf, mechmerlin", "usb": { "vid": "0x4B42", diff --git a/keyboards/kbdfans/kbd66/keymaps/default/readme.md b/keyboards/kbdfans/kbd66/keymaps/default/readme.md index f4ab771a5d..a12dc59927 100644 --- a/keyboards/kbdfans/kbd66/keymaps/default/readme.md +++ b/keyboards/kbdfans/kbd66/keymaps/default/readme.md @@ -9,4 +9,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + \ Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md b/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md index 6ad0d85e08..0529349022 100644 --- a/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md +++ b/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md @@ -8,4 +8,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + \ Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md b/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md index f325b741cc..8abe42ae56 100644 --- a/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md +++ b/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md @@ -8,4 +8,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + # Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json index f55a649f43..9b034ef194 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json @@ -37,6 +37,75 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c index 210be85d3f..7d25400d7f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c @@ -92,10 +92,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { }; -led_config_t g_led_config = {{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, {15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, {44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57}, {58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66}}, - {{0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {203, 0}, {224, 0}, {4, 16}, {23, 16}, {38, 16}, {53, 16}, {68, 16}, {83, 16}, {98, 16}, {113, 16}, {128, 16}, {143, 16}, {158, 16}, {173, 16}, {188, 16}, {206, 16}, {224, 16}, {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {224, 32}, {9, 48}, {34, 48}, {49, 48}, {64, 48}, {79, 48}, {94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {210, 48}, {224, 48}, {2, 64}, {21, 64}, {39, 64}, {96, 64}, {152, 64}, {171, 64}, {195, 64}, {210, 64}, {224, 64}}, - {1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1}}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json index 916ee0f33a..012ab5257b 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json @@ -35,6 +35,75 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c index 50958017a2..f32d5b2f1d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c @@ -92,27 +92,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json index 4a3beea9eb..bab449e144 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json @@ -37,6 +37,75 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 151, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 170, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "val_steps": 8, "led_flush_limit": 26, "led_process_limit": 4, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index 0b40afadf9..dd3fd96e1c 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -94,33 +94,7 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { }; -#define __ NO_LED #define CAPS_LOCK_LED_INDEX 30 - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, __, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, 61, __, __, 62, __, 63, 64, __, 65, 66 } -}, { - // LED Index to Physical Position - // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb - {0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {119, 0}, {134, 0}, {149, 0}, {164, 0}, {179, 0}, {202, 0}, {224, 0}, - {4, 16}, {22, 16}, {37, 16}, {52, 16}, {67, 16}, {82, 16}, {97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {205, 16}, {224, 16}, - {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {175, 32}, {200, 32}, {224, 32}, - {9, 48}, {34, 48}, {49, 48}, {63, 48}, {78, 48}, {93, 48}, {108, 48}, {123, 48}, {138, 48}, {153, 48}, {168, 48}, {189, 48}, {209, 48}, {224, 48}, - {2, 64}, {21, 64}, {39, 64}, {95, 64}, {151, 64}, {170, 64}, {194, 64}, {209, 64}, {224, 64} -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // caps lock is also an indicator so mask is `0x01 | 0x08` - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - #endif #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json index ed47182ae5..574a02088f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json @@ -52,6 +52,75 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 150, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md b/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md index ad8b38a62e..75e3657292 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md @@ -15,4 +15,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down esc in the keyboard then replug * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c index 24ccaea968..f9af0a3df9 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c @@ -17,28 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { -{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,NO_LED, 43 }, - { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED,45, 44 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED,65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {224,16},{206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json index 5000f8fb0a..3d544fe88c 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json @@ -40,6 +40,76 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 191, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 21, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c index 432c871dba..8aa7d42ef3 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c @@ -17,28 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { -{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 42, 15 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,NO_LED, 43 }, - { 58, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED,45, 44 }, - { 59, 60, 61, 57, NO_LED, 62, NO_LED, NO_LED, NO_LED, 63, 64, 65, NO_LED,66, 67 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {224,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{191,32},{206,24},{224,32}, - {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{21,48},{2,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c index 622ca83b68..45e195524a 100644 --- a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c +++ b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c @@ -17,29 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15}, - { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}, - { 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 14, 47, 46}, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, NO_LED,72, 73}, - { 83, 82, 81, NO_LED, NO_LED, 80, NO_LED, NO_LED, 79, 78, 77, 76, NO_LED,75 ,74} -}, { - {0, 0}, {15, 0}, {30, 0},{45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, - {224, 12}, {218, 12},{192, 12},{176, 12},{160, 12},{144, 12},{128, 12},{112, 12},{96, 12},{80, 12},{64, 12},{48, 12},{32, 12},{16, 12},{0, 12}, - {0, 25},{16, 25}, {32, 25}, {48, 25}, {64, 25}, {80, 25}, {96, 25}, {112, 25}, {128, 25}, {144, 25}, {160, 25},{176, 25}, {192, 25}, {218, 25}, {224, 25}, -{224, 38},{200, 38},{176, 38},{160, 38},{144, 38},{128, 38},{112, 38},{96, 38},{80, 38},{64, 38},{48, 38},{32, 38},{16, 38},{0, 38}, - {0, 51},{16, 51}, {32, 51}, {48, 51}, {64, 51}, {80, 51}, {96, 51}, {112, 51}, {128, 51}, {144, 51}, {160, 51}, {189, 51}, {218, 51}, {224, 51}, -{224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 64} -}, { -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,1,4,1,1,1,4,4,4, -4,4,4,4 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd75rgb/keyboard.json b/keyboards/kbdfans/kbd75rgb/keyboard.json index 6a69d78c03..af6379071d 100644 --- a/keyboards/kbdfans/kbd75rgb/keyboard.json +++ b/keyboards/kbdfans/kbd75rgb/keyboard.json @@ -58,6 +58,92 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [3, 12], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 218, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 12, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 218, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 25, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 128, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 189, "y": 51, "flags": 4}, + {"matrix": [4, 13], "x": 218, "y": 51, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 218, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 192, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 176, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 160, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 144, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md b/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md index 3de082bed9..320ce9fd0d 100644 --- a/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md +++ b/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md @@ -15,4 +15,4 @@ F8 = RGB Hue Decrease F9 = RGB Saturation Increase F10 = RGB Saturation Decrease F11 = RGB Value Increase -F12 = RGB Value Decrease \ No newline at end of file +F12 = RGB Value Decrease diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c index 18acc21da4..c9b558b7d3 100644 --- a/keyboards/kbdfans/kbdmini/kbdmini.c +++ b/keyboards/kbdfans/kbdmini/kbdmini.c @@ -57,22 +57,3 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS2, SW10_CS2, SW12_CS2 }, //LA8 { 0, SW11_CS1, SW10_CS1, SW12_CS1 } //LA4 }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }, - { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 } - }, { - { 0, 0 }, { 19, 0 }, { 38, 0 }, { 57, 0 }, { 76, 0 }, { 95, 0 }, { 114, 0 }, { 133, 0 }, { 152, 0 }, { 171, 0 }, { 190, 0 }, { 209, 0 }, { 224, 0 }, - { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 224, 21 }, - { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 224, 42 }, - { 0, 64 }, { 19, 64 }, { 38, 64 }, { 57, 64 }, { 76, 64 }, { 95, 64 }, { 114, 64 }, { 133, 64 }, { 152, 64 }, { 171, 64 }, { 190, 64 }, { 209, 64 }, { 224, 64 } - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; diff --git a/keyboards/kbdfans/kbdmini/keyboard.json b/keyboards/kbdfans/kbdmini/keyboard.json index 97edf073e6..90ec227140 100644 --- a/keyboards/kbdfans/kbdmini/keyboard.json +++ b/keyboards/kbdfans/kbdmini/keyboard.json @@ -37,6 +37,60 @@ "typing_heatmap": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 38, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 76, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 114, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 171, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 190, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4}, + {"matrix": [1, 12], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4}, + {"matrix": [2, 12], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 38, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 57, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 76, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 95, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 114, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 133, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 171, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 190, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 209, "y": 64, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md b/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md index 3cd1e9b67b..286229e367 100644 --- a/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md +++ b/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md @@ -6,4 +6,4 @@ From left to right: Backlight Toggle Backlight Step RGB Toggle -RGB Mode Cycle \ No newline at end of file +RGB Mode Cycle diff --git a/keyboards/kbdfans/maja/keyboard.json b/keyboards/kbdfans/maja/keyboard.json index 949dd09fe2..fd5d10d833 100644 --- a/keyboards/kbdfans/maja/keyboard.json +++ b/keyboards/kbdfans/maja/keyboard.json @@ -40,6 +40,75 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 4, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 46, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 7, "flags": 4}, + {"matrix": [0, 6], "x": 86, "y": 10, "flags": 4}, + {"matrix": [0, 7], "x": 107, "y": 9, "flags": 4}, + {"matrix": [0, 8], "x": 121, "y": 7, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 148, "y": 2, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 2, "flags": 4}, + {"matrix": [0, 13], "x": 196, "y": 2, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 5, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 23, "flags": 4}, + {"matrix": [1, 7], "x": 117, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 130, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 28, "flags": 4}, + {"matrix": [2, 1], "x": 23, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 31, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 150, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 164, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 177, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 29, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 27, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 43, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 46, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 82, "y": 51, "flags": 4}, + {"matrix": [3, 6], "x": 104, "y": 51, "flags": 4}, + {"matrix": [3, 7], "x": 118, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 131, "y": 46, "flags": 4}, + {"matrix": [3, 9], "x": 145, "y": 44, "flags": 4}, + {"matrix": [3, 10], "x": 159, "y": 43, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 43, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 43, "flags": 4}, + {"matrix": [3, 13], "x": 214, "y": 46, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 55, "flags": 4}, + {"matrix": [4, 2], "x": 40, "y": 58, "flags": 4}, + {"matrix": [4, 3], "x": 62, "y": 61, "flags": 4}, + {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 119, "y": 62, "flags": 4}, + {"matrix": [4, 9], "x": 147, "y": 58, "flags": 4}, + {"matrix": [4, 12], "x": 201, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 214, "y": 60, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 60, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c index cc073930bc..c1db8e606c 100755 --- a/keyboards/kbdfans/maja/maja.c +++ b/keyboards/kbdfans/maja/maja.c @@ -74,26 +74,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C8_16, C7_16, C6_16} // LD17 }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,}, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED}, - { 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, 63, NO_LED, NO_LED, 64, 65, 66} -}, { - {4,1},{18,1},{31,0},{46,3},{59,5},{73,7},{86,10},{107,9},{121,7},{134,4},{148,2},{162,0},{176,2},{196,2},{224,0}, - {5,15},{22,15},{37,15},{50,17},{64,20},{77,22},{103,23},{117,21},{130,19},{143,16},{158,15},{171,16},{186,16},{202,16},{224,16}, - {4,28},{23,28},{38,29},{51,31},{65,34},{78,36},{109,36},{122,34},{136,32},{150,29},{164,29},{177,29},{200,29},{224,29}, - {5,42},{27,42},{42,43},{55,46},{69,48},{82,51},{104,51},{118,48},{131,46},{145,44},{159,43},{173,43},{192,43},{214,46}, - {0,55},{40,58},{62,61},{86,64},{119,62},{147,58},{201,60},{214,60},{224,60} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 1, 4, 4, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/odin/rgb/keyboard.json b/keyboards/kbdfans/odin/rgb/keyboard.json index 1fb5a833ec..8e14e1210a 100644 --- a/keyboards/kbdfans/odin/rgb/keyboard.json +++ b/keyboards/kbdfans/odin/rgb/keyboard.json @@ -59,6 +59,112 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 16], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 17], "x": 204, "y": 0, "flags": 4}, + {"matrix": [0, 18], "x": 216, "y": 0, "flags": 4}, + {"matrix": [0, 19], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 19], "x": 224, "y": 14, "flags": 4}, + {"matrix": [1, 18], "x": 216, "y": 14, "flags": 4}, + {"matrix": [1, 17], "x": 204, "y": 14, "flags": 4}, + {"matrix": [1, 16], "x": 192, "y": 14, "flags": 4}, + {"matrix": [1, 15], "x": 180, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 156, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 14, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 14, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 14, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 14, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 14, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 14, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 14, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 27, "flags": 4}, + {"matrix": [2, 15], "x": 180, "y": 27, "flags": 4}, + {"matrix": [2, 16], "x": 192, "y": 27, "flags": 4}, + {"matrix": [2, 17], "x": 204, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 216, "y": 27, "flags": 4}, + {"matrix": [2, 19], "x": 224, "y": 33, "flags": 4}, + {"matrix": [3, 18], "x": 216, "y": 40, "flags": 4}, + {"matrix": [3, 17], "x": 204, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 192, "y": 40, "flags": 4}, + {"x": 224, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 4}, + {"x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 13], "x": 156, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 24, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 36, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 60, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 84, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 108, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 132, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 156, "y": 52, "flags": 4}, + {"matrix": [4, 15], "x": 180, "y": 52, "flags": 4}, + {"matrix": [4, 16], "x": 192, "y": 52, "flags": 4}, + {"matrix": [4, 17], "x": 204, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 216, "y": 52, "flags": 4}, + {"matrix": [4, 19], "x": 224, "y": 58, "flags": 4}, + {"matrix": [5, 18], "x": 216, "y": 64, "flags": 4}, + {"matrix": [5, 17], "x": 204, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 192, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 180, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 168, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 156, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 132, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 72, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 24, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/kbdfans/odin/rgb/rgb.c b/keyboards/kbdfans/odin/rgb/rgb.c index 2774ca7a6e..1cfe8d487c 100644 --- a/keyboards/kbdfans/odin/rgb/rgb.c +++ b/keyboards/kbdfans/odin/rgb/rgb.c @@ -16,31 +16,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }, - { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, NO_LED, 22, 21, 20, 19, 18 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53, 54, 55 }, - { 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, NO_LED, 63, NO_LED, NO_LED, 58, 57, 56, NO_LED }, - { 76, NO_LED, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, 87, NO_LED, 88, 89, 90, 91, 92 }, - { 103, 102, 101, NO_LED, NO_LED, NO_LED, 100, NO_LED, NO_LED, NO_LED, NO_LED, 99, NO_LED, 98, 97, 96, 95, 94, 93, NO_LED } - }, { - { 0, 0 }, { 24, 0 }, { 36, 0 }, { 48, 0 }, { 60, 0 }, { 84, 0 }, { 96, 0 }, { 108, 0 }, { 120, 0 }, { 132, 0 }, { 144, 0 }, { 156, 0 }, { 168, 0 }, { 180, 0 }, { 192, 0 }, { 204, 0 }, { 216, 0 }, { 224, 0 }, - { 224, 14 }, { 216, 14 }, { 204, 14 }, { 192, 14 }, { 180, 14 }, { 156, 14 }, { 144, 14 }, { 132, 14 }, { 120, 14 }, { 108, 14 }, { 96, 14 }, { 84, 14 }, { 72, 14 }, { 60, 14 }, { 48, 14 }, { 36, 14 }, { 24, 14 }, { 12, 14 }, { 0, 14 }, - { 0, 27 }, { 12, 27 }, { 24, 27 }, { 36, 27 }, { 48, 27 }, { 60, 27 }, { 72, 27 }, { 84, 27 }, { 96, 27 }, { 108, 27 }, { 120, 27 }, { 132, 27 }, { 144, 27 }, { 156, 27 }, { 180, 27 }, { 192, 27 }, { 204, 27 }, { 216, 27 }, { 224, 33 }, - { 216, 40 }, { 204, 40 }, { 192, 40 }, { 224, 0 }, { 0, 0 }, { 0, 64 }, { 224, 64 }, { 156, 40 }, { 132, 40 }, { 120, 40 }, { 108, 40 }, { 96, 40 }, { 84, 40 }, { 72, 40 }, { 60, 40 }, { 48, 40 }, { 36, 40 }, { 24, 40 }, { 12, 40 }, { 0, 40 }, - { 0, 52 }, { 24, 52 }, { 36, 52 }, { 48, 52 }, { 60, 52 }, { 72, 52 }, { 84, 52 }, { 96, 52 }, { 108, 52 }, { 120, 52 }, { 132, 52 }, { 156, 52 }, { 180, 52 }, { 192, 52 }, { 204, 52 }, { 216, 52 }, { 224, 58 }, - { 216, 64 }, { 204, 64 }, { 192, 64 }, { 180, 64 }, { 168, 64 }, { 156, 64 }, { 132, 64 }, { 72, 64 }, { 24, 64 }, { 12, 64 }, { 0, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdmania/kmac/matrix.c b/keyboards/kbdmania/kmac/matrix.c index ea149c49ad..60e63281ba 100644 --- a/keyboards/kbdmania/kmac/matrix.c +++ b/keyboards/kbdmania/kmac/matrix.c @@ -24,39 +24,48 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -static matrix_row_t matrix[MATRIX_ROWS]; // debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); +} -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} __attribute__((weak)) void matrix_init_user(void) {} __attribute__((weak)) void matrix_scan_user(void) {} -inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } +inline uint8_t matrix_rows(void) { + return MATRIX_ROWS; +} -inline uint8_t matrix_cols(void) { return MATRIX_COLS; } +inline uint8_t matrix_cols(void) { + return MATRIX_COLS; +} -inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } +inline bool matrix_is_on(uint8_t row, uint8_t col) { + return (matrix[row] & ((matrix_row_t)1 << col)); +} -inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) { print_matrix_header(); @@ -145,18 +154,18 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (row_index == 3 && current_col == 0) { if (gpio_read_pin(E2) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } } else { if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } else { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } } @@ -182,7 +191,7 @@ void matrix_init(void) { matrix[i] = 0; } - debounce_init(MATRIX_ROWS); + debounce_init(); matrix_init_kb(); } @@ -194,7 +203,7 @@ uint8_t matrix_scan(void) { changed |= read_rows_on_col(raw_matrix, current_col); } - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); matrix_scan_kb(); diff --git a/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md b/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md index fa1f3b2cbc..0bc0c86a99 100644 --- a/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md +++ b/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md @@ -22,4 +22,4 @@ ┌─────┬───┬─────┬───────────────────────────┬─────┐ │40 │41 │42 │46 │4B │ Tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/keaboard/readme.md b/keyboards/keaboard/readme.md index 71473211ed..9912ee4b8b 100644 --- a/keyboards/keaboard/readme.md +++ b/keyboards/keaboard/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Enter the bootloader by holding tapping reset button on the top edge of the board. \ No newline at end of file +Enter the bootloader by holding tapping reset button on the top edge of the board. diff --git a/keyboards/keebfront/vanguard65/readme.md b/keyboards/keebfront/vanguard65/readme.md index d054271bb3..b7091c9ea0 100644 --- a/keyboards/keebfront/vanguard65/readme.md +++ b/keyboards/keebfront/vanguard65/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 2 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available ## Matrix Diagram -![MatrixCoordinates](https://i.imgur.com/rQfEXyeh.jpeg) \ No newline at end of file +![MatrixCoordinates](https://i.imgur.com/rQfEXyeh.jpeg) diff --git a/keyboards/keebio/bamfk4/bamfk4.c b/keyboards/keebio/bamfk4/bamfk4.c deleted file mode 100644 index 757bc03f72..0000000000 --- a/keyboards/keebio/bamfk4/bamfk4.c +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2022 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, NO_LED }, -}, { - // LED Index to Physical Position - //through switch - { 26, 10 }, { 4, 10 }, { 3, 49 }, { 23, 49 }, - { 69, 49 }, { 68, 10 }, { 90, 10 }, { 89, 49 }, - { 134, 49 }, { 132, 10 }, { 155, 10 }, { 155, 49 }, - { 199, 49 }, { 199, 10 }, { 219, 10 }, { 219, 49 }, - - //underglow - { 218, 62 }, { 188, 62 }, { 159, 62 }, { 123, 62 }, //bottom right - { 100, 62 }, { 59, 62 }, { 35, 62 }, { 5, 62 }, //bottom left - { 6, 6 }, { 35, 6 }, { 59, 6 }, { 100, 6 }, //top left - { 123, 6 }, { 159, 6 }, { 188, 6 }, { 218, 6 } //top right -}, { - // LED Index to Flag - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, - 2, 2, 2, 2, - 2, 2, 2, 2, - 2, 2, 2, 2 -} }; - - - -#endif \ No newline at end of file diff --git a/keyboards/keebio/bamfk4/config.h b/keyboards/keebio/bamfk4/config.h index e97e28f5a9..832d0afd67 100644 --- a/keyboards/keebio/bamfk4/config.h +++ b/keyboards/keebio/bamfk4/config.h @@ -4,19 +4,3 @@ #pragma once #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/keebio/bamfk4/keyboard.json b/keyboards/keebio/bamfk4/keyboard.json index 08b3900766..98ea684637 100644 --- a/keyboards/keebio/bamfk4/keyboard.json +++ b/keyboards/keebio/bamfk4/keyboard.json @@ -50,6 +50,40 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 26, "y": 10, "flags": 4}, + {"x": 4, "y": 10, "flags": 4}, + {"x": 3, "y": 49, "flags": 4}, + {"x": 23, "y": 49, "flags": 4}, + {"x": 69, "y": 49, "flags": 4}, + {"x": 68, "y": 10, "flags": 4}, + {"x": 90, "y": 10, "flags": 4}, + {"x": 89, "y": 49, "flags": 4}, + {"x": 134, "y": 49, "flags": 4}, + {"x": 132, "y": 10, "flags": 4}, + {"x": 155, "y": 10, "flags": 4}, + {"x": 155, "y": 49, "flags": 4}, + {"x": 199, "y": 49, "flags": 4}, + {"x": 199, "y": 10, "flags": 4}, + {"x": 219, "y": 10, "flags": 4}, + {"x": 219, "y": 49, "flags": 4}, + {"x": 218, "y": 62, "flags": 2}, + {"x": 188, "y": 62, "flags": 2}, + {"x": 159, "y": 62, "flags": 2}, + {"x": 123, "y": 62, "flags": 2}, + {"x": 100, "y": 62, "flags": 2}, + {"x": 59, "y": 62, "flags": 2}, + {"x": 35, "y": 62, "flags": 2}, + {"x": 5, "y": 62, "flags": 2}, + {"x": 6, "y": 6, "flags": 2}, + {"x": 35, "y": 6, "flags": 2}, + {"x": 59, "y": 6, "flags": 2}, + {"x": 100, "y": 6, "flags": 2}, + {"x": 123, "y": 6, "flags": 2}, + {"x": 159, "y": 6, "flags": 2}, + {"x": 188, "y": 6, "flags": 2}, + {"x": 218, "y": 6, "flags": 2} + ], "max_brightness": 160, "sleep": true }, diff --git a/keyboards/keebio/bamfk4/keymaps/default/keymap.c b/keyboards/keebio/bamfk4/keymaps/default/keymap.c index 960c436da3..98144676b1 100644 --- a/keyboards/keebio/bamfk4/keymaps/default/keymap.c +++ b/keyboards/keebio/bamfk4/keymaps/default/keymap.c @@ -15,4 +15,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_C, KC_D ) -}; \ No newline at end of file +}; diff --git a/keyboards/keebio/bdn9/keymaps/test/config.h b/keyboards/keebio/bdn9/keymaps/test/config.h deleted file mode 100644 index e09fba9232..0000000000 --- a/keyboards/keebio/bdn9/keymaps/test/config.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES -#endif diff --git a/keyboards/keebio/bdn9/rev1/config.h b/keyboards/keebio/bdn9/rev1/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/bdn9/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/bdn9/rev1/keyboard.json b/keyboards/keebio/bdn9/rev1/keyboard.json index 5c677db78d..8130b115f9 100644 --- a/keyboards/keebio/bdn9/rev1/keyboard.json +++ b/keyboards/keebio/bdn9/rev1/keyboard.json @@ -12,6 +12,9 @@ ] }, "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7 }, diff --git a/keyboards/keebio/bdn9/rev1/rev1.c b/keyboards/keebio/bdn9/rev1/rev1.c index 567de03af4..fe3defa156 100644 --- a/keyboards/keebio/bdn9/rev1/rev1.c +++ b/keyboards/keebio/bdn9/rev1/rev1.c @@ -1,22 +1,8 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/bdn9/rev2/config.h b/keyboards/keebio/bdn9/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/bdn9/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/bdn9/rev2/keyboard.json b/keyboards/keebio/bdn9/rev2/keyboard.json index a8a0c8d10d..ee1787e169 100644 --- a/keyboards/keebio/bdn9/rev2/keyboard.json +++ b/keyboards/keebio/bdn9/rev2/keyboard.json @@ -71,7 +71,20 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2} + ] }, "encoder": { "rotary": [ diff --git a/keyboards/keebio/bdn9/rev2/rev2.c b/keyboards/keebio/bdn9/rev2/rev2.c index 5c6d940325..fe3defa156 100644 --- a/keyboards/keebio/bdn9/rev2/rev2.c +++ b/keyboards/keebio/bdn9/rev2/rev2.c @@ -1,43 +1,8 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2 }, - { 3, 4, 5 }, - { 6, 7, 8 } -}, { - // LED Index to Physical Position - { 0, 0 }, { 112, 0 }, { 224, 0 }, - { 0, 32 }, { 112, 32 }, { 224, 32 }, - { 0, 64 }, { 112, 64 }, { 224, 64 }, - { 56, 64 }, { 168, 64 }, -}, { - // LED Index to Flag - 4, 4, 4, - 4, 4, 4, - 4, 4, 4, - 2, 2 -} }; -#endif - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -# endif -#endif - -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); // Enable RGB by default -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/bdn9/rev3/config.h b/keyboards/keebio/bdn9/rev3/config.h index 3afa37bce1..98f261b801 100644 --- a/keyboards/keebio/bdn9/rev3/config.h +++ b/keyboards/keebio/bdn9/rev3/config.h @@ -4,11 +4,9 @@ #pragma once /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD15 -# define WS2812_PWM_CHANNEL 2 -# define WS2812_PWM_PAL_MODE 1 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP -#endif +#define WS2812_PWM_DRIVER PWMD15 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP diff --git a/keyboards/keebio/bfo9000/keymaps/default/config.h b/keyboards/keebio/bfo9000/keymaps/default/config.h deleted file mode 100644 index a9ae679110..0000000000 --- a/keyboards/keebio/bfo9000/keymaps/default/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -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 USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/keebio/bfo9000/keymaps/default/keymap.c b/keyboards/keebio/bfo9000/keymaps/default/keymap.c index f37ea79c40..0d28c3c5c2 100644 --- a/keyboards/keebio/bfo9000/keymaps/default/keymap.c +++ b/keyboards/keebio/bfo9000/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _BASE 0 diff --git a/keyboards/keebio/bfo9000/readme.md b/keyboards/keebio/bfo9000/readme.md index 059f2800a2..3fa6239680 100644 --- a/keyboards/keebio/bfo9000/readme.md +++ b/keyboards/keebio/bfo9000/readme.md @@ -1,11 +1,10 @@ -BFO-9000 -======== +# BFO-9000 A split full-size ortholinear keyboard made and sold by Keebio. Each half is a 6x9 arrangement, with breakable pieces to allow the number of rows to be customized between 4 to 6, and the number of columns to be between 7 to 9. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,6 +12,6 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/bfo9000:default:avrdude + make keebio/bfo9000:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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/keebio/bigswitchseat/keymaps/default/keymap.c b/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c index 6d4378b995..a48f4f9165 100644 --- a/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c +++ b/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c @@ -5,23 +5,11 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - _MAIN, - _FN1, - _FN2, - _FN3 + _MAIN }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( KC_A - ), - [_FN1] = LAYOUT( - _______ - ), - [_FN2] = LAYOUT( - _______ - ), - [_FN3] = LAYOUT( - _______ ) }; diff --git a/keyboards/keebio/chiri_ce/rev1/config.h b/keyboards/keebio/chiri_ce/rev1/config.h index b1eb9da4e9..e9d9934301 100644 --- a/keyboards/keebio/chiri_ce/rev1/config.h +++ b/keyboards/keebio/chiri_ce/rev1/config.h @@ -3,14 +3,16 @@ #pragma once -#define SPLIT_HAND_PIN GP4 #define USB_VBUS_PIN GP0 + #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP12 #define SERIAL_USART_RX_PIN GP13 #define SERIAL_USART_PIN_SWAP + #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + #define I2C_DRIVER I2CD2 #define I2C1_SDA_PIN GP10 #define I2C1_SCL_PIN GP11 diff --git a/keyboards/keebio/chiri_ce/rev1/keyboard.json b/keyboards/keebio/chiri_ce/rev1/keyboard.json index 9cf7f51654..aea1fb1d6f 100644 --- a/keyboards/keebio/chiri_ce/rev1/keyboard.json +++ b/keyboards/keebio/chiri_ce/rev1/keyboard.json @@ -118,6 +118,9 @@ "matrix": [4, 0] }, "enabled": true, + "handedness": { + "pin": "GP4" + }, "matrix_pins": { "right": { "cols": ["GP29", "GP28", "GP2", "GP27", "GP18", "GP7"], diff --git a/keyboards/keebio/chocopad/readme.md b/keyboards/keebio/chocopad/readme.md index 67c875d923..9a6e62178f 100644 --- a/keyboards/keebio/chocopad/readme.md +++ b/keyboards/keebio/chocopad/readme.md @@ -1,14 +1,17 @@ -Chocopad -======== +# Chocopad A 4x4 macropad keyboard using Kailh PG1350 Lower Profile Choc switches. -Keyboard Maintainer: Keebio -Hardware Supported: Chocopad PCB, Arduino Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: Keebio +* Hardware Supported: Chocopad PCB, Arduino Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/chocopad/rev1:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Example of flashing this keyboard: + + make keebio/chocopad/rev1: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/keebio/chocopad/rev1/config.h b/keyboards/keebio/chocopad/rev1/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/chocopad/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/chocopad/rev1/keyboard.json b/keyboards/keebio/chocopad/rev1/keyboard.json index fafea9dce0..06dbbf0bc6 100644 --- a/keyboards/keebio/chocopad/rev1/keyboard.json +++ b/keyboards/keebio/chocopad/rev1/keyboard.json @@ -17,6 +17,9 @@ "rgblight": true }, "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 6 }, diff --git a/keyboards/keebio/chocopad/rev1/rev1.c b/keyboards/keebio/chocopad/rev1/rev1.c deleted file mode 100644 index e362bb3483..0000000000 --- a/keyboards/keebio/chocopad/rev1/rev1.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 Danny Nguyen (danny@keeb.io) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_MODE_EFFECT_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/convolution/readme.md b/keyboards/keebio/convolution/readme.md index c1bc8ae3d8..cb7d7c35db 100644 --- a/keyboards/keebio/convolution/readme.md +++ b/keyboards/keebio/convolution/readme.md @@ -13,6 +13,6 @@ Example of flashing this keyboard: make keebio/convolution/rev1:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/demod_lm/info.json b/keyboards/keebio/demod_lm/info.json new file mode 100644 index 0000000000..64fa5a05ca --- /dev/null +++ b/keyboards/keebio/demod_lm/info.json @@ -0,0 +1,8 @@ +{ + "manufacturer": "Keebio", + "maintainer": "Keebio", + "url": "https://keeb.io", + "usb": { + "vid": "0xCB10" + } +} diff --git a/keyboards/keebio/demod_lm/keymaps/default/keymap.json b/keyboards/keebio/demod_lm/keymaps/default/keymap.json new file mode 100644 index 0000000000..9115271b3d --- /dev/null +++ b/keyboards/keebio/demod_lm/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "keyboard": "keebio/demod_lm/rev1", + "keymap": "default", + "layout": "LAYOUT_numpad_5x4", + "layers": [ + ["RM_NEXT", "KC_PSLS", "KC_PAST", "KC_PMNS", + "KC_P7", "KC_P8", "KC_P9", + "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", + "KC_P1", "KC_P2", "KC_P3", + "KC_P0", "KC_PDOT", "KC_PENT" ] + ] +} diff --git a/keyboards/keebio/demod_lm/readme.md b/keyboards/keebio/demod_lm/readme.md new file mode 100644 index 0000000000..c9233d0961 --- /dev/null +++ b/keyboards/keebio/demod_lm/readme.md @@ -0,0 +1,24 @@ +# Demod LM + +A low-profile number pad and sold by Keebio. [More info at Keebio](https://keeb.io). + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Demod LM PCB with STM32G431 microcontroller +* Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make keebio/demod_lm/rev1:default + +Example of flashing this keyboard: + + make keebio/demod_lm/rev1: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 one of two ways: + +* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/demod_lm/rev1/config.h b/keyboards/keebio/demod_lm/rev1/config.h new file mode 100644 index 0000000000..fae0576081 --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/config.h @@ -0,0 +1,12 @@ +// Copyright 2025 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Defines for the RGB matrix */ +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/demod_lm/rev1/halconf.h b/keyboards/keebio/demod_lm/rev1/halconf.h new file mode 100644 index 0000000000..0249d61fea --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/keebio/demod_lm/rev1/keyboard.json b/keyboards/keebio/demod_lm/rev1/keyboard.json new file mode 100644 index 0000000000..ac35998852 --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/keyboard.json @@ -0,0 +1,117 @@ +{ + "keyboard_name": "Demod LM Rev. 1", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A1", "A0", "B3", "B6"], + "rows": ["A15", "F0", "B4", "B5", "F1"] + }, + "processor": "STM32G431", + "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": 88, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 104, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 136, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 136, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 88, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 88, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 104, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 120, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 104, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 88, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 120, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 136, "y": 56, "flags": 4} + ], + "max_brightness": 200, + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x1654" + }, + "ws2812": { + "driver": "pwm", + "pin": "B0" + }, + "community_layouts": ["numpad_5x4"], + "layouts": { + "LAYOUT_numpad_5x4": { + "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": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [1, 3], "x": 3, "y": 1, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [3, 3], "x": 3, "y": 3, "h": 2} + ] + } + } +} diff --git a/keyboards/keebio/demod_lm/rev1/mcuconf.h b/keyboards/keebio/demod_lm/rev1/mcuconf.h new file mode 100644 index 0000000000..a864dab31e --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2024 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +/* enable TIM3, used for RGB LED PWM driver */ +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/demod_lm/rev1/rev1.c b/keyboards/keebio/demod_lm/rev1/rev1.c new file mode 100644 index 0000000000..7843a900a3 --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/rev1.c @@ -0,0 +1,11 @@ +// Copyright 2024 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) + keyboard_pre_init_user(); +} diff --git a/keyboards/keebio/dilly/config.h b/keyboards/keebio/dilly/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/dilly/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/dilly/dilly.c b/keyboards/keebio/dilly/dilly.c deleted file mode 100644 index 231a828f07..0000000000 --- a/keyboards/keebio/dilly/dilly.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/dilly/keymaps/default/keymap.c b/keyboards/keebio/dilly/keymaps/default/keymap.c index 71a92037b6..9cef52ae4e 100644 --- a/keyboards/keebio/dilly/keymaps/default/keymap.c +++ b/keyboards/keebio/dilly/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H #define _BASE 0 #define _FN1 1 diff --git a/keyboards/keebio/dilly/readme.md b/keyboards/keebio/dilly/readme.md index 74139eaeae..e4b6e418a3 100644 --- a/keyboards/keebio/dilly/readme.md +++ b/keyboards/keebio/dilly/readme.md @@ -1,14 +1,17 @@ -Dilly -===== +# Dilly A 3x10 ortholinear keyboard using Kailh PG1350 Lower Profile Choc switches. -Keyboard Maintainer: Keebio -Hardware Supported: Dilly PCB, Arduino Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: Keebio +* Hardware Supported: Dilly PCB, Arduino Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/dilly:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Example of flashing this keyboard: + + make keebio/dilly: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/keebio/dsp40/keymaps/default/keymap.c b/keyboards/keebio/dsp40/keymaps/default/keymap.c index e8d3627ff2..c1496844bb 100755 --- a/keyboards/keebio/dsp40/keymaps/default/keymap.c +++ b/keyboards/keebio/dsp40/keymaps/default/keymap.c @@ -24,8 +24,7 @@ enum custom_layer { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST, }; diff --git a/keyboards/keebio/dsp40/readme.md b/keyboards/keebio/dsp40/readme.md index c6b195c404..1a37587313 100644 --- a/keyboards/keebio/dsp40/readme.md +++ b/keyboards/keebio/dsp40/readme.md @@ -10,4 +10,8 @@ Make example for this keyboard (after setting up your build environment): make keebio/dsp40/rev1:default +Example of flashing this keyboard: + + make keebio/dsp40/rev1: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/keebio/dsp40/rev1/keyboard.json b/keyboards/keebio/dsp40/rev1/keyboard.json index 776f67837c..2553e12c2b 100644 --- a/keyboards/keebio/dsp40/rev1/keyboard.json +++ b/keyboards/keebio/dsp40/rev1/keyboard.json @@ -26,6 +26,9 @@ } }, "backlight": { + "default": { + "brightness": 5 + }, "pin": "A6", "levels": 7 }, diff --git a/keyboards/keebio/dsp40/rev1/readme.md b/keyboards/keebio/dsp40/rev1/readme.md index ee62ba7886..8852ef5501 100644 --- a/keyboards/keebio/dsp40/rev1/readme.md +++ b/keyboards/keebio/dsp40/rev1/readme.md @@ -10,4 +10,8 @@ Make example for this keyboard (after setting up your build environment): make keebio/dsp40/rev1:default +Example of flashing this keyboard: + + make keebio/dsp40/rev1: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/keebio/dsp40/rev1/rev1.c b/keyboards/keebio/dsp40/rev1/rev1.c deleted file mode 100644 index 091cfc1523..0000000000 --- a/keyboards/keebio/dsp40/rev1/rev1.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2021 Danny Nguyen - -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 "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/ergodicity/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/ergodicity/ergodicity.c b/keyboards/keebio/ergodicity/ergodicity.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/ergodicity/ergodicity.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/ergodicity/keyboard.json b/keyboards/keebio/ergodicity/keyboard.json index 6f755ba45c..504edf3b56 100644 --- a/keyboards/keebio/ergodicity/keyboard.json +++ b/keyboards/keebio/ergodicity/keyboard.json @@ -29,6 +29,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7, "breathing": true diff --git a/keyboards/keebio/ergodicity/readme.md b/keyboards/keebio/ergodicity/readme.md index 61f4ee658c..3fe77848e3 100644 --- a/keyboards/keebio/ergodicity/readme.md +++ b/keyboards/keebio/ergodicity/readme.md @@ -1,11 +1,15 @@ # Ergodicity -Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) -Hardware Supported: Ergodicity PCB w/ATmega32u4 -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) +* Hardware Supported: Ergodicity PCB w/ATmega32u4 +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): - make keebio/ergodicity:default:dfu + make keebio/ergodicity:default + +Example of flashing this keyboard: + + make keebio/ergodicity: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/keebio/foldkb/rev1/rev1.c b/keyboards/keebio/foldkb/rev1/rev1.c index c2ba942a30..33915a0efe 100644 --- a/keyboards/keebio/foldkb/rev1/rev1.c +++ b/keyboards/keebio/foldkb/rev1/rev1.c @@ -16,15 +16,6 @@ along with this program. If not, see . #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/foldkb/rev2/keyboard.json b/keyboards/keebio/foldkb/rev2/keyboard.json index 19dd601c86..58e69e085d 100644 --- a/keyboards/keebio/foldkb/rev2/keyboard.json +++ b/keyboards/keebio/foldkb/rev2/keyboard.json @@ -153,7 +153,7 @@ }, "split": { "bootmagic": { - "matrix": [5, 8] + "matrix": [5, 7] }, "enabled": true, "handedness": { diff --git a/keyboards/keebio/foldkb/rev2_1/config.h b/keyboards/keebio/foldkb/rev2_1/config.h new file mode 100644 index 0000000000..d28027392d --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/config.h @@ -0,0 +1,17 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Defines for the split keyboard setup */ +#define SERIAL_USART_TX_PIN A9 +#define SERIAL_USART_RX_PIN A10 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_PIN_SWAP + +#define USB_VBUS_PIN A7 + +/* Defines for the RGB matrix */ +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/foldkb/rev2_1/halconf.h b/keyboards/keebio/foldkb/rev2_1/halconf.h new file mode 100644 index 0000000000..ce1dfd06d7 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SERIAL TRUE + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/keebio/foldkb/rev2_1/keyboard.json b/keyboards/keebio/foldkb/rev2_1/keyboard.json new file mode 100644 index 0000000000..fc2eafe431 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/keyboard.json @@ -0,0 +1,279 @@ +{ + "keyboard_name": "FoldKB Rev. 2.1", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A4", "pin_b": "A3"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A6", "A15", "B3", "B4", "B5", "B6", "B7", "F0"], + "rows": ["A5", "A0", "A1", "A2", "F1"] + }, + "processor": "STM32G431", + "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, + "flower_blooming": 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, + "riverflow": 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, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "starlight_smooth": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 100, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 100, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 72, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 22, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 40, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 72, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 100, "y": 64, "flags": 4}, + {"x": 93, "y": 48, "flags": 2}, + {"x": 65, "y": 64, "flags": 2}, + {"x": 31, "y": 64, "flags": 2}, + {"x": 10, "y": 64, "flags": 2}, + {"x": 0, "y": 24, "flags": 2}, + {"x": 24, "y": 0, "flags": 2}, + {"x": 65, "y": 0, "flags": 2}, + {"x": 90, "y": 8, "flags": 2}, + {"matrix": [5, 7], "x": 221, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 207, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 193, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 179, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 165, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 152, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 138, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 124, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 124, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 138, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 152, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 165, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 179, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 193, "y": 16, "flags": 4}, + {"matrix": [6, 6], "x": 207, "y": 16, "flags": 4}, + {"matrix": [6, 7], "x": 224, "y": 16, "flags": 4}, + {"matrix": [7, 7], "x": 215, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 193, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 179, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 165, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 152, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 138, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 124, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 124, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 138, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 152, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 165, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 179, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 198, "y": 48, "flags": 4}, + {"matrix": [8, 7], "x": 217, "y": 48, "flags": 4}, + {"matrix": [9, 7], "x": 215, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 198, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 181, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 164, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 145, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 136, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 126, "y": 64, "flags": 4}, + {"x": 121, "y": 56, "flags": 2}, + {"x": 152, "y": 64, "flags": 2}, + {"x": 207, "y": 64, "flags": 2}, + {"x": 224, "y": 52, "flags": 2}, + {"x": 224, "y": 12, "flags": 2}, + {"x": 196, "y": 0, "flags": 2}, + {"x": 159, "y": 0, "flags": 2}, + {"x": 124, "y": 8, "flags": 2} + ], + "max_brightness": 120, + "sleep": true, + "split_count": [44, 45] + }, + "split": { + "bootmagic": { + "matrix": [5, 7] + }, + "enabled": true, + "handedness": { + "pin": "A8" + }, + "matrix_pins": { + "right": { + "cols": ["A6", "A5", "A4", "A3", "A2", "B5", "B6", "B7"], + "rows": ["A15", "B3", "B4", "A0", "A1"] + } + }, + "serial": { + "driver": "usart" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "device_version": "2.0.0", + "pid": "0x2358" + }, + "ws2812": { + "driver": "pwm", + "pin": "B0" + }, + "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": [5, 0], "x": 9, "y": 0}, + {"matrix": [5, 1], "x": 10, "y": 0}, + {"matrix": [5, 2], "x": 11, "y": 0}, + {"matrix": [5, 3], "x": 12, "y": 0}, + {"matrix": [5, 4], "x": 13, "y": 0}, + {"matrix": [5, 5], "x": 14, "y": 0}, + {"matrix": [5, 6], "x": 15, "y": 0}, + {"matrix": [5, 7], "x": 16, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 2], "x": 1.75, "y": 1, "w": 1.5}, + {"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": [6, 0], "x": 9, "y": 1}, + {"matrix": [6, 1], "x": 10, "y": 1}, + {"matrix": [6, 2], "x": 11, "y": 1}, + {"matrix": [6, 3], "x": 12, "y": 1}, + {"matrix": [6, 4], "x": 13, "y": 1}, + {"matrix": [6, 5], "x": 14, "y": 1}, + {"matrix": [6, 6], "x": 15, "y": 1}, + {"matrix": [6, 7], "x": 16, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 2], "x": 1.5, "y": 2, "w": 1.75}, + {"matrix": [2, 3], "x": 3.25, "y": 2}, + {"matrix": [2, 4], "x": 4.25, "y": 2}, + {"matrix": [2, 5], "x": 5.25, "y": 2}, + {"matrix": [2, 6], "x": 6.25, "y": 2}, + {"matrix": [2, 7], "x": 7.25, "y": 2}, + {"matrix": [7, 0], "x": 9, "y": 2}, + {"matrix": [7, 1], "x": 10, "y": 2}, + {"matrix": [7, 2], "x": 11, "y": 2}, + {"matrix": [7, 3], "x": 12, "y": 2}, + {"matrix": [7, 4], "x": 13, "y": 2}, + {"matrix": [7, 5], "x": 14, "y": 2}, + {"matrix": [7, 7], "x": 15, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 2], "x": 1, "y": 3, "w": 2.25}, + {"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": [8, 0], "x": 9, "y": 3}, + {"matrix": [8, 1], "x": 10, "y": 3}, + {"matrix": [8, 2], "x": 11, "y": 3}, + {"matrix": [8, 3], "x": 12, "y": 3}, + {"matrix": [8, 4], "x": 13, "y": 3}, + {"matrix": [8, 5], "x": 14, "y": 3, "w": 1.75}, + {"matrix": [8, 7], "x": 15.75, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4, "y": 4, "w": 1.25}, + {"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": [9, 0], "x": 9, "y": 4, "w": 1.25}, + {"matrix": [9, 1], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [9, 4], "x": 13, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 14.25, "y": 4, "w": 1.25}, + {"matrix": [9, 7], "x": 15.5, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c b/keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c new file mode 100644 index 0000000000..bf3f325446 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, KC_ESC, 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_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, MO(1), + KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT( + KC_MUTE, QK_BOOT, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_DEL, + RM_TOGG, _______, RM_SATD, RM_SATU, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, + RM_NEXT, _______, RM_VALD, RM_VALU, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, + KC_VOLU, _______, RM_HUED, RM_HUEU, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, + KC_VOLD, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, KC_0, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/keebio/foldkb/rev2_1/mcuconf.h b/keyboards/keebio/foldkb/rev2_1/mcuconf.h new file mode 100644 index 0000000000..77847f5b2c --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +/* enable USART1, used for split comms */ +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE + +/* enable TIM3, used for RGB LED PWM driver */ +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/foldkb/rev2_1/rev2_1.c b/keyboards/keebio/foldkb/rev2_1/rev2_1.c new file mode 100644 index 0000000000..0fc47b1483 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/rev2_1.c @@ -0,0 +1,29 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Disable the PD peripheral in pre-init because its pins are being used in the matrix: + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) + keyboard_pre_init_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} diff --git a/keyboards/keebio/fourier/keymaps/default/keymap.c b/keyboards/keebio/fourier/keymaps/default/keymap.c index 6fa9ab5799..0c8e1168af 100644 --- a/keyboards/keebio/fourier/keymaps/default/keymap.c +++ b/keyboards/keebio/fourier/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -8,10 +11,6 @@ #define _FN1 1 #define _FN2 2 -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - #define KC_FN1 MO(_FN1) #define KC_FN2 MO(_FN2) #define SPFN1 LT(_FN1, KC_SPACE) diff --git a/keyboards/keebio/fourier/readme.md b/keyboards/keebio/fourier/readme.md index c18d1a7484..d3d0f81f1e 100644 --- a/keyboards/keebio/fourier/readme.md +++ b/keyboards/keebio/fourier/readme.md @@ -1,11 +1,10 @@ -Fourier -======== +# Fourier A split 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io/collections/frontpage/products/fourier-40-split-staggered-keyboard) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io/collections/frontpage/products/fourier-40-split-staggered-keyboard) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/fourier:default:avrdude + make keebio/fourier:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/iris/readme.md b/keyboards/keebio/iris/readme.md index e98f985394..d1d498c67e 100644 --- a/keyboards/keebio/iris/readme.md +++ b/keyboards/keebio/iris/readme.md @@ -1,11 +1,10 @@ -Iris -==== +# Iris A split ergo 4x6 keyboard with 3 or 4 thumb keys made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro, ATmega32u4 -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro, ATmega32u4 +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/keebio/iris/rev1/rev1.c b/keyboards/keebio/iris/rev1/rev1.c index e05b758a44..ea8029f47c 100644 --- a/keyboards/keebio/iris/rev1/rev1.c +++ b/keyboards/keebio/iris/rev1/rev1.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/keebio/iris/rev1_led/rev1_led.c b/keyboards/keebio/iris/rev1_led/rev1_led.c index e05b758a44..ea8029f47c 100644 --- a/keyboards/keebio/iris/rev1_led/rev1_led.c +++ b/keyboards/keebio/iris/rev1_led/rev1_led.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/keebio/iris/rev2/config.h b/keyboards/keebio/iris/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/iris/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev2/keyboard.json b/keyboards/keebio/iris/rev2/keyboard.json index 9ea21851ee..23023fa3db 100644 --- a/keyboards/keebio/iris/rev2/keyboard.json +++ b/keyboards/keebio/iris/rev2/keyboard.json @@ -10,6 +10,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 3 + }, "pin": "B5", "levels": 5 }, diff --git a/keyboards/keebio/iris/rev2/rev2.c b/keyboards/keebio/iris/rev2/rev2.c index 87d4b4029d..45c8d90361 100644 --- a/keyboards/keebio/iris/rev2/rev2.c +++ b/keyboards/keebio/iris/rev2/rev2.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE @@ -18,20 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}}, }; #endif - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/iris/rev3/config.h b/keyboards/keebio/iris/rev3/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/iris/rev3/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev3/keyboard.json b/keyboards/keebio/iris/rev3/keyboard.json index f7b3f894fe..68805c27f8 100644 --- a/keyboards/keebio/iris/rev3/keyboard.json +++ b/keyboards/keebio/iris/rev3/keyboard.json @@ -15,6 +15,9 @@ ] }, "backlight": { + "default": { + "brightness": 3 + }, "pin": "B6", "levels": 5 }, diff --git a/keyboards/keebio/iris/rev3/rev3.c b/keyboards/keebio/iris/rev3/rev3.c index 8b12388cac..0f7f5a7f75 100644 --- a/keyboards/keebio/iris/rev3/rev3.c +++ b/keyboards/keebio/iris/rev3/rev3.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE @@ -22,23 +25,6 @@ const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; # endif #endif -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/iris/rev4/config.h b/keyboards/keebio/iris/rev4/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/iris/rev4/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev4/keyboard.json b/keyboards/keebio/iris/rev4/keyboard.json index 3acd3d0a14..dc5392d91f 100644 --- a/keyboards/keebio/iris/rev4/keyboard.json +++ b/keyboards/keebio/iris/rev4/keyboard.json @@ -15,6 +15,9 @@ ] }, "backlight": { + "default": { + "brightness": 3 + }, "pin": "B5", "levels": 5 }, diff --git a/keyboards/keebio/iris/rev4/rev4.c b/keyboards/keebio/iris/rev4/rev4.c index 04a2241966..03a25c3395 100644 --- a/keyboards/keebio/iris/rev4/rev4.c +++ b/keyboards/keebio/iris/rev4/rev4.c @@ -1,22 +1,8 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/iris/rev6/keyboard.json b/keyboards/keebio/iris/rev6/keyboard.json index ef240c5ab9..910c4b35ce 100644 --- a/keyboards/keebio/iris/rev6/keyboard.json +++ b/keyboards/keebio/iris/rev6/keyboard.json @@ -43,6 +43,76 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 45, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4}, + {"matrix": [4, 2], "x": 56, "y": 47, "flags": 4}, + {"matrix": [4, 3], "x": 72, "y": 58, "flags": 4}, + {"matrix": [4, 4], "x": 90, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 52, "flags": 4}, + {"x": 80, "y": 58, "flags": 2}, + {"x": 40, "y": 50, "flags": 2}, + {"x": 8, "y": 43, "flags": 2}, + {"x": 8, "y": 5, "flags": 2}, + {"x": 40, "y": 1, "flags": 2}, + {"x": 72, "y": 3, "flags": 2}, + {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 2, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 3, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 18, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 18, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 15, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 13, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 17, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 28, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 27, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 28, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 30, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 45, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 42, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 40, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 43, "flags": 4}, + {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4}, + {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4}, + {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 126, "y": 52, "flags": 4}, + {"x": 144, "y": 58, "flags": 2}, + {"x": 184, "y": 50, "flags": 2}, + {"x": 216, "y": 43, "flags": 2}, + {"x": 216, "y": 5, "flags": 2}, + {"x": 184, "y": 1, "flags": 2}, + {"x": 152, "y": 3, "flags": 2} + ], "max_brightness": 160, "sleep": true, "split_count": [34, 34] diff --git a/keyboards/keebio/iris/rev6/rev6.c b/keyboards/keebio/iris/rev6/rev6.c index 3d9e18fd01..1547a0a6e8 100644 --- a/keyboards/keebio/iris/rev6/rev6.c +++ b/keyboards/keebio/iris/rev6/rev6.c @@ -13,57 +13,6 @@ along with this program. If not, see . */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - // Left Half - { 0, 1, 2, 3, 4, 5 }, - { 11, 10, 9, 8, 7, 6 }, - { 12, 13, 14, 15, 16, 17 }, - { 23, 22, 21, 20, 19, 18 }, - { NO_LED, NO_LED, 24, 25, 26, 27 }, - // Right Half - { 34, 35, 36, 37, 38, 39 }, - { 45, 44, 43, 42, 41, 40 }, - { 46, 47, 48, 49, 50, 51 }, - { 57, 56, 55, 54, 53, 52 }, - { NO_LED, NO_LED, 58, 59, 60, 61 } -}, { - // LED Index to Physical Position - // Left Half - { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 }, - { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 }, - { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 }, - { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 }, - { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 }, - { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 }, - // Right Half - { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 }, - { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 }, - { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 }, - { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 }, - { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 }, - { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 } -}, { - // LED Index to Flag - // Left Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, - // Right Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2 - -} }; -#endif - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/iris/rev7/keyboard.json b/keyboards/keebio/iris/rev7/keyboard.json index 79b410cd94..7b58990d18 100644 --- a/keyboards/keebio/iris/rev7/keyboard.json +++ b/keyboards/keebio/iris/rev7/keyboard.json @@ -41,6 +41,76 @@ "multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 45, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4}, + {"matrix": [4, 2], "x": 56, "y": 47, "flags": 4}, + {"matrix": [4, 3], "x": 72, "y": 58, "flags": 4}, + {"matrix": [4, 4], "x": 90, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 52, "flags": 4}, + {"x": 80, "y": 58, "flags": 2}, + {"x": 40, "y": 50, "flags": 2}, + {"x": 8, "y": 43, "flags": 2}, + {"x": 8, "y": 5, "flags": 2}, + {"x": 40, "y": 1, "flags": 2}, + {"x": 72, "y": 3, "flags": 2}, + {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 2, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 3, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 18, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 18, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 15, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 13, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 17, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 28, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 27, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 28, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 30, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 45, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 42, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 40, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 43, "flags": 4}, + {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4}, + {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4}, + {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 126, "y": 52, "flags": 4}, + {"x": 144, "y": 58, "flags": 2}, + {"x": 184, "y": 50, "flags": 2}, + {"x": 216, "y": 43, "flags": 2}, + {"x": 216, "y": 5, "flags": 2}, + {"x": 184, "y": 1, "flags": 2}, + {"x": 152, "y": 3, "flags": 2} + ], "max_brightness": 120, "sleep": true, "split_count": [34, 34] diff --git a/keyboards/keebio/iris/rev7/rev7.c b/keyboards/keebio/iris/rev7/rev7.c index deab7acc8a..197a9dec75 100644 --- a/keyboards/keebio/iris/rev7/rev7.c +++ b/keyboards/keebio/iris/rev7/rev7.c @@ -13,59 +13,6 @@ along with this program. If not, see . */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - // Left Half - { 0, 1, 2, 3, 4, 5 }, - { 11, 10, 9, 8, 7, 6 }, - { 12, 13, 14, 15, 16, 17 }, - { 23, 22, 21, 20, 19, 18 }, - { NO_LED, NO_LED, 24, 25, 26, 27 }, - // Right Half - { 34, 35, 36, 37, 38, 39 }, - { 45, 44, 43, 42, 41, 40 }, - { 46, 47, 48, 49, 50, 51 }, - { 57, 56, 55, 54, 53, 52 }, - { NO_LED, NO_LED, 58, 59, 60, 61 } -}, { - // LED Index to Physical Position - // Left Half - { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 }, - { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 }, - { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 }, - { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 }, - { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 }, - { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 }, - // Right Half - { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 }, - { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 }, - { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 }, - { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 }, - { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 }, - { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 } -}, { - // LED Index to Flag - // Left Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, - // Right Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2 - -} }; - - -#endif - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/iris_lm/g1/config.h b/keyboards/keebio/iris_lm/g1/config.h index 952033edf1..ca19ea6402 100644 --- a/keyboards/keebio/iris_lm/g1/config.h +++ b/keyboards/keebio/iris_lm/g1/config.h @@ -13,14 +13,11 @@ #define SERIAL_USART_PIN_SWAP #define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/iris_lm/g1/keyboard.json b/keyboards/keebio/iris_lm/g1/keyboard.json index 6aca0c9bac..20cd78d937 100644 --- a/keyboards/keebio/iris_lm/g1/keyboard.json +++ b/keyboards/keebio/iris_lm/g1/keyboard.json @@ -33,6 +33,9 @@ ] } }, + "handedness": { + "pin": "A0" + }, "matrix_pins": { "right": { "cols": ["C11", "C13", "B6", "B9", "B12", "B2"], diff --git a/keyboards/keebio/iris_lm/k1/config.h b/keyboards/keebio/iris_lm/k1/config.h index 952033edf1..ca19ea6402 100644 --- a/keyboards/keebio/iris_lm/k1/config.h +++ b/keyboards/keebio/iris_lm/k1/config.h @@ -13,14 +13,11 @@ #define SERIAL_USART_PIN_SWAP #define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/iris_lm/k1/keyboard.json b/keyboards/keebio/iris_lm/k1/keyboard.json index e5b0d5c655..3a86f6253b 100644 --- a/keyboards/keebio/iris_lm/k1/keyboard.json +++ b/keyboards/keebio/iris_lm/k1/keyboard.json @@ -18,6 +18,9 @@ }, "split": { "enabled": true, + "handedness": { + "pin": "A0" + }, "matrix_pins": { "right": { "cols": ["C11", "C13", "B6", "B9", "B12", "B2"], diff --git a/keyboards/keebio/kbo5000/keymaps/default/keymap.c b/keyboards/keebio/kbo5000/keymaps/default/keymap.c index e164711fc9..e3ad5fe6fa 100644 --- a/keyboards/keebio/kbo5000/keymaps/default/keymap.c +++ b/keyboards/keebio/kbo5000/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum encoder_names { diff --git a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c index b08c92d7e1..78b3023267 100644 --- a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c +++ b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum encoder_names { diff --git a/keyboards/keebio/kbo5000/readme.md b/keyboards/keebio/kbo5000/readme.md index 1f1f63889e..2208542122 100644 --- a/keyboards/keebio/kbo5000/readme.md +++ b/keyboards/keebio/kbo5000/readme.md @@ -15,6 +15,6 @@ Example of flashing this keyboard: Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h index 12f7f76c87..365d756870 100644 --- a/keyboards/keebio/kbo5000/rev1/config.h +++ b/keyboards/keebio/kbo5000/rev1/config.h @@ -18,4 +18,6 @@ along with this program. If not, see . #pragma once +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + #define CAPS_LOCK_LED_PIN B6 diff --git a/keyboards/keebio/kbo5000/rev1/rev1.c b/keyboards/keebio/kbo5000/rev1/rev1.c index 8aa227deba..f2c98da111 100644 --- a/keyboards/keebio/kbo5000/rev1/rev1.c +++ b/keyboards/keebio/kbo5000/rev1/rev1.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #include "split_util.h" @@ -6,29 +9,11 @@ void matrix_init_kb(void) { matrix_init_user(); } -bool led_update_kb(led_t led_state) { +void led_update_ports(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (is_keyboard_left()) { gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); } bool encoder_update_kb(uint8_t index, bool clockwise) { diff --git a/keyboards/keebio/laplace/keymaps/default/keymap.c b/keyboards/keebio/laplace/keymaps/default/keymap.c index fbd88c72af..c45a7956e5 100644 --- a/keyboards/keebio/laplace/keymaps/default/keymap.c +++ b/keyboards/keebio/laplace/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _BASE 0 diff --git a/keyboards/keebio/laplace/readme.md b/keyboards/keebio/laplace/readme.md index 4292483bc8..f71efb0c37 100644 --- a/keyboards/keebio/laplace/readme.md +++ b/keyboards/keebio/laplace/readme.md @@ -1,11 +1,10 @@ -Laplace -======= +# Laplace A 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/laplace:default:avrdude + make keebio/laplace:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/levinson/keymaps/default/config.h b/keyboards/keebio/levinson/keymaps/default/config.h deleted file mode 100644 index be2d71e8f0..0000000000 --- a/keyboards/keebio/levinson/keymaps/default/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2018 Danny Nguyen - -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 USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/keebio/levinson/keymaps/default/keymap.c b/keyboards/keebio/levinson/keymaps/default/keymap.c index 20be1edd39..b3f4e17124 100644 --- a/keyboards/keebio/levinson/keymaps/default/keymap.c +++ b/keyboards/keebio/levinson/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/keebio/levinson/levinson.c b/keyboards/keebio/levinson/levinson.c index 6f1a050e80..e78585b731 100644 --- a/keyboards/keebio/levinson/levinson.c +++ b/keyboards/keebio/levinson/levinson.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/keebio/levinson/readme.md b/keyboards/keebio/levinson/readme.md index f328aa4205..2c63b7d8f5 100644 --- a/keyboards/keebio/levinson/readme.md +++ b/keyboards/keebio/levinson/readme.md @@ -1,11 +1,10 @@ -Levinson -======== +# Levinson A split 40% split 4x12 ortholinear keyboard made and sold by Keebio. It's essentially a Let's Split with LED backlight support and 2u thumb key support. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro, Elite-C -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro, Elite-C +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard with Pro micro: - make keebio/levinson/rev3:default:avrdude + make keebio/levinson/rev3:default:flash Example of flashing this keyboard with Elite-C: diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/levinson/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/levinson/rev2/keyboard.json b/keyboards/keebio/levinson/rev2/keyboard.json index dd71186837..b6b1fcfa33 100644 --- a/keyboards/keebio/levinson/rev2/keyboard.json +++ b/keyboards/keebio/levinson/rev2/keyboard.json @@ -15,12 +15,27 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7 }, "rgblight": { "led_count": 12, - "split_count": [6, 6] + "split_count": [6, 6], + "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 + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/keebio/levinson/rev2/rev2.c b/keyboards/keebio/levinson/rev2/rev2.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/levinson/rev2/rev2.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/levinson/rev3/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/levinson/rev3/keyboard.json b/keyboards/keebio/levinson/rev3/keyboard.json index 7930727755..0c619bb627 100644 --- a/keyboards/keebio/levinson/rev3/keyboard.json +++ b/keyboards/keebio/levinson/rev3/keyboard.json @@ -24,6 +24,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B6", "levels": 7 }, diff --git a/keyboards/keebio/levinson/rev3/rev3.c b/keyboards/keebio/levinson/rev3/rev3.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/levinson/rev3/rev3.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/nyquist/readme.md b/keyboards/keebio/nyquist/readme.md index 40e7ebf3d2..1bfcd59bfa 100644 --- a/keyboards/keebio/nyquist/readme.md +++ b/keyboards/keebio/nyquist/readme.md @@ -1,11 +1,10 @@ -Nyquist -======= +# Nyquist A split 60% split 5x12 ortholinear keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro, ATmega32u4 -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro, ATmega32u4 +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -15,6 +14,6 @@ Example of flashing this keyboard: make keebio/nyquist/rev3:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Nyquist Build Guide](https://docs.keeb.io) diff --git a/keyboards/keebio/nyquist/rev2/config.h b/keyboards/keebio/nyquist/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/nyquist/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/nyquist/rev2/keyboard.json b/keyboards/keebio/nyquist/rev2/keyboard.json index 69639db6bf..a66dff3904 100644 --- a/keyboards/keebio/nyquist/rev2/keyboard.json +++ b/keyboards/keebio/nyquist/rev2/keyboard.json @@ -24,12 +24,27 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B6", "levels": 7 }, "rgblight": { "led_count": 12, - "split_count": [6, 6] + "split_count": [6, 6], + "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 + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/keebio/nyquist/rev2/rev2.c b/keyboards/keebio/nyquist/rev2/rev2.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/nyquist/rev2/rev2.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/nyquist/rev3/config.h b/keyboards/keebio/nyquist/rev3/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/nyquist/rev3/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/nyquist/rev3/keyboard.json b/keyboards/keebio/nyquist/rev3/keyboard.json index bdc7be0e4e..a4db4dcd8e 100644 --- a/keyboards/keebio/nyquist/rev3/keyboard.json +++ b/keyboards/keebio/nyquist/rev3/keyboard.json @@ -24,6 +24,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7 }, diff --git a/keyboards/keebio/nyquist/rev3/rev3.c b/keyboards/keebio/nyquist/rev3/rev3.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/nyquist/rev3/rev3.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/nyquist/rev5/config.h b/keyboards/keebio/nyquist/rev5/config.h index c4bbd6c5b2..f05cd8695f 100644 --- a/keyboards/keebio/nyquist/rev5/config.h +++ b/keyboards/keebio/nyquist/rev5/config.h @@ -3,8 +3,6 @@ #pragma once -#define SPLIT_HAND_PIN GP23 - #define USB_VBUS_PIN GP18 #define SERIAL_USART_FULL_DUPLEX diff --git a/keyboards/keebio/nyquist/rev5/keyboard.json b/keyboards/keebio/nyquist/rev5/keyboard.json index fc03c00e29..6ff3dd3821 100644 --- a/keyboards/keebio/nyquist/rev5/keyboard.json +++ b/keyboards/keebio/nyquist/rev5/keyboard.json @@ -25,6 +25,9 @@ ] } }, + "handedness": { + "pin": "GP23" + }, "matrix_pins": { "right":{ "cols": ["GP25", "GP29", "GP20", "GP11", "GP3", "GP2"], diff --git a/keyboards/keebio/quefrency/keymaps/default/config.h b/keyboards/keebio/quefrency/keymaps/default/config.h deleted file mode 100644 index 53bf8fb933..0000000000 --- a/keyboards/keebio/quefrency/keymaps/default/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2018 Danny Nguyen - -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 USE_I2C diff --git a/keyboards/keebio/quefrency/keymaps/default/keymap.c b/keyboards/keebio/quefrency/keymaps/default/keymap.c index 48dcd73eff..35fb3eec1b 100644 --- a/keyboards/keebio/quefrency/keymaps/default/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default/keymap.c @@ -12,10 +12,6 @@ enum custom_layer { _FN1, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65_with_macro( KC_F1, KC_F2, QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_HOME, diff --git a/keyboards/keebio/quefrency/keymaps/default60/keymap.c b/keyboards/keebio/quefrency/keymaps/default60/keymap.c index f3545dfbdc..2f06f69309 100644 --- a/keyboards/keebio/quefrency/keymaps/default60/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default60/keymap.c @@ -12,10 +12,6 @@ enum custom_layer { _FN1, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_60( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, diff --git a/keyboards/keebio/quefrency/keymaps/default65/keymap.c b/keyboards/keebio/quefrency/keymaps/default65/keymap.c index 980dd95eed..0cdc7dbcdc 100644 --- a/keyboards/keebio/quefrency/keymaps/default65/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default65/keymap.c @@ -3,8 +3,6 @@ #include QMK_KEYBOARD_H -extern keymap_config_t keymap_config; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -12,10 +10,6 @@ extern keymap_config_t keymap_config; #define _BASE 0 #define _FN1 1 -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_HOME, diff --git a/keyboards/keebio/quefrency/readme.md b/keyboards/keebio/quefrency/readme.md index dd2bde88f4..2138a5d14b 100644 --- a/keyboards/keebio/quefrency/readme.md +++ b/keyboards/keebio/quefrency/readme.md @@ -1,11 +1,10 @@ -Quefrency -========= +# Quefrency A split 60/65% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro (Rev. 1), ATmega32u4 (Rev. 2 & 3) -Hardware Availability: [Keebio](https://keeb.io/) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro (Rev. 1), ATmega32u4 (Rev. 2 & 3) +* Hardware Availability: [Keebio](https://keeb.io/) Make example for this keyboard (after setting up your build environment): @@ -17,6 +16,6 @@ Example of flashing this keyboard: Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/quefrency/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/quefrency/rev1/rev1.c b/keyboards/keebio/quefrency/rev1/rev1.c deleted file mode 100644 index 51adb74d31..0000000000 --- a/keyboards/keebio/quefrency/rev1/rev1.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index 12f7f76c87..365d756870 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -18,4 +18,6 @@ along with this program. If not, see . #pragma once +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + #define CAPS_LOCK_LED_PIN B6 diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c index f0320597f7..992f621ef6 100644 --- a/keyboards/keebio/quefrency/rev2/rev2.c +++ b/keyboards/keebio/quefrency/rev2/rev2.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #include "split_util.h" @@ -6,29 +9,11 @@ void matrix_init_kb(void) { matrix_init_user(); } -bool led_update_kb(led_t led_state) { +void led_update_ports(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (is_keyboard_left()) { gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); } #ifdef ENCODER_ENABLE diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index 12f7f76c87..365d756870 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -18,4 +18,6 @@ along with this program. If not, see . #pragma once +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + #define CAPS_LOCK_LED_PIN B6 diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c index 74d68723f5..82fb267879 100644 --- a/keyboards/keebio/quefrency/rev3/rev3.c +++ b/keyboards/keebio/quefrency/rev3/rev3.c @@ -22,29 +22,11 @@ void matrix_init_kb(void) { matrix_init_user(); } -bool led_update_kb(led_t led_state) { +void led_update_ports(led_t led_state) { // Only update if left half - if (led_update_user(led_state) && isLeftHand) { + if (is_keyboard_left()) { gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); } #ifdef ENCODER_ENABLE diff --git a/keyboards/keebio/quefrency/rev6/config.h b/keyboards/keebio/quefrency/rev6/config.h index 952033edf1..ca19ea6402 100644 --- a/keyboards/keebio/quefrency/rev6/config.h +++ b/keyboards/keebio/quefrency/rev6/config.h @@ -13,14 +13,11 @@ #define SERIAL_USART_PIN_SWAP #define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/quefrency/rev6/keyboard.json b/keyboards/keebio/quefrency/rev6/keyboard.json index 84629eb4cf..ac488daa08 100644 --- a/keyboards/keebio/quefrency/rev6/keyboard.json +++ b/keyboards/keebio/quefrency/rev6/keyboard.json @@ -200,12 +200,18 @@ ] } }, + "handedness": { + "pin": "A0" + }, "matrix_pins": { "right": { "cols": ["B2", "B1", "B0", "B12", "B13", "A7", "B6", "C13", "C14"], "rows": ["A5", "A4", "A3", "B5", "F1"] } }, + "serial": { + "driver": "usart" + }, "transport": { "sync": { "matrix_state": true diff --git a/keyboards/keebio/quefrency/rev6/rules.mk b/keyboards/keebio/quefrency/rev6/rules.mk deleted file mode 100644 index c6e2988321..0000000000 --- a/keyboards/keebio/quefrency/rev6/rules.mk +++ /dev/null @@ -1 +0,0 @@ -SERIAL_DRIVER = usart diff --git a/keyboards/keebio/rorschach/keymaps/default/keymap.c b/keyboards/keebio/rorschach/keymaps/default/keymap.c index 2949164c34..df03718193 100644 --- a/keyboards/keebio/rorschach/keymaps/default/keymap.c +++ b/keyboards/keebio/rorschach/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H enum layer_names { _QWERTY, diff --git a/keyboards/keebio/rorschach/readme.md b/keyboards/keebio/rorschach/readme.md index 1a623a5353..f048cd307a 100644 --- a/keyboards/keebio/rorschach/readme.md +++ b/keyboards/keebio/rorschach/readme.md @@ -1,11 +1,10 @@ -Rorschach -========= +# Rorschach A split ortholinear 4x6 keyboard with 2 additional thumb keys and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/rorschach/rev1:default:avrdude + make keebio/rorschach/rev1:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-build-guide.html) diff --git a/keyboards/keebio/sinc/readme.md b/keyboards/keebio/sinc/readme.md index 29d9ed0415..9ffdf29c42 100644 --- a/keyboards/keebio/sinc/readme.md +++ b/keyboards/keebio/sinc/readme.md @@ -15,6 +15,6 @@ Example of flashing this keyboard: Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/sinc/sinc.c b/keyboards/keebio/sinc/sinc.c index faa3540af9..102ede7cff 100644 --- a/keyboards/keebio/sinc/sinc.c +++ b/keyboards/keebio/sinc/sinc.c @@ -17,14 +17,12 @@ along with this program. If not, see . #include "quantum.h" #include "split_util.h" -#ifdef BACKLIGHT_ENABLE -bool led_update_kb(led_t led_state) { - if (!led_update_user(led_state)) { return false; } +#ifdef LED_CAPS_LOCK_PIN +void led_update_ports(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (is_keyboard_left()) { gpio_write_pin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); } - return true; } #endif diff --git a/keyboards/keebio/sinc_lm/info.json b/keyboards/keebio/sinc_lm/info.json new file mode 100644 index 0000000000..cb41e89ff6 --- /dev/null +++ b/keyboards/keebio/sinc_lm/info.json @@ -0,0 +1,21 @@ +{ + "manufacturer": "Keebio", + "url": "https://keeb.io", + "maintainer": "nooges", + "usb": { + "vid": "0xCB10" + }, + "features": { + "bootmagic": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "split": { + "enabled": true + }, + "build": { + "lto": true + } +} diff --git a/keyboards/keebio/sinc_lm/keymaps/default/keymap.c b/keyboards/keebio/sinc_lm/keymaps/default/keymap.c new file mode 100644 index 0000000000..83e1638fdd --- /dev/null +++ b/keyboards/keebio/sinc_lm/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2026 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, RM_NEXT, 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_VOLD, KC_VOLU, + KC_F1, KC_F2, 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_DEL, + KC_F3, KC_F4, 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_F5, KC_F6, 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_F7, KC_F8, 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_F9, KC_F10, MO(1), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_HUEU, RM_HUED, 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, _______, _______, + RM_SATU, RM_SATD, RM_TOGG, RM_NEXT, KC_UP, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + RM_VALU, RM_VALD, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RM_SPDU, RM_SPDD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/keebio/sinc_lm/readme.md b/keyboards/keebio/sinc_lm/readme.md new file mode 100644 index 0000000000..7e03c056f3 --- /dev/null +++ b/keyboards/keebio/sinc_lm/readme.md @@ -0,0 +1,27 @@ +# Sinc LM + +A split 75%/TKL staggered low-profile keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Availability: [Keebio](https://keeb.io/) + +Make example for this keyboard (after setting up your build environment): + + make keebio/sinc_lm/rev1:default + +Example of flashing this keyboard: + + make keebio/sinc_lm/rev1:default:flash + +Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. + +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 one of these ways: + +* **Physical reset button**: Press and hold the button on the back of the PCB for at least 2 seconds and let go, or double-press the button +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/sinc_lm/rev1/config.h b/keyboards/keebio/sinc_lm/rev1/config.h new file mode 100644 index 0000000000..4d80efeedb --- /dev/null +++ b/keyboards/keebio/sinc_lm/rev1/config.h @@ -0,0 +1,23 @@ +// Copyright 2026 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Defines for the split keyboard setup */ +#define SERIAL_USART_DRIVER SD3 // USART 3 +#define SERIAL_USART_TX_PIN B10 +#define SERIAL_USART_RX_PIN B11 +#define SERIAL_USART_TX_PAL_MODE 7 +#define SERIAL_USART_RX_PAL_MODE 7 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_PIN_SWAP + +#define USB_VBUS_PIN C6 + +/* Defines for the RGB matrix */ +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/sinc_lm/rev1/halconf.h b/keyboards/keebio/sinc_lm/rev1/halconf.h new file mode 100644 index 0000000000..ae60dc5a29 --- /dev/null +++ b/keyboards/keebio/sinc_lm/rev1/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2026 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SERIAL TRUE + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/keebio/sinc_lm/rev1/keyboard.json b/keyboards/keebio/sinc_lm/rev1/keyboard.json new file mode 100644 index 0000000000..6d237775df --- /dev/null +++ b/keyboards/keebio/sinc_lm/rev1/keyboard.json @@ -0,0 +1,358 @@ +{ + "manufacturer": "Keebio", + "keyboard_name": "Sinc LM Rev. 1", + "maintainer": "nooges", + "bootloader": "stm32-dfu", + "bootmagic": { + "matrix": [0, 2] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B13", "B14", "B2", "F0", "C10", "B6", "C13", "C14", "C15"], + "rows": ["B4", "C11", "B12", "B5", "F1", "B1"] + }, + "processor": "STM32G431", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "rainbow_moving_chevron": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "rainbow_pinwheels": true, + "flower_blooming": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_fractal": true, + "pixel_flow": true, + "pixel_rain": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_multiwide": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_nexus": true, + "solid_reactive_multinexus": true, + "splash": true, + "multisplash": true, + "solid_splash": true, + "solid_multisplash": true, + "starlight": true, + "starlight_smooth": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "riverflow": true + }, + "driver": "ws2812", + "layout": [ + { "matrix": [5, 2], "x": 30, "y": 4, "flags": 4 }, + { "x": 32, "y": 10, "flags": 2 }, + { "matrix": [5, 3], "x": 45, "y": 4, "flags": 4 }, + { "matrix": [5, 4], "x": 58, "y": 4, "flags": 4 }, + { "matrix": [5, 5], "x": 70, "y": 4, "flags": 4 }, + { "x": 76, "y": 2, "flags": 2 }, + { "matrix": [5, 6], "x": 82, "y": 4, "flags": 4 }, + { "matrix": [5, 7], "x": 97, "y": 4, "flags": 4 }, + { "matrix": [5, 8], "x": 109, "y": 4, "flags": 4 }, + { "x": 103, "y": 10, "flags": 2 }, + + { "matrix": [0, 8], "x": 103, "y": 18, "flags": 4 }, + { "matrix": [0, 7], "x": 91, "y": 18, "flags": 4 }, + { "matrix": [0, 6], "x": 79, "y": 18, "flags": 4 }, + { "matrix": [0, 5], "x": 67, "y": 18, "flags": 4 }, + { "matrix": [0, 4], "x": 54, "y": 18, "flags": 4 }, + { "matrix": [0, 3], "x": 42, "y": 18, "flags": 4 }, + { "matrix": [0, 2], "x": 30, "y": 18, "flags": 4 }, + + { "matrix": [1, 2], "x": 33, "y": 30, "flags": 4 }, + { "matrix": [1, 3], "x": 48, "y": 30, "flags": 4 }, + { "matrix": [1, 4], "x": 61, "y": 30, "flags": 4 }, + { "matrix": [1, 5], "x": 73, "y": 30, "flags": 4 }, + { "matrix": [1, 6], "x": 85, "y": 30, "flags": 4 }, + { "matrix": [1, 7], "x": 97, "y": 30, "flags": 4 }, + + { "matrix": [2, 7], "x": 100, "y": 41, "flags": 4 }, + { "matrix": [2, 6], "x": 88, "y": 41, "flags": 4 }, + { "matrix": [2, 5], "x": 76, "y": 41, "flags": 4 }, + { "matrix": [2, 4], "x": 64, "y": 41, "flags": 4 }, + { "matrix": [2, 3], "x": 51, "y": 41, "flags": 4 }, + { "matrix": [2, 2], "x": 35, "y": 41, "flags": 4 }, + + { "matrix": [3, 2], "x": 38, "y": 53, "flags": 4 }, + { "matrix": [3, 4], "x": 58, "y": 53, "flags": 4 }, + { "matrix": [3, 5], "x": 70, "y": 53, "flags": 4 }, + { "matrix": [3, 6], "x": 82, "y": 53, "flags": 4 }, + { "matrix": [3, 7], "x": 94, "y": 53, "flags": 4 }, + { "x": 100, "y": 46, "flags": 2 }, + { "matrix": [3, 8], "x": 106, "y": 53, "flags": 4 }, + + { "matrix": [4, 7], "x": 98, "y": 64, "flags": 4 }, + { "x": 85, "y": 64, "flags": 2 }, + { "matrix": [4, 5], "x": 77, "y": 64, "flags": 4 }, + { "matrix": [4, 4], "x": 62, "y": 64, "flags": 4 }, + { "matrix": [4, 3], "x": 47, "y": 64, "flags": 4 }, + { "x": 39, "y": 60, "flags": 4 }, + { "matrix": [4, 2], "x": 32, "y": 64, "flags": 4 }, + + { "matrix": [4, 1], "x": 12, "y": 64, "flags": 4 }, + { "x": 6, "y": 60, "flags": 2 }, + { "matrix": [4, 0], "x": 0, "y": 64, "flags": 4 }, + { "matrix": [3, 0], "x": 0, "y": 53, "flags": 4 }, + { "matrix": [3, 1], "x": 12, "y": 53, "flags": 4 }, + { "matrix": [2, 1], "x": 12, "y": 41, "flags": 4 }, + { "matrix": [2, 0], "x": 0, "y": 41, "flags": 4 }, + { "matrix": [1, 0], "x": 0, "y": 30, "flags": 4 }, + { "matrix": [1, 1], "x": 12, "y": 30, "flags": 4 }, + { "matrix": [0, 1], "x": 12, "y": 18, "flags": 4 }, + { "matrix": [0, 0], "x": 0, "y": 18, "flags": 4 }, + { "matrix": [5, 0], "x": 0, "y": 4, "flags": 4 }, + { "x": 6, "y": 2, "flags": 2 }, + { "matrix": [5, 1], "x": 12, "y": 4, "flags": 4 }, + + { "x": 224, "y": 10, "flags": 2 }, + { "matrix": [11, 8], "x": 224, "y": 4, "flags": 4 }, + { "matrix": [11, 7], "x": 212, "y": 4, "flags": 4 }, + { "matrix": [11, 6], "x": 197, "y": 4, "flags": 4 }, + { "x": 191, "y": 10, "flags": 2 }, + { "matrix": [11, 5], "x": 185, "y": 4, "flags": 4 }, + { "matrix": [11, 4], "x": 173, "y": 4, "flags": 4 }, + { "x": 166, "y": 10, "flags": 2 }, + { "matrix": [11, 3], "x": 160, "y": 4, "flags": 4 }, + { "matrix": [11, 2], "x": 145, "y": 4, "flags": 4 }, + { "x": 139, "y": 10, "flags": 2 }, + { "matrix": [11, 1], "x": 133, "y": 4, "flags": 4 }, + + { "matrix": [6, 0], "x": 127, "y": 18, "flags": 4 }, + { "matrix": [6, 1], "x": 139, "y": 18, "flags": 4 }, + { "matrix": [6, 2], "x": 151, "y": 18, "flags": 4 }, + { "matrix": [6, 3], "x": 163, "y": 18, "flags": 4 }, + { "matrix": [6, 4], "x": 176, "y": 18, "flags": 4 }, + { "matrix": [6, 5], "x": 188, "y": 18, "flags": 4 }, + { "matrix": [6, 7], "x": 206, "y": 18, "flags": 4 }, + { "matrix": [6, 8], "x": 224, "y": 18, "flags": 4 }, + + { "matrix": [7, 8], "x": 224, "y": 30, "flags": 4 }, + { "matrix": [7, 7], "x": 209, "y": 30, "flags": 4 }, + { "matrix": [7, 6], "x": 194, "y": 30, "flags": 4 }, + { "matrix": [7, 5], "x": 182, "y": 30, "flags": 4 }, + { "matrix": [7, 4], "x": 170, "y": 30, "flags": 4 }, + { "matrix": [7, 3], "x": 157, "y": 30, "flags": 4 }, + { "matrix": [7, 2], "x": 145, "y": 30, "flags": 4 }, + { "matrix": [7, 1], "x": 133, "y": 30, "flags": 4 }, + { "matrix": [7, 0], "x": 121, "y": 30, "flags": 4 }, + + { "matrix": [8, 0], "x": 124, "y": 41, "flags": 4 }, + { "matrix": [8, 1], "x": 136, "y": 41, "flags": 4 }, + { "matrix": [8, 2], "x": 148, "y": 41, "flags": 4 }, + { "matrix": [8, 3], "x": 160, "y": 41, "flags": 4 }, + { "matrix": [8, 4], "x": 173, "y": 41, "flags": 4 }, + { "matrix": [8, 5], "x": 185, "y": 41, "flags": 4 }, + { "matrix": [8, 7], "x": 204, "y": 41, "flags": 4 }, + { "matrix": [8, 8], "x": 224, "y": 41, "flags": 4 }, + + { "matrix": [9, 8], "x": 224, "y": 53, "flags": 4 }, + { "matrix": [9, 7], "x": 212, "y": 53, "flags": 4 }, + { "matrix": [9, 6], "x": 195, "y": 53, "flags": 4 }, + { "matrix": [9, 4], "x": 179, "y": 53, "flags": 4 }, + { "matrix": [9, 3], "x": 166, "y": 53, "flags": 4 }, + { "matrix": [9, 2], "x": 154, "y": 53, "flags": 4 }, + { "matrix": [9, 1], "x": 142, "y": 53, "flags": 4 }, + { "matrix": [9, 0], "x": 130, "y": 53, "flags": 4 }, + + { "x": 127, "y": 64, "flags": 2 }, + { "matrix": [10, 1], "x": 141, "y": 64, "flags": 4 }, + { "x": 157, "y": 64, "flags": 2 }, + { "matrix": [10, 2], "x": 163, "y": 64, "flags": 4 }, + { "matrix": [10, 3], "x": 176, "y": 64, "flags": 4 }, + { "matrix": [10, 4], "x": 188, "y": 64, "flags": 4 }, + { "x": 194, "y": 64, "flags": 2 }, + { "matrix": [10, 6], "x": 200, "y": 64, "flags": 4 }, + { "matrix": [10, 7], "x": 212, "y": 64, "flags": 4 }, + { "x": 218, "y": 64, "flags": 2 }, + { "matrix": [10, 8], "x": 224, "y": 64, "flags": 4 } + ], + "max_brightness": 120, + "sleep": true, + "split_count": [57, 56] + }, + "split": { + "bootmagic": { + "matrix": [11, 8] + }, + "enabled": true, + "handedness": { + "pin": "A0" + }, + + "matrix_pins": { + "right": { + "cols": ["B2", "A15", "A2", "A1", "A4", "B15", "B6", "C13", "C14"], + "rows": ["B12", "B13", "B14", "B5", "F1", "B1"] + } + }, + "serial": { + "driver": "usart" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "url": "https://keeb.io", + "usb": { + "device_version": "1.0.0", + "pid": "0x1667", + "vid": "0xCB10" + }, + "ws2812": { + "driver": "pwm", + "pin": "B7" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Mute", "matrix": [5, 0], "x": 0, "y": 0}, + {"label": "Play", "matrix": [5, 1], "x": 1, "y": 0}, + {"label": "Esc", "matrix": [5, 2], "x": 2.25, "y": 0}, + {"label": "F1", "matrix": [5, 3], "x": 3.5, "y": 0}, + {"label": "F2", "matrix": [5, 4], "x": 4.5, "y": 0}, + {"label": "F3", "matrix": [5, 5], "x": 5.5, "y": 0}, + {"label": "F4", "matrix": [5, 6], "x": 6.5, "y": 0}, + {"label": "F5", "matrix": [5, 7], "x": 7.75, "y": 0}, + {"label": "F6", "matrix": [5, 8], "x": 8.75, "y": 0}, + + {"label": "F7", "matrix": [11, 1], "x": 10.75, "y": 0}, + {"label": "F8", "matrix": [11, 2], "x": 11.75, "y": 0}, + {"label": "F9", "matrix": [11, 3], "x": 13, "y": 0}, + {"label": "F10", "matrix": [11, 4], "x": 14, "y": 0}, + {"label": "F11", "matrix": [11, 5], "x": 15, "y": 0}, + {"label": "F12", "matrix": [11, 6], "x": 16, "y": 0}, + {"label": "Volume Up", "matrix": [11, 7], "x": 17.25, "y": 0}, + {"label": "Volume Down", "matrix": [11, 8], "x": 18.25, "y": 0}, + + {"label": "F1", "matrix": [0, 0], "x": 0, "y": 1.25}, + {"label": "F2", "matrix": [0, 1], "x": 1, "y": 1.25}, + + {"label": "Grave", "matrix": [0, 2], "x": 2.25, "y": 1.25}, + {"label": "1", "matrix": [0, 3], "x": 3.25, "y": 1.25}, + {"label": "2", "matrix": [0, 4], "x": 4.25, "y": 1.25}, + {"label": "3", "matrix": [0, 5], "x": 5.25, "y": 1.25}, + {"label": "4", "matrix": [0, 6], "x": 6.25, "y": 1.25}, + {"label": "5", "matrix": [0, 7], "x": 7.25, "y": 1.25}, + {"label": "6", "matrix": [0, 8], "x": 8.25, "y": 1.25}, + + {"label": "7", "matrix": [6, 0], "x": 10.25, "y": 1.25}, + {"label": "8", "matrix": [6, 1], "x": 11.25, "y": 1.25}, + {"label": "9", "matrix": [6, 2], "x": 12.25, "y": 1.25}, + {"label": "0", "matrix": [6, 3], "x": 13.25, "y": 1.25}, + {"label": "-", "matrix": [6, 4], "x": 14.25, "y": 1.25}, + {"label": "=", "matrix": [6, 5], "x": 15.25, "y": 1.25}, + {"label": "Bksp", "matrix": [6, 7], "x": 16.25, "y": 1.25, "w": 2}, + {"label": "Del", "matrix": [6, 8], "x": 18.25, "y": 1.25}, + + {"label": "F3", "matrix": [1, 0], "x": 0, "y": 2.25}, + {"label": "F4", "matrix": [1, 1], "x": 1, "y": 2.25}, + + {"label": "Tab", "matrix": [1, 2], "x": 2.25, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [1, 3], "x": 3.75, "y": 2.25}, + {"label": "W", "matrix": [1, 4], "x": 4.75, "y": 2.25}, + {"label": "E", "matrix": [1, 5], "x": 5.75, "y": 2.25}, + {"label": "R", "matrix": [1, 6], "x": 6.75, "y": 2.25}, + {"label": "T", "matrix": [1, 7], "x": 7.75, "y": 2.25}, + + {"label": "Y", "matrix": [7, 0], "x": 9.75, "y": 2.25}, + {"label": "U", "matrix": [7, 1], "x": 10.75, "y": 2.25}, + {"label": "I", "matrix": [7, 2], "x": 11.75, "y": 2.25}, + {"label": "O", "matrix": [7, 3], "x": 12.75, "y": 2.25}, + {"label": "P", "matrix": [7, 4], "x": 13.75, "y": 2.25}, + {"label": "{", "matrix": [7, 5], "x": 14.75, "y": 2.25}, + {"label": "}", "matrix": [7, 6], "x": 15.75, "y": 2.25}, + {"label": "|", "matrix": [7, 7], "x": 16.75, "y": 2.25, "w": 1.5}, + {"label": "Home", "matrix": [7, 8], "x": 18.25, "y": 2.25}, + + {"label": "F5", "matrix": [2, 0], "x": 0, "y": 3.25}, + {"label": "F6", "matrix": [2, 1], "x": 1, "y": 3.25}, + + {"label": "Caps Lock", "matrix": [2, 2], "x": 2.25, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [2, 3], "x": 4, "y": 3.25}, + {"label": "S", "matrix": [2, 4], "x": 5, "y": 3.25}, + {"label": "D", "matrix": [2, 5], "x": 6, "y": 3.25}, + {"label": "F", "matrix": [2, 6], "x": 7, "y": 3.25}, + {"label": "G", "matrix": [2, 7], "x": 8, "y": 3.25}, + + {"label": "H", "matrix": [8, 0], "x": 10, "y": 3.25}, + {"label": "J", "matrix": [8, 1], "x": 11, "y": 3.25}, + {"label": "K", "matrix": [8, 2], "x": 12, "y": 3.25}, + {"label": "L", "matrix": [8, 3], "x": 13, "y": 3.25}, + {"label": ":", "matrix": [8, 4], "x": 14, "y": 3.25}, + {"label": "\"", "matrix": [8, 5], "x": 15, "y": 3.25}, + {"label": "Enter", "matrix": [8, 7], "x": 16, "y": 3.25, "w": 2.25}, + {"label": "PgUp", "matrix": [8, 8], "x": 18.25, "y": 3.25}, + + {"label": "F7", "matrix": [3, 0], "x": 0, "y": 4.25}, + {"label": "F8", "matrix": [3, 1], "x": 1, "y": 4.25}, + + {"label": "Shift", "matrix": [3, 2], "x": 2.25, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [3, 4], "x": 4.5, "y": 4.25}, + {"label": "X", "matrix": [3, 5], "x": 5.5, "y": 4.25}, + {"label": "C", "matrix": [3, 6], "x": 6.5, "y": 4.25}, + {"label": "V", "matrix": [3, 7], "x": 7.5, "y": 4.25}, + {"label": "B", "matrix": [3, 8], "x": 8.5, "y": 4.25}, + + {"label": "N", "matrix": [9, 0], "x": 10.5, "y": 4.25}, + {"label": "M", "matrix": [9, 1], "x": 11.5, "y": 4.25}, + {"label": ",", "matrix": [9, 2], "x": 12.5, "y": 4.25}, + {"label": ".", "matrix": [9, 3], "x": 13.5, "y": 4.25}, + {"label": "/", "matrix": [9, 4], "x": 14.5, "y": 4.25}, + {"label": "Shift", "matrix": [9, 6], "x": 15.5, "y": 4.25, "w": 1.75}, + {"label": "Up", "matrix": [9, 7], "x": 17.25, "y": 4.25}, + {"label": "PgDn", "matrix": [9, 8], "x": 18.25, "y": 4.25}, + + {"label": "F9", "matrix": [4, 0], "x": 0, "y": 5.25}, + {"label": "F10", "matrix": [4, 1], "x": 1, "y": 5.25}, + + {"label": "Fn", "matrix": [4, 2], "x": 2.25, "y": 5.25, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 3], "x": 3.5, "y": 5.25, "w": 1.25}, + {"label": "Alt", "matrix": [4, 4], "x": 4.75, "y": 5.25, "w": 1.25}, + {"label": "Win", "matrix": [4, 5], "x": 6, "y": 5.25, "w": 1.25}, + {"label": "Space", "matrix": [4, 7], "x": 7.25, "y": 5.25, "w": 2.25}, + + {"label": "Space", "matrix": [10, 1], "x": 10.5, "y": 5.25, "w": 2.75}, + {"label": "Fn", "matrix": [10, 2], "x": 13.25, "y": 5.25}, + {"label": "Alt", "matrix": [10, 3], "x": 14.25, "y": 5.25}, + {"label": "Ctrl", "matrix": [10, 4], "x": 15.25, "y": 5.25}, + {"label": "Left", "matrix": [10, 6], "x": 16.25, "y": 5.25}, + {"label": "Down", "matrix": [10, 7], "x": 17.25, "y": 5.25}, + {"label": "Right", "matrix": [10, 8], "x": 18.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/keebio/sinc_lm/rev1/mcuconf.h b/keyboards/keebio/sinc_lm/rev1/mcuconf.h new file mode 100644 index 0000000000..d3e39d03fa --- /dev/null +++ b/keyboards/keebio/sinc_lm/rev1/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2026 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +/* enable USART3, used for split comms */ +#undef STM32_SERIAL_USE_USART3 +#define STM32_SERIAL_USE_USART3 TRUE + +/* enable TIM3, used for RGB LED PWM driver */ +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/sinc_lm/rev1/rev1.c b/keyboards/keebio/sinc_lm/rev1/rev1.c new file mode 100644 index 0000000000..b85a2fb1bb --- /dev/null +++ b/keyboards/keebio/sinc_lm/rev1/rev1.c @@ -0,0 +1,11 @@ +// Copyright 2026 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Disable the PD peripheral in pre-init because its pins are being used in the matrix: + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) + keyboard_pre_init_user(); +} diff --git a/keyboards/keebio/stick/config.h b/keyboards/keebio/stick/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/stick/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/stick/keyboard.json b/keyboards/keebio/stick/keyboard.json index b8d1184ec1..00102c565a 100644 --- a/keyboards/keebio/stick/keyboard.json +++ b/keyboards/keebio/stick/keyboard.json @@ -54,7 +54,21 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 200, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 220, "y": 0, "flags": 4} + ] }, "encoder": { "rotary": [ diff --git a/keyboards/keebio/stick/stick.c b/keyboards/keebio/stick/stick.c index 6fac145091..9c5e67d93d 100644 --- a/keyboards/keebio/stick/stick.c +++ b/keyboards/keebio/stick/stick.c @@ -17,38 +17,6 @@ along with this program. If not, see . #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } -}, { - // LED Index to Physical Position - { 0, 0 }, { 20, 0 }, { 40, 0 }, { 60, 0 }, - { 80, 0 }, { 100, 0 }, { 120, 0 }, { 140, 0 }, - { 160, 0 }, { 180, 0 }, { 200, 0 }, { 220, 0 }, -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -# ifdef RGBLIGHT_EFFECT_RAINDOWN_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -# endif -#endif - -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); // Enable RGB by default -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/tragicforce68/keymaps/default/keymap.c b/keyboards/keebio/tragicforce68/keymaps/default/keymap.c index 59076d4ecf..ee1c567c1b 100644 --- a/keyboards/keebio/tragicforce68/keymaps/default/keymap.c +++ b/keyboards/keebio/tragicforce68/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _QWERTY 0 diff --git a/keyboards/keebio/tragicforce68/readme.md b/keyboards/keebio/tragicforce68/readme.md index c3ea92d7ad..07a673e848 100644 --- a/keyboards/keebio/tragicforce68/readme.md +++ b/keyboards/keebio/tragicforce68/readme.md @@ -1,11 +1,10 @@ -Tragicforce 68 -=============== +# Tragicforce 68 Magicforce 68 with [Tragicforce 68 replacement PCB](https://keeb.io/products/mf68-magicforce-68-pcb-replacement-kit) from Keebio. -Keyboard Maintainer: [Keebio](https://keeb.io) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Keebio](https://keeb.io) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,6 +12,6 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/tragicforce68:default:avrdude + make keebio/tragicforce68:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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/keebio/tukey/readme.md b/keyboards/keebio/tukey/readme.md index 21527b6bf4..7e0334084c 100644 --- a/keyboards/keebio/tukey/readme.md +++ b/keyboards/keebio/tukey/readme.md @@ -2,12 +2,16 @@ 2-key keyboard for Big Switches -Keyboard Maintainer: [nooges/Keebio](https://github.com/nooges) -Hardware Supported: Pro Micro, Elite-C -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [nooges/Keebio](https://github.com/nooges) +* Hardware Supported: Pro Micro, Elite-C +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/tukey:default +Example of flashing this keyboard: + + make keebio/tukey: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/keebio/viterbi/keymaps/default/config.h b/keyboards/keebio/viterbi/keymaps/default/config.h index acc5970dcb..ffe91d3bee 100644 --- a/keyboards/keebio/viterbi/keymaps/default/config.h +++ b/keyboards/keebio/viterbi/keymaps/default/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -// #define USE_I2C - -/* Select hand configuration */ - -// #define MASTER_RIGHT -// #define EE_HANDS - #undef RGBLIGHT_LED_COUNT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/keebio/viterbi/keymaps/default/keymap.c b/keyboards/keebio/viterbi/keymaps/default/keymap.c index e37fc8f790..4a658ac6ec 100644 --- a/keyboards/keebio/viterbi/keymaps/default/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/keebio/viterbi/readme.md b/keyboards/keebio/viterbi/readme.md index 2e475100b6..393fd6bbfb 100644 --- a/keyboards/keebio/viterbi/readme.md +++ b/keyboards/keebio/viterbi/readme.md @@ -1,21 +1,19 @@ -Viterbi -======= +# Viterbi A split 5x14 ortholinear keyboard kit made and sold by Keebio. [More info at Keebio](https://keeb.io) -Keyboard Maintainer: [Bakingpy](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/viterbi/rev1:default - Example of flashing this keyboard: - make keebio/viterbi/rev1:default:avrdude + make keebio/viterbi/rev1:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Viterbi Build Guide](https://docs.keeb.io) diff --git a/keyboards/keebio/viterbi/rev2/config.h b/keyboards/keebio/viterbi/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/viterbi/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/viterbi/rev2/keyboard.json b/keyboards/keebio/viterbi/rev2/keyboard.json index a3e2d055b2..4d427df6ef 100644 --- a/keyboards/keebio/viterbi/rev2/keyboard.json +++ b/keyboards/keebio/viterbi/rev2/keyboard.json @@ -18,6 +18,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B6", "levels": 7 }, diff --git a/keyboards/keebio/viterbi/rev2/rev2.c b/keyboards/keebio/viterbi/rev2/rev2.c deleted file mode 100644 index f00bb726e9..0000000000 --- a/keyboards/keebio/viterbi/rev2/rev2.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_MODE_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/wavelet/keymaps/default/keymap.c b/keyboards/keebio/wavelet/keymaps/default/keymap.c index 20be1edd39..b3f4e17124 100644 --- a/keyboards/keebio/wavelet/keymaps/default/keymap.c +++ b/keyboards/keebio/wavelet/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/keebio/wavelet/readme.md b/keyboards/keebio/wavelet/readme.md index a107289bb4..e77344bfb6 100644 --- a/keyboards/keebio/wavelet/readme.md +++ b/keyboards/keebio/wavelet/readme.md @@ -1,11 +1,10 @@ -Wavelet -======= +# Wavelet A 4x12 ortholinear keyboard using Kailh Choc Low-Profile switches made and sold by [Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/wavelet:default:avrdude + make keebio/wavelet:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +See 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). A build guide for this keyboard can be found here: [Levinson Build Guide](https://docs.keeb.io) diff --git a/keyboards/keebio/wavelet/wavelet.c b/keyboards/keebio/wavelet/wavelet.c index 6f1a050e80..e78585b731 100644 --- a/keyboards/keebio/wavelet/wavelet.c +++ b/keyboards/keebio/wavelet/wavelet.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json b/keyboards/keenome_keys/the_grid_v2/keyboard.json similarity index 55% rename from keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json rename to keyboards/keenome_keys/the_grid_v2/keyboard.json index 40a0ec4039..69df3ea7f6 100644 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json +++ b/keyboards/keenome_keys/the_grid_v2/keyboard.json @@ -1,125 +1,113 @@ { - "manufacturer": "1upkeyboards", - "keyboard_name": "sweet16v2", - "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/", - "maintainer": "ziptyze", - "processor": "RP2040", + "manufacturer": "Keenome Keys", + "keyboard_name": "The Grid v2", + "maintainer": "Keenome Keys", "bootloader": "rp2040", - "board": "GENERIC_RP_RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x5518", - "vid": "0x6F75" - }, "features": { "bootmagic": true, - "encoder": true, "extrakey": true, "mousekey": true, - "nkro": false, + "nkro": true, "rgb_matrix": true }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "ws2812": { - "pin": "GP6", - "driver": "vendor" - }, "matrix_pins": { - "cols": ["GP2", "GP9", "GP8", "GP7"], - "rows": ["GP26", "GP1", "GP18", "GP5"] - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 10 - }, - "encoder": { - "enabled": true, - "rotary": [ - {"pin_a": "GP27", "pin_b": "GP28"}, - {"pin_a": "GP4", "pin_b": "GP3"} + "direct": [ + ["GP25", "GP24", "GP23", "GP22"], + ["GP21", "GP20", "GP19", "GP18"], + ["GP17", "GP16", "GP15", "GP14"], + ["GP13", "GP12", "GP11", "GP10"] ] }, + "processor": "RP2040", "rgb_matrix": { - "animmations": { - "alphas_mods": true, - "gradient_up_down": true, - "gradient_left_right": true, - "breathing": true, - "band_sat": true, - "band_val": true, + "animations": { + "alpha_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_up_down": true, - "rainbow_moving_chevron": 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, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, + "flower_blooming": true, + "gradient_left_right": true, + "gradient_up_down": true, "hue_breathing": true, "hue_pendulum": true, "hue_wave": true, - "pixel_rain": true, + "jellybean_raindrops": true, + "multisplash": true, "pixel_flow": true, "pixel_fractal": true, - "typing_heatmap": true, - "digital_rain": true, - "solid_reactive_simple": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "riverflow": true, + "solid_multisplash": true, "solid_reactive": true, - "solid_reactive_wide": true, - "solid_reactive_multiwide": true, "solid_reactive_cross": true, "solid_reactive_multicross": true, - "solid_reactive_nexus": true, "solid_reactive_multinexus": true, - "splash": true, - "multisplash": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, "solid_splash": true, - "solid_multisplash": true + "splash": true, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "starlight_smooth": true, + "typing_heatmap": true + }, + "default": { + "animation": "cycle_spiral", + "speed": 32, + "val": 144 }, "driver": "ws2812", "layout": [ - {"flags": 4, "matrix": [0, 0], "x": 28, "y": 12}, - {"flags": 4, "matrix": [0, 1], "x": 84, "y": 12}, - {"flags": 4, "matrix": [0, 2], "x": 140, "y": 12}, - {"flags": 4, "matrix": [0, 3], "x": 196, "y": 12}, - {"flags": 2, "x": 196, "y": 17}, - {"flags": 4, "matrix": [1, 3], "x": 196, "y": 28}, - {"flags": 4, "matrix": [1, 2], "x": 140, "y": 28}, - {"flags": 4, "matrix": [1, 1], "x": 84, "y": 28}, - {"flags": 2, "x": 28, "y": 17}, - {"flags": 4, "matrix": [1, 0], "x": 28, "y": 28}, - {"flags": 4, "matrix": [2, 0], "x": 28, "y": 44}, - {"flags": 4, "matrix": [2, 1], "x": 84, "y": 44}, - {"flags": 4, "matrix": [2, 2], "x": 140, "y": 44}, - {"flags": 4, "matrix": [2, 3], "x": 196, "y": 44}, - {"flags": 2, "x": 196, "y": 47}, - {"flags": 4, "matrix": [3, 3], "x": 196, "y": 60}, - {"flags": 4, "matrix": [3, 2], "x": 140, "y": 60}, - {"flags": 4, "matrix": [3, 1], "x": 84, "y": 60}, - {"flags": 2, "x": 28, "y": 47}, - {"flags": 4, "matrix": [3, 0], "x": 28, "y": 60} + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 149, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 149, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 43, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 149, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4} ], "sleep": true }, - "community_layouts": [ - "ortho_4x4" - ], + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x6167" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP26" + }, "layouts": { - "LAYOUT_ortho_4x4": { + "LAYOUT": { "layout": [ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [0, 1], "x": 1, "y": 0}, diff --git a/keyboards/keenome_keys/the_grid_v2/keymaps/default/keymap.c b/keyboards/keenome_keys/the_grid_v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..296c2af1f8 --- /dev/null +++ b/keyboards/keenome_keys/the_grid_v2/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2025 Nathan Sunday (@PoctorDepper) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PENT, KC_PPLS + ) +}; diff --git a/keyboards/keenome_keys/the_grid_v2/readme.md b/keyboards/keenome_keys/the_grid_v2/readme.md new file mode 100644 index 0000000000..d7721c20d4 --- /dev/null +++ b/keyboards/keenome_keys/the_grid_v2/readme.md @@ -0,0 +1,22 @@ +# The Grid v2 + +* Keyboard Maintainer: [PoctorDepper](https://github.com/PoctorDepper) +* Hardware Supported: Custom PCB using RP2040 + +Make example for this keyboard (after setting up your build environment): + + make keenome_keys/the_grid_v2:default + +Flashing example for this keyboard: + + make keenome_keys/the_grid_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/kegen/gboy/keyboard.json b/keyboards/kegen/gboy/keyboard.json index a39316328f..1485a7b59d 100644 --- a/keyboards/kegen/gboy/keyboard.json +++ b/keyboards/kegen/gboy/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "G-Boy", "manufacturer": "Kegen", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kegen/gboy", "maintainer": "mattchan", "usb": { "vid": "0x4B65", diff --git a/keyboards/kelwin/utopia88/keyboard.json b/keyboards/kelwin/utopia88/keyboard.json index d73be1dd27..f768b725fa 100644 --- a/keyboards/kelwin/utopia88/keyboard.json +++ b/keyboards/kelwin/utopia88/keyboard.json @@ -125,4 +125,4 @@ } } } - \ No newline at end of file + diff --git a/keyboards/kepler_33/proto/readme.md b/keyboards/kepler_33/proto/readme.md index ad1918ee1d..dc6c614e5b 100644 --- a/keyboards/kepler_33/proto/readme.md +++ b/keyboards/kepler_33/proto/readme.md @@ -1,3 +1,3 @@ # Kepler-33 / proto -True 40% keyboard. So far only a prototype. \ No newline at end of file +True 40% keyboard. So far only a prototype. diff --git a/keyboards/kepler_33/readme.md b/keyboards/kepler_33/readme.md index edafb26c42..395296ca40 100644 --- a/keyboards/kepler_33/readme.md +++ b/keyboards/kepler_33/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 1 ways: -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead \ No newline at end of file +* **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/keybee/keybee65/keybee65.c b/keyboards/keybee/keybee65/keybee65.c deleted file mode 100644 index 6033dbeaaa..0000000000 --- a/keyboards/keybee/keybee65/keybee65.c +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2020 -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 "quantum.h" - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 }, - { 29, NO_LED, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED, 45, 44 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } - }, { - // LED Index to Physical Position - { 6, 2 }, { 20, 2 }, { 35, 11 }, { 49, 11 }, { 64, 11 }, { 78, 11 }, { 92, 11 }, { 107, 11 }, { 120, 11 }, { 135, 11 }, { 148, 11 }, { 164, 11 }, { 177, 11 }, { 198, 11 }, { 220, 11 }, - { 9, 24 }, { 26, 24 }, { 42, 24 }, { 56, 24 }, { 70, 24 }, { 85, 24 }, { 100, 24 }, { 113, 24 }, { 128, 24 }, { 143, 24 }, { 156, 24 }, { 170, 24 }, { 184, 24 }, { 202, 24 }, { 220, 24 }, - { 11, 38 }, { 29, 38 }, { 46, 38 }, { 60, 38 }, { 74, 38 }, { 88, 38 }, { 103, 38 }, { 118, 38 }, { 132, 38 }, { 146, 38 }, { 160, 38 }, { 174, 38 }, { 198, 38 }, { 220, 38 }, - { 16, 53 }, { 37, 53 }, { 52, 53 }, { 66, 53 }, { 80, 53 }, { 96, 53 }, { 110, 53 }, { 125, 53 }, { 140, 53 }, { 153, 53 }, { 168, 53 }, { 187, 53 }, { 207, 53 }, { 220, 53 }, - { 6, 68 }, { 25, 68 }, { 44, 68 }, { 96, 68 }, { 148, 68 }, { 164, 68 }, { 180, 68 }, { 192, 68 }, { 207, 68 }, { 220, 68 } - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; diff --git a/keyboards/keybee/keybee65/keyboard.json b/keyboards/keybee/keybee65/keyboard.json index a2a4862836..a1f3426dbe 100644 --- a/keyboards/keybee/keybee65/keyboard.json +++ b/keyboards/keybee/keybee65/keyboard.json @@ -12,6 +12,76 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 6, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 2, "flags": 4}, + {"matrix": [0, 2], "x": 35, "y": 11, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 11, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 11, "flags": 4}, + {"matrix": [0, 5], "x": 78, "y": 11, "flags": 4}, + {"matrix": [0, 6], "x": 92, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 107, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 11, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 11, "flags": 4}, + {"matrix": [0, 10], "x": 148, "y": 11, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 11, "flags": 4}, + {"matrix": [0, 12], "x": 177, "y": 11, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 11, "flags": 4}, + {"matrix": [0, 15], "x": 220, "y": 11, "flags": 4}, + {"matrix": [1, 15], "x": 9, "y": 24, "flags": 4}, + {"matrix": [1, 14], "x": 26, "y": 24, "flags": 4}, + {"matrix": [1, 13], "x": 42, "y": 24, "flags": 4}, + {"matrix": [1, 12], "x": 56, "y": 24, "flags": 4}, + {"matrix": [1, 11], "x": 70, "y": 24, "flags": 4}, + {"matrix": [1, 10], "x": 85, "y": 24, "flags": 4}, + {"matrix": [1, 9], "x": 100, "y": 24, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 24, "flags": 4}, + {"matrix": [1, 7], "x": 128, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 143, "y": 24, "flags": 4}, + {"matrix": [1, 5], "x": 156, "y": 24, "flags": 4}, + {"matrix": [1, 4], "x": 170, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 184, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 202, "y": 24, "flags": 4}, + {"matrix": [1, 0], "x": 220, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 11, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 29, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 38, "flags": 4}, + {"matrix": [2, 5], "x": 74, "y": 38, "flags": 4}, + {"matrix": [2, 6], "x": 88, "y": 38, "flags": 4}, + {"matrix": [2, 7], "x": 103, "y": 38, "flags": 4}, + {"matrix": [2, 8], "x": 118, "y": 38, "flags": 4}, + {"matrix": [2, 9], "x": 132, "y": 38, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 38, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 38, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 38, "flags": 4}, + {"matrix": [2, 15], "x": 220, "y": 38, "flags": 4}, + {"matrix": [3, 15], "x": 16, "y": 53, "flags": 4}, + {"matrix": [3, 14], "x": 37, "y": 53, "flags": 4}, + {"matrix": [3, 12], "x": 52, "y": 53, "flags": 4}, + {"matrix": [3, 11], "x": 66, "y": 53, "flags": 4}, + {"matrix": [3, 10], "x": 80, "y": 53, "flags": 4}, + {"matrix": [3, 9], "x": 96, "y": 53, "flags": 4}, + {"matrix": [3, 8], "x": 110, "y": 53, "flags": 4}, + {"matrix": [3, 7], "x": 125, "y": 53, "flags": 4}, + {"matrix": [3, 6], "x": 140, "y": 53, "flags": 4}, + {"matrix": [3, 5], "x": 153, "y": 53, "flags": 4}, + {"matrix": [3, 4], "x": 164, "y": 53, "flags": 4}, + {"matrix": [3, 3], "x": 187, "y": 53, "flags": 4}, + {"matrix": [3, 2], "x": 207, "y": 53, "flags": 4}, + {"matrix": [3, 0], "x": 220, "y": 53, "flags": 4}, + {"matrix": [4, 0], "x": 6, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 25, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 44, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 148, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 164, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 180, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 207, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 220, "y": 64, "flags": 4} + ], "sleep": true }, "rgblight": { diff --git a/keyboards/keybee/keybee65/keymaps/default/keymap.c b/keyboards/keybee/keybee65/keymaps/default/keymap.c index 4662a9bd45..fb5442251b 100644 --- a/keyboards/keybee/keybee65/keymaps/default/keymap.c +++ b/keyboards/keybee/keybee65/keymaps/default/keymap.c @@ -38,44 +38,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_INDICATOR: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - default: - return true; //Process all other keycodes normally - } -} - bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { diff --git a/keyboards/keybee/keybee65/readme.md b/keyboards/keybee/keybee65/readme.md index a6fe9cb0c6..f23b8d2bef 100644 --- a/keyboards/keybee/keybee65/readme.md +++ b/keyboards/keybee/keybee65/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` diff --git a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c deleted file mode 100644 index c3c79d76ee..0000000000 --- a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2019 MechMerlin -// Copyright 2020 @ben_roe (keycapsss.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "progmem.h" - -// Corne 8x6 font -// Online editor: https://helixfonteditor.netlify.com -// or https://joric.github.io/qle/ -// See also: https://github.com/soundmonster/glcdfont_converter - -const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x13, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2, - 0x42, 0x42, 0x42, 0xE2, 0x52, 0x22, - 0x22, 0x22, 0x42, 0x82, 0x02, 0x02, - 0x22, 0x22, 0x02, 0x04, 0xF8, 0x00, - 0x00, 0xF8, 0x04, 0x02, 0x02, 0x82, - 0x42, 0x22, 0x42, 0x82, 0x02, 0x02, - 0x02, 0x82, 0x42, 0x22, 0x12, 0x22, - 0x42, 0x82, 0x02, 0x04, 0xF8, 0x00, - 0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E, - 0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE, - 0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, - 0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00, - 0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E, - 0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, - 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, - 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, - 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, - 0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, - 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, - 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, - 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, - 0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, - 0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, - 0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, - 0x1F, 0x1F, 0x0E, 0x1B, 0x11, 0xC0, - 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x06, - 0x0C, 0xC6, 0x1F, 0x1F, 0x80, 0x5F, - 0x1F, 0x00, 0x1F, 0x1F, 0x8E, 0x9B, - 0x91, 0x80, 0x9F, 0x9F, 0x91, 0x1F, - 0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47, - 0x42, 0x42, 0x42, 0x47, 0x4A, 0x44, - 0x40, 0x40, 0x40, 0x40, 0x41, 0x42, - 0x44, 0x44, 0x40, 0x20, 0x1F, 0x00, - 0x00, 0x1F, 0x20, 0x40, 0x41, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x41, 0x40, - 0x41, 0x41, 0x4F, 0x48, 0x48, 0x48, - 0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00, - 0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78, - 0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D, - 0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00, - 0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, - 0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, - 0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, - 0x88, 0x88, 0x55, 0x55, 0x23, 0x23, - 0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, - 0x23, 0x23, 0x55, 0x55, 0x88, 0x88, - 0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, - 0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, - 0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, - 0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, - 0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, - 0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, - 0x00, 0x84, 0x87, 0x7D, 0x55, 0x57, - 0x55, 0x7D, 0x87, 0x84, 0x00, 0x91, - 0x95, 0x55, 0x55, 0x3F, 0x55, 0x55, - 0x95, 0x91, 0x00, 0x08, 0x08, 0x08, - 0x88, 0xFC, 0x0A, 0x09, 0x08, 0x08, - 0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04, - 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20, - 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04, - 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20, - 0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC, - 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F, - 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC, - 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F, - 0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE, - 0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00, - 0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77, - 0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, - 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, - 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, - 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, - 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, - 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, -}; diff --git a/keyboards/keycapsss/kimiko/kimiko.c b/keyboards/keycapsss/kimiko/kimiko.c deleted file mode 100644 index c99a966603..0000000000 --- a/keyboards/keycapsss/kimiko/kimiko.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2023 @BenRoe (keycapsss.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 "quantum.h" - -#ifdef KEYBOARD_keycapsss_kimiko_rev1 -#ifdef RGB_MATRIX_ENABLE - -//Thanks to Ben (keycapsss) for helpipng me to create g_led_config - -// Physical LED position -// X 0 16 32 48 64 80 96 112 128 144 160 176 208 224 -// -----------------------------------------------------------| Y -// 5 4 3 2 1 0 0 1 2 3 4 5 | 0 -// 6 7 8 9 10 11 11 10 9 8 7 6 | 16 -// 17 16 15 14 13 12 12 13 14 15 16 17 | 32 -// 18 19 20 21 22 23 24 24 23 22 21 20 19 18 | 48 -// 29 28 27 26 25 25 26 27 28 29 | 64 - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 5, 4, 3, 2, 1, 0 }, - { 6, 7, 8, 9, 10, 11 }, - { 17, 16, 15, 14, 13, 12 }, - { 18, 19, 20, 21, 22, 23 }, - { 29, 28, 27, 26, 25, 24 }, - { 35, 34, 33, 32, 31, 30 }, - { 36, 37, 38, 39, 40, 41 }, - { 47, 46, 45, 44, 43, 42 }, - { 48, 49, 50, 51, 52, 53 }, - { 59, 58, 57, 56, 55, 54 } -}, { - // LED Index to Physical Position - // Left half - { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, - { 80, 32 }, { 64, 32 }, { 48, 32 }, { 32, 32 }, { 16, 32 }, { 0, 32 }, - { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, - { 96, 48 }, { 96, 64 }, { 80, 64 }, { 64, 64 }, { 48, 64 }, { 32, 64 }, - // Right half - { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 208, 0 }, { 224, 0 }, - { 224, 16 }, { 208, 16 }, { 176, 16 }, { 160, 16 }, { 144, 16 }, { 128, 16 }, - { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 208, 32 }, { 224, 32 }, - { 224, 48 }, { 208, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 }, - { 112, 48 }, { 112, 64 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 } - -}, { - // LED Index to Flag - // 0x01 = 1 = modifier key - // 0x02 = 2 = underglow - // 0x04 = 4 = key backlight - // 0x08 = 8 = keyboard state indication - // Left half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 1, - 4, 4, 1, 1, 1, 1, - // Right half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1 -} }; - -#endif // RGB_MATRIX_ENABLE -#endif // KEYBOARD_keycapsss_kimiko_rev1 - - diff --git a/keyboards/keycapsss/kimiko/rev1/keyboard.json b/keyboards/keycapsss/kimiko/rev1/keyboard.json index ae09eb83c8..bf9aa76ed7 100644 --- a/keyboards/keycapsss/kimiko/rev1/keyboard.json +++ b/keyboards/keycapsss/kimiko/rev1/keyboard.json @@ -40,6 +40,71 @@ "led_count": 60, "split_count": [30, 30] }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 80, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 64, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 48, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 128, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 144, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 128, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 176, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 1}, + {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 176, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 160, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 144, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 128, "y": 48, "flags": 4}, + {"matrix": [9, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [9, 4], "x": 112, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 128, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 144, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 160, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 176, "y": 64, "flags": 1} + ] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keycapsss/kimiko/keymaps/default/config.h b/keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h similarity index 91% rename from keyboards/keycapsss/kimiko/keymaps/default/config.h rename to keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h index 8be15d964a..fc6f93bec0 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/config.h +++ b/keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h @@ -17,10 +17,6 @@ #pragma once -#define OLED_FONT_H "keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c" -// #define OLED_FONT_WIDTH 5 -// #define OLED_FONT_HEIGHT 7 - #ifdef RGBLIGHT_ENABLE # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c similarity index 97% rename from keyboards/keycapsss/kimiko/keymaps/default/keymap.c rename to keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c index c61fdfc03a..5834ef9c26 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* LOWER * ,-------------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+------| |------+------+------+------+------+------| * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | * |--------+------+------+------+------+------| |------+------+------+------+------+------| @@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' diff --git a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk similarity index 95% rename from keyboards/keycapsss/kimiko/keymaps/default/rules.mk rename to keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk index ef4f0c0b43..16cecbdbc6 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk +++ b/keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk @@ -1,4 +1,3 @@ -OLED_ENABLE = yes ENCODER_ENABLE = yes # ENables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/keycapsss/kimiko/post_config.h b/keyboards/keycapsss/kimiko/rev2/config.h similarity index 87% rename from keyboards/keycapsss/kimiko/post_config.h rename to keyboards/keycapsss/kimiko/rev2/config.h index 31be5898cf..c728510c30 100644 --- a/keyboards/keycapsss/kimiko/post_config.h +++ b/keyboards/keycapsss/kimiko/rev2/config.h @@ -18,8 +18,4 @@ #pragma once -// OLED definitions -#ifndef OLED_FONT_H -# define OLED_FONT_H "keyboards/keycapsss/kimiko/glcdfont.c" -#endif - +#define OLED_FONT_H "keyboards/keycapsss/kimiko/rev2/glcdfont.c" diff --git a/keyboards/keycapsss/kimiko/glcdfont.c b/keyboards/keycapsss/kimiko/rev2/glcdfont.c similarity index 100% rename from keyboards/keycapsss/kimiko/glcdfont.c rename to keyboards/keycapsss/kimiko/rev2/glcdfont.c diff --git a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c index a569beed22..4050a038d3 100644 --- a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* LOWER * QWERTY * ,--------------------------------------------. ,----------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| - * | F1 | F2 | F3 | F4 | F5 | F6 |---------------. ,---------------| Left | Down | Up |Right | ; | | + * | F1 | F2 | F3 | F4 | F5 | F6 |---------------. ,---------------| Left | Down | Up |Right | ; | | * |---------+------+------+------+------+------| [ | [ | | [ | [ |------+------+------+------+------+-----------| * | F7 | F8 | F9 | F10 | F11 | F12 |------|--------| |-------|-------| + | - | = | [ | ] | \ | * `--------------------------------------------| / \ |----------------------------------------------' diff --git a/keyboards/keycapsss/o4l_5x12/keyboard.json b/keyboards/keycapsss/o4l_5x12/keyboard.json index 7425dc7a0b..1a213aa298 100644 --- a/keyboards/keycapsss/o4l_5x12/keyboard.json +++ b/keyboards/keycapsss/o4l_5x12/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "O4L:5x12", "manufacturer": "Keycapsss", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/keycapsss/o4l_5x12", "maintainer": "BenRoe", "usb": { "vid": "0x7983", diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h similarity index 90% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/config.h rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h index ddb539fb09..74597b4253 100644 --- a/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h +++ b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h @@ -17,4 +17,4 @@ #pragma once // place overrides here -#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c" +#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c" diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/keymap.c similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/keymap.c diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/readme.md similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/readme.md diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/rules.mk similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/rules.mk diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c b/keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c rename to keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c index f4f0c0af47..1777fe4cf3 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c +++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c @@ -123,32 +123,6 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { // clang-format on -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; diff --git a/keyboards/keychron/c1_pro/ansi/white/white.c b/keyboards/keychron/c1_pro/ansi/white/white.c index 9009225b3b..96beb1e8d5 100644 --- a/keyboards/keychron/c1_pro/ansi/white/white.c +++ b/keyboards/keychron/c1_pro/ansi/white/white.c @@ -123,32 +123,6 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { // clang-format on -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case LM_TOGG: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; - } - return true; -} - bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!led_matrix_indicators_advanced_user(led_min, led_max)) { return false; diff --git a/keyboards/keychron/c1_pro_v2/c1_pro_v2.c b/keyboards/keychron/c1_pro_v2/c1_pro_v2.c index d4ff5eb9dc..ef93847d87 100644 --- a/keyboards/keychron/c1_pro_v2/c1_pro_v2.c +++ b/keyboards/keychron/c1_pro_v2/c1_pro_v2.c @@ -28,54 +28,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } #endif -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif -#ifdef LED_MATRIX_ENABLE - case QK_LED_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif - default: - return true; - } -} - void keyboard_post_init_kb(void) { gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); diff --git a/keyboards/keychron/c2_pro/c2_pro.c b/keyboards/keychron/c2_pro/c2_pro.c index bb7aba4f81..6c8105e191 100644 --- a/keyboards/keychron/c2_pro/c2_pro.c +++ b/keyboards/keychron/c2_pro/c2_pro.c @@ -31,64 +31,20 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif // DIP_SWITCH_ENABLE # ifdef RGB_MATRIX_ENABLE -# define LED_TOGGLE_KEYCODE QK_RGB_MATRIX_TOGGLE -# define LED_SET_FLAGS rgb_matrix_set_flags -# define LED_GET_FLAGS rgb_matrix_get_flags -# define LED_SET_ALL_OFF rgb_matrix_set_color_all(COLOR_BLACK) -# define LED_IS_ENABLED rgb_matrix_is_enabled -# define LED_ENABLE rgb_matrix_enable # define LED_MATRIX_INDICATORS_KB rgb_matrix_indicators_kb # define LED_MATRIX_INDICATORS_USER rgb_matrix_indicators_user # define LED_MATRIX_SET_COLOR rgb_matrix_set_color -# define LED_MATRIX_UPDATE_PWN_BUFFERS rgb_matrix_update_pwm_buffers -# define LED_MATRIX_INDICATORS_NONE_KB rgb_matrix_indicators_none_kb -# define LED_MATRIX_IS_ENABLED rgb_matrix_is_enabled # define COLOR_WHITE 255, 255, 255 # define COLOR_BLACK 0, 0, 0 # endif # ifdef LED_MATRIX_ENABLE -# define LED_TOGGLE_KEYCODE QK_LED_MATRIX_TOGGLE -# define LED_SET_FLAGS led_matrix_set_flags -# define LED_GET_FLAGS led_matrix_get_flags -# define LED_SET_ALL_OFF led_matrix_set_value_all(COLOR_BLACK) -# define LED_IS_ENABLED led_matrix_is_enabled -# define LED_ENABLE led_matrix_enable # define LED_MATRIX_INDICATORS_KB led_matrix_indicators_kb # define LED_MATRIX_INDICATORS_USER led_matrix_indicators_user # define LED_MATRIX_SET_COLOR led_matrix_set_value -# define LED_MATRIX_UPDATE_PWN_BUFFERS led_matrix_update_pwm_buffers -# define LED_MATRIX_INDICATORS_NONE_KB led_matrix_indicators_none_kb -# define LED_MATRIX_IS_ENABLED led_matrix_is_enabled # define COLOR_WHITE 255 # define COLOR_BLACK 0 -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case LED_TOGGLE_KEYCODE: - if (record->event.pressed) { - switch (LED_GET_FLAGS()) { - case LED_FLAG_ALL: { - LED_SET_FLAGS(LED_FLAG_NONE); - LED_SET_ALL_OFF; - } break; - default: { - LED_SET_FLAGS(LED_FLAG_ALL); - } break; - } - } - if (!LED_IS_ENABLED()) { - LED_SET_FLAGS(LED_FLAG_ALL); - LED_ENABLE(); - } - return false; - } - return true; -} - bool LED_MATRIX_INDICATORS_KB(void) { if (!LED_MATRIX_INDICATORS_USER()) { return false; diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json index 9c0e1ac72e..8a7d0968b1 100644 --- a/keyboards/keychron/c2_pro/info.json +++ b/keyboards/keychron/c2_pro/info.json @@ -26,7 +26,6 @@ "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "C14"], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], - "custom": true, "custom_lite": true }, "diode_direction": "ROW2COL" diff --git a/keyboards/keychron/c2_pro_v2/c2_pro_v2.c b/keyboards/keychron/c2_pro_v2/c2_pro_v2.c index d4ff5eb9dc..ef93847d87 100644 --- a/keyboards/keychron/c2_pro_v2/c2_pro_v2.c +++ b/keyboards/keychron/c2_pro_v2/c2_pro_v2.c @@ -28,54 +28,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } #endif -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif -#ifdef LED_MATRIX_ENABLE - case QK_LED_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif - default: - return true; - } -} - void keyboard_post_init_kb(void) { gpio_set_pin_output_push_pull(LED_MAC_OS_PIN); gpio_set_pin_output_push_pull(LED_WIN_OS_PIN); diff --git a/keyboards/keychron/c3_pro/c3_pro.c b/keyboards/keychron/c3_pro/c3_pro.c index 0c584b0938..810a291dcc 100644 --- a/keyboards/keychron/c3_pro/c3_pro.c +++ b/keyboards/keychron/c3_pro/c3_pro.c @@ -41,44 +41,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return false; } switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif -#ifdef LED_MATRIX_ENABLE - case QK_LED_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif case KC_OSSW: if (record->event.pressed) { // Switches default layer between `MAC_BASE` and `WIN_BASE` (0 and 2) diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json index d7a7317e3f..b3e30e65d8 100644 --- a/keyboards/keychron/q0/info.json +++ b/keyboards/keychron/q0/info.json @@ -52,4 +52,4 @@ "nkro": true } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q0/q0.c b/keyboards/keychron/q0/q0.c index 7b5f7a5907..3c6677a93c 100644 --- a/keyboards/keychron/q0/q0.c +++ b/keyboards/keychron/q0/q0.c @@ -18,30 +18,6 @@ #if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - return false; -# endif - } - return true; -} - 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; diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c index a4432cd4ce..5359d2b30b 100644 --- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c @@ -121,37 +121,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, - { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 }, - { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 }, - { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 }, - }, - { - // LED Index to Physical Position - {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36}, - {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q10/ansi_encoder/keyboard.json b/keyboards/keychron/q10/ansi_encoder/keyboard.json index f47136edf7..6cfb637b0d 100644 --- a/keyboards/keychron/q10/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q10/ansi_encoder/keyboard.json @@ -27,6 +27,98 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_89": { "layout": [ diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c index 9ff43263b2..c857c854ac 100644 --- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c @@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 }, - { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 }, - { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 }, - { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 }, - }, - { - // LED Index to Physical Position - {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36}, - {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q10/iso_encoder/keyboard.json b/keyboards/keychron/q10/iso_encoder/keyboard.json index 5ec70d1a14..b83015971f 100644 --- a/keyboards/keychron/q10/iso_encoder/keyboard.json +++ b/keyboards/keychron/q10/iso_encoder/keyboard.json @@ -27,6 +27,99 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1}, + {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_90": { "layout": [ diff --git a/keyboards/keychron/q10/q10.c b/keyboards/keychron/q10/q10.c index 79abdacd4f..3f22dc864a 100644 --- a/keyboards/keychron/q10/q10.c +++ b/keyboards/keychron/q10/q10.c @@ -32,34 +32,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -# endif - } - return true; -} - 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; diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c index 8dd9120ca1..efc3ef9d01 100755 --- a/keyboards/keychron/q11/q11.c +++ b/keyboards/keychron/q11/q11.c @@ -29,31 +29,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c index ba32f58fc6..35e8414be6 100644 --- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c @@ -135,36 +135,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA6, CB10_CA6, CB11_CA6}, // Down {1, CB12_CA7, CB10_CA7, CB11_CA7}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 }, - { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 37, 38, 39 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 76, 71, 72, 56, 57, 58 }, - { 77, __, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, __, 88, 89, 73, 74, 75 }, - { 92, 93, 94, __, __, 21, 95, 40, __, 96, 97, 98, 99, 100, 101, 90, 2, 91 }, - }, - { - // LED Index to Physical Position - {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {161,0}, {172,0}, {184,0}, {195,0}, {209,0}, {224,0}, - {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {118,15}, {129,15}, {141,15}, {152,15}, {164,15}, {175,15}, {186,15}, {204,15}, {224,15}, - {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {78,26}, {89,26}, {101,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {181,26}, {192,26}, {207,26}, {224,26}, - {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {81,38}, {92,38}, {103,38}, {115,38}, {126,38}, {138,38}, {149,38}, {161,38}, {172,38}, {184,38}, {202,38}, {224,38}, - {0,49}, {11,49}, {23,49}, {34,55}, {56,49}, {75,49}, {86,49}, {98,49}, {109,49}, {121,49}, {132,49}, {144,49}, {155,49}, {166,49}, {178,49}, {194,49}, {213,52}, - {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {175,61}, {186,61}, {201,64}, {213,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; #endif diff --git a/keyboards/keychron/q12/ansi_encoder/keyboard.json b/keyboards/keychron/q12/ansi_encoder/keyboard.json index d2f90cb8ac..faf8b5527e 100644 --- a/keyboards/keychron/q12/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q12/ansi_encoder/keyboard.json @@ -24,6 +24,112 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 16], "x": 11, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 23, "y": 0, "flags": 1}, + {"matrix": [5, 16], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 49, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 63, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 161, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 184, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 195, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 15], "x": 0, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 11, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 23, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 34, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 49, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 106, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 129, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 141, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 164, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 175, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 15], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 11, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 23, "y": 26, "flags": 4}, + {"matrix": [5, 7], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 89, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 101, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 135, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 146, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 158, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 181, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 15], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 11, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 23, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 53, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 92, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 115, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 138, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 161, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 184, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 202, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 0, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 11, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 23, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 34, "y": 55, "flags": 4}, + {"matrix": [4, 0], "x": 56, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 86, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 98, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 109, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 132, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 144, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 155, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 166, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 178, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 213, "y": 52, "flags": 1}, + {"matrix": [5, 15], "x": 6, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 23, "y": 61, "flags": 4}, + {"matrix": [5, 0], "x": 50, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 65, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 79, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 122, "y": 61, "flags": 4}, + {"matrix": [5, 9], "x": 163, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 175, "y": 61, "flags": 4}, + {"matrix": [5, 11], "x": 186, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 201, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 213, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_103": { "layout": [ diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c index f9513e7f41..058a5d2ff4 100644 --- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c @@ -138,36 +138,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA6, CB10_CA6, CB11_CA6}, // Down {1, CB12_CA7, CB10_CA7, CB11_CA7}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 }, - { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 71, 54, 37, 38, 39 }, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 76, 70, 72, 55, 56, 57 }, - { 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 90, 73, 74, 75 }, - { 93, 94, 95, __, __, 21, 96, 40, __, 97, 98, 99, 100, 101, 102, 91, 2, 92 }, - }, - { - // LED Index to Physical Position - {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {160,0}, {172,0}, {183,0}, {194,0}, {209,0}, {224,0}, - {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {117,15}, {129,15}, {140,15}, {152,15}, {163,15}, {175,15}, {186,15}, {204,15}, {224,15}, - {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {77,26}, {89,26}, {100,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {180,26}, {192,26}, {224,26}, - {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {80,38}, {92,38}, {103,38}, {115,38}, {126,38}, {137,38}, {149,38}, {160,38}, {172,38}, {183,38}, {195,38}, {210,34}, {224,38}, - {0,49}, {11,49}, {23,49}, {34,55}, {50,49}, {63,49}, {75,49}, {86,49}, {97,49}, {109,49}, {120,49}, {132,49}, {143,49}, {155,49}, {166,49}, {177,49}, {193,49}, {212,52}, - {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {174,61}, {186,61}, {201,64}, {212,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; #endif diff --git a/keyboards/keychron/q12/iso_encoder/keyboard.json b/keyboards/keychron/q12/iso_encoder/keyboard.json index 29e24a1491..d5105ac2b3 100644 --- a/keyboards/keychron/q12/iso_encoder/keyboard.json +++ b/keyboards/keychron/q12/iso_encoder/keyboard.json @@ -24,6 +24,113 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 16], "x": 11, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 23, "y": 0, "flags": 1}, + {"matrix": [5, 16], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 49, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 63, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 183, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 15], "x": 0, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 11, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 23, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 34, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 49, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 106, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 129, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 163, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 175, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 15], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 11, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 23, "y": 26, "flags": 4}, + {"matrix": [5, 7], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 77, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 89, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 135, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 146, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 158, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 15], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 11, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 23, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 53, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 80, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 92, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 115, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 137, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 183, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 195, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 210, "y": 34, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 0, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 11, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 23, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 34, "y": 55, "flags": 4}, + {"matrix": [4, 0], "x": 50, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 86, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 97, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 109, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 120, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 132, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 143, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 155, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 166, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 177, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 193, "y": 49, "flags": 4}, + {"matrix": [4, 14], "x": 212, "y": 52, "flags": 1}, + {"matrix": [5, 15], "x": 6, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 23, "y": 61, "flags": 4}, + {"matrix": [5, 0], "x": 50, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 65, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 79, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 122, "y": 61, "flags": 4}, + {"matrix": [5, 9], "x": 163, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 174, "y": 61, "flags": 4}, + {"matrix": [5, 11], "x": 186, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 201, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 212, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_104": { "layout": [ diff --git a/keyboards/keychron/q12/q12.c b/keyboards/keychron/q12/q12.c index bc0645ab47..25a08ae549 100644 --- a/keyboards/keychron/q12/q12.c +++ b/keyboards/keychron/q12/q12.c @@ -29,31 +29,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif #if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { diff --git a/keyboards/keychron/q1v1/ansi/config.h b/keyboards/keychron/q1v1/ansi/config.h index 83ac22d2b6..c0d96766a3 100644 --- a/keyboards/keychron/q1v1/ansi/config.h +++ b/keyboards/keychron/q1v1/ansi/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 45 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v1/ansi/readme.md b/keyboards/keychron/q1v1/ansi/readme.md index 5cf488f048..77fae2e5fc 100644 --- a/keyboards/keychron/q1v1/ansi/readme.md +++ b/keyboards/keychron/q1v1/ansi/readme.md @@ -1 +1 @@ -# The ANSI variant of the Keychron Q1 \ No newline at end of file +# The ANSI variant of the Keychron Q1 diff --git a/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json index 034bb4357f..80cd81f8a4 100644 --- a/keyboards/keychron/q1v1/info.json +++ b/keyboards/keychron/q1v1/info.json @@ -59,4 +59,4 @@ "nkro": true } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q1v1/iso/config.h b/keyboards/keychron/q1v1/iso/config.h index 4593b41067..ee86dc6881 100644 --- a/keyboards/keychron/q1v1/iso/config.h +++ b/keyboards/keychron/q1v1/iso/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 44 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 44 diff --git a/keyboards/keychron/q1v1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c index ef4f3425af..108ce01542 100644 --- a/keyboards/keychron/q1v1/iso/iso.c +++ b/keyboards/keychron/q1v1/iso/iso.c @@ -113,37 +113,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS15, SW4_CS15, SW5_CS15}, {1, SW6_CS16, SW4_CS16, SW5_CS16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q1v1/iso/readme.md b/keyboards/keychron/q1v1/iso/readme.md index 777ce04773..cbf5f7d6de 100644 --- a/keyboards/keychron/q1v1/iso/readme.md +++ b/keyboards/keychron/q1v1/iso/readme.md @@ -1 +1 @@ -# The ISO variant of the Keychron Q1 \ No newline at end of file +# The ISO variant of the Keychron Q1 diff --git a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c index 43eab9318c..dd350bda49 100644 --- a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c @@ -65,4 +65,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v1/q1v1.c b/keyboards/keychron/q1v1/q1v1.c index 8571b33751..2fe5b970d8 100644 --- a/keyboards/keychron/q1v1/q1v1.c +++ b/keyboards/keychron/q1v1/q1v1.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); @@ -70,4 +44,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { return true; } -#endif // CAPS_LOCK_LED_INDEX \ No newline at end of file +#endif // CAPS_LOCK_LED_INDEX diff --git a/keyboards/keychron/q1v1/readme.md b/keyboards/keychron/q1v1/readme.md index af54da8195..375fa2db82 100644 --- a/keyboards/keychron/q1v1/readme.md +++ b/keyboards/keychron/q1v1/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json index f0342254fa..ba6f908bbb 100644 --- a/keyboards/keychron/q1v2/info.json +++ b/keyboards/keychron/q1v2/info.json @@ -27,7 +27,6 @@ "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", null, null, null, null, null, null, null, null], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], - "custom": true, "custom_lite": true }, "diode_direction": "ROW2COL", diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/q1v2.c b/keyboards/keychron/q1v2/q1v2.c index 8211883869..a8217997f7 100644 --- a/keyboards/keychron/q1v2/q1v2.c +++ b/keyboards/keychron/q1v2/q1v2.c @@ -30,34 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -# endif - } - return true; -} - 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; diff --git a/keyboards/keychron/q2/ansi/config.h b/keyboards/keychron/q2/ansi/config.h index 1850088b1f..9cd663a216 100644 --- a/keyboards/keychron/q2/ansi/config.h +++ b/keyboards/keychron/q2/ansi/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/ansi_encoder/config.h b/keyboards/keychron/q2/ansi_encoder/config.h index 1850088b1f..9cd663a216 100644 --- a/keyboards/keychron/q2/ansi_encoder/config.h +++ b/keyboards/keychron/q2/ansi_encoder/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json index c322a9902f..6e14a21d82 100644 --- a/keyboards/keychron/q2/info.json +++ b/keyboards/keychron/q2/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q2/iso/config.h b/keyboards/keychron/q2/iso/config.h index 22ddcba3ad..7a10ce6d65 100644 --- a/keyboards/keychron/q2/iso/config.h +++ b/keyboards/keychron/q2/iso/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 29 diff --git a/keyboards/keychron/q2/iso_encoder/config.h b/keyboards/keychron/q2/iso_encoder/config.h index 22ddcba3ad..7a10ce6d65 100644 --- a/keyboards/keychron/q2/iso_encoder/config.h +++ b/keyboards/keychron/q2/iso_encoder/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 29 diff --git a/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q2/q2.c b/keyboards/keychron/q2/q2.c index 01a23b8f3e..f71a602e3f 100644 --- a/keyboards/keychron/q2/q2.c +++ b/keyboards/keychron/q2/q2.c @@ -30,30 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/q2/readme.md b/keyboards/keychron/q2/readme.md index 3abd7280ca..21fd6b8bc4 100644 --- a/keyboards/keychron/q2/readme.md +++ b/keyboards/keychron/q2/readme.md @@ -28,4 +28,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/keychron/q3/info.json b/keyboards/keychron/q3/info.json index a08a115bb6..68594e10f4 100644 --- a/keyboards/keychron/q3/info.json +++ b/keyboards/keychron/q3/info.json @@ -51,4 +51,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q3/q3.c b/keyboards/keychron/q3/q3.c index 0cd0509df5..59ab0a5abb 100644 --- a/keyboards/keychron/q3/q3.c +++ b/keyboards/keychron/q3/q3.c @@ -33,32 +33,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/q4/ansi/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c index 826243be09..32a836126e 100644 --- a/keyboards/keychron/q4/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c @@ -63,4 +63,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______) }; -// clang-format on \ No newline at end of file +// clang-format on diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json index bcbfd74217..2eb235177f 100644 --- a/keyboards/keychron/q4/info.json +++ b/keyboards/keychron/q4/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q4/iso/keymaps/default/keymap.c b/keyboards/keychron/q4/iso/keymaps/default/keymap.c index 12d503d324..4ccefe06a3 100644 --- a/keyboards/keychron/q4/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q4/iso/keymaps/default/keymap.c @@ -63,4 +63,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______) }; -// clnag-format on \ No newline at end of file +// clnag-format on diff --git a/keyboards/keychron/q4/q4.c b/keyboards/keychron/q4/q4.c index 44c139f71c..0ba22f8f65 100644 --- a/keyboards/keychron/q4/q4.c +++ b/keyboards/keychron/q4/q4.c @@ -29,31 +29,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif // DIP_SWITCH_ENABLE #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { diff --git a/keyboards/keychron/q5/ansi/keyboard.json b/keyboards/keychron/q5/ansi/keyboard.json index 399b5873da..3d5658a836 100644 --- a/keyboards/keychron/q5/ansi/keyboard.json +++ b/keyboards/keychron/q5/ansi/keyboard.json @@ -217,4 +217,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/ansi/rules.mk b/keyboards/keychron/q5/ansi/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/ansi/rules.mk +++ b/keyboards/keychron/q5/ansi/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/ansi_encoder/keyboard.json b/keyboards/keychron/q5/ansi_encoder/keyboard.json index 479ef38e72..b08ff46fc6 100644 --- a/keyboards/keychron/q5/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q5/ansi_encoder/keyboard.json @@ -223,4 +223,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/ansi_encoder/rules.mk b/keyboards/keychron/q5/ansi_encoder/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/ansi_encoder/rules.mk +++ b/keyboards/keychron/q5/ansi_encoder/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index 4d297b223a..24e531ef7f 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -34,4 +34,4 @@ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } /* Encoder Configuration*/ -#define ENCODER_DEFAULT_POS 0x3 \ No newline at end of file +#define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q5/info.json b/keyboards/keychron/q5/info.json index 1e7a5de703..6291bc0313 100644 --- a/keyboards/keychron/q5/info.json +++ b/keyboards/keychron/q5/info.json @@ -52,4 +52,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/iso/keyboard.json b/keyboards/keychron/q5/iso/keyboard.json index 35ba9f9d04..04f1f18bfa 100644 --- a/keyboards/keychron/q5/iso/keyboard.json +++ b/keyboards/keychron/q5/iso/keyboard.json @@ -225,4 +225,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/iso/rules.mk b/keyboards/keychron/q5/iso/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/iso/rules.mk +++ b/keyboards/keychron/q5/iso/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/iso_encoder/keyboard.json b/keyboards/keychron/q5/iso_encoder/keyboard.json index 10e6767eaf..ed6cf2653d 100644 --- a/keyboards/keychron/q5/iso_encoder/keyboard.json +++ b/keyboards/keychron/q5/iso_encoder/keyboard.json @@ -217,4 +217,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/iso_encoder/rules.mk b/keyboards/keychron/q5/iso_encoder/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/iso_encoder/rules.mk +++ b/keyboards/keychron/q5/iso_encoder/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/q5.c b/keyboards/keychron/q5/q5.c index c45eaa3cb2..8dd0a79772 100644 --- a/keyboards/keychron/q5/q5.c +++ b/keyboards/keychron/q5/q5.c @@ -32,34 +32,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -# endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/q5/readme.md b/keyboards/keychron/q5/readme.md index b78473cd2c..87be63d582 100644 --- a/keyboards/keychron/q5/readme.md +++ b/keyboards/keychron/q5/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c index 62a22971e1..bbc467bb49 100644 --- a/keyboards/keychron/q6/ansi/ansi.c +++ b/keyboards/keychron/q6/ansi/ansi.c @@ -141,37 +141,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/ansi/keyboard.json b/keyboards/keychron/q6/ansi/keyboard.json index 664fe87008..10cb586908 100644 --- a/keyboards/keychron/q6/ansi/keyboard.json +++ b/keyboards/keychron/q6/ansi/keyboard.json @@ -21,6 +21,118 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_108": { "layout": [ diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c index b3d8a6bd4c..5897e1be72 100644 --- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c @@ -142,36 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/ansi_encoder/keyboard.json b/keyboards/keychron/q6/ansi_encoder/keyboard.json index a37b68f553..8b3ad779c9 100644 --- a/keyboards/keychron/q6/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q6/ansi_encoder/keyboard.json @@ -27,6 +27,118 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_109": { "layout": [ diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c index eb6cab855a..5316273776 100644 --- a/keyboards/keychron/q6/iso/iso.c +++ b/keyboards/keychron/q6/iso/iso.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/iso/keyboard.json b/keyboards/keychron/q6/iso/keyboard.json index 28730b2d74..fae62800a3 100644 --- a/keyboards/keychron/q6/iso/keyboard.json +++ b/keyboards/keychron/q6/iso/keyboard.json @@ -21,6 +21,119 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_109": { "layout": [ diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c index 439e1cee50..5316273776 100644 --- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/iso_encoder/keyboard.json b/keyboards/keychron/q6/iso_encoder/keyboard.json index 3fc4ee8f1c..b404e9f50d 100644 --- a/keyboards/keychron/q6/iso_encoder/keyboard.json +++ b/keyboards/keychron/q6/iso_encoder/keyboard.json @@ -27,6 +27,119 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_110": { "layout": [ diff --git a/keyboards/keychron/q6/q6.c b/keyboards/keychron/q6/q6.c index d5cdd37c51..70cc05c584 100644 --- a/keyboards/keychron/q6/q6.c +++ b/keyboards/keychron/q6/q6.c @@ -32,32 +32,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c index 8b702eb5a6..b69b303d36 100644 --- a/keyboards/keychron/q60/ansi/ansi.c +++ b/keyboards/keychron/q60/ansi/ansi.c @@ -92,34 +92,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB9_CA15, CB7_CA15, CB8_CA15}, {0, CB9_CA16, CB7_CA16, CB8_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __, 41 }, - { 42, __, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, - { 55, 56, __, __, __, __, 57, __, __, __, 58, 59, 14, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {80,0}, {96,0}, {112,0}, {128,0}, {144,0}, {160,0}, {176,0}, {192,0}, {208,0}, {224,0}, - {4,16}, {24,16}, {40,16}, {56,16}, {72,16}, {88,16}, {104,16}, {120,16}, {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {220,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {76,32}, {92,32}, {108,32}, {124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32}, - {10,48}, {36,48}, {52,48}, {68,48}, {84,48}, {100,48}, {116,48}, {132,48}, {148,48}, {164,48}, {180,48}, {202,48}, {224,48}, - {24,64}, {44,64}, {112,64}, {180,64}, {200,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q60/ansi/keyboard.json b/keyboards/keychron/q60/ansi/keyboard.json index 83ee57d011..762ef21161 100644 --- a/keyboards/keychron/q60/ansi/keyboard.json +++ b/keyboards/keychron/q60/ansi/keyboard.json @@ -23,6 +23,70 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1}, + {"matrix": [4, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 24, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 44, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 200, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_60": { "layout": [ diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c index 6c4c2abe21..f16cc60424 100644 --- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45 }, - { 46, 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 }, - { 61, 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71 }, - }, - { - // LED Index to Physical Position - {20,0}, {33,0}, {47,0}, {60,0}, {73,0}, {86,0}, {99,0}, {112,0}, {125,0}, {138,0}, {151,0}, {164,0}, {177,0}, {197,0}, {224,0}, - {0,15}, {24,15}, {40,15}, {53,15}, {66,15}, {79,15}, {92,15}, {105,15}, {119,15}, {132,15}, {145,15}, {158,15}, {171,15}, {184,15}, {200,15}, {224,15}, - {0,30}, {25,30}, {43,30}, {56,30}, {69,30}, {83,30}, {96,30}, {109,30}, {122,30}, {135,30}, {148,30}, {161,30}, {174,30}, {195,30}, {224,30}, - {0,45}, {29,45}, {50,45}, {63,45}, {76,45}, {89,45}, {102,45}, {115,45}, {128,45}, {141,45}, {155,45}, {168,45}, {186,45}, {207,49}, {224,45}, - {0,60}, {22,60}, {38,60}, {55,60}, {104,60}, {151,60}, {164,60}, {177,60}, {194,64}, {207,64}, {220,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q65/ansi_encoder/keyboard.json b/keyboards/keychron/q65/ansi_encoder/keyboard.json index 76b17dd5fb..1fef623719 100644 --- a/keyboards/keychron/q65/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q65/ansi_encoder/keyboard.json @@ -27,6 +27,82 @@ "dip_switch": true, "rgb_matrix": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 125, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 151, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 197, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 15, "flags": 1}, + {"matrix": [1, 2], "x": 40, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 79, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 92, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 158, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 171, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 9}, + {"matrix": [2, 2], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 83, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 195, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 29, "y": 45, "flags": 1}, + {"matrix": [3, 3], "x": 50, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 89, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 155, "y": 45, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 186, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 207, "y": 49, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 45, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 38, "y": 60, "flags": 1}, + {"matrix": [4, 3], "x": 55, "y": 60, "flags": 1}, + {"matrix": [4, 7], "x": 104, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 164, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 177, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 207, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 220, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_73": { "layout": [ diff --git a/keyboards/keychron/q65/q65.c b/keyboards/keychron/q65/q65.c index e02e53e828..2dda7f2b2f 100644 --- a/keyboards/keychron/q65/q65.c +++ b/keyboards/keychron/q65/q65.c @@ -31,32 +31,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { // clang-format on #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/q7/ansi/keyboard.json b/keyboards/keychron/q7/ansi/keyboard.json index 62cff888e1..f6fd217b22 100644 --- a/keyboards/keychron/q7/ansi/keyboard.json +++ b/keyboards/keychron/q7/ansi/keyboard.json @@ -164,4 +164,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q7/info.json b/keyboards/keychron/q7/info.json index 663ad4b275..b1dcf4c1d2 100644 --- a/keyboards/keychron/q7/info.json +++ b/keyboards/keychron/q7/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q7/iso/keyboard.json b/keyboards/keychron/q7/iso/keyboard.json index d98ec8fa5e..fc6749c37f 100644 --- a/keyboards/keychron/q7/iso/keyboard.json +++ b/keyboards/keychron/q7/iso/keyboard.json @@ -167,4 +167,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q7/q7.c b/keyboards/keychron/q7/q7.c index a9ccdb81ba..2427d580a8 100644 --- a/keyboards/keychron/q7/q7.c +++ b/keyboards/keychron/q7/q7.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/q7/readme.md b/keyboards/keychron/q7/readme.md index d6fedb1493..7d973e582b 100644 --- a/keyboards/keychron/q7/readme.md +++ b/keyboards/keychron/q7/readme.md @@ -20,4 +20,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/keychron/q8/ansi/keyboard.json b/keyboards/keychron/q8/ansi/keyboard.json index 2580b4163e..259fee5f8a 100644 --- a/keyboards/keychron/q8/ansi/keyboard.json +++ b/keyboards/keychron/q8/ansi/keyboard.json @@ -159,4 +159,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/ansi_encoder/keyboard.json b/keyboards/keychron/q8/ansi_encoder/keyboard.json index b3f82637db..0ead20bbce 100644 --- a/keyboards/keychron/q8/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q8/ansi_encoder/keyboard.json @@ -164,4 +164,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/info.json b/keyboards/keychron/q8/info.json index b0478e019b..c9183a5c47 100644 --- a/keyboards/keychron/q8/info.json +++ b/keyboards/keychron/q8/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/iso/keyboard.json b/keyboards/keychron/q8/iso/keyboard.json index fe87955c39..460a3c5e68 100644 --- a/keyboards/keychron/q8/iso/keyboard.json +++ b/keyboards/keychron/q8/iso/keyboard.json @@ -160,4 +160,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/iso_encoder/keyboard.json b/keyboards/keychron/q8/iso_encoder/keyboard.json index 46a93ec63b..37e50a4501 100644 --- a/keyboards/keychron/q8/iso_encoder/keyboard.json +++ b/keyboards/keychron/q8/iso_encoder/keyboard.json @@ -167,4 +167,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/q8.c b/keyboards/keychron/q8/q8.c index b16f89115d..4bd83a9bf3 100644 --- a/keyboards/keychron/q8/q8.c +++ b/keyboards/keychron/q8/q8.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; diff --git a/keyboards/keychron/q8/readme.md b/keyboards/keychron/q8/readme.md index eaa286899a..d6c1db5053 100644 --- a/keyboards/keychron/q8/readme.md +++ b/keyboards/keychron/q8/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/keychron/q9/ansi/keyboard.json b/keyboards/keychron/q9/ansi/keyboard.json index ec5f367ed1..89af3688a7 100644 --- a/keyboards/keychron/q9/ansi/keyboard.json +++ b/keyboards/keychron/q9/ansi/keyboard.json @@ -122,4 +122,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/ansi_encoder/keyboard.json b/keyboards/keychron/q9/ansi_encoder/keyboard.json index 0fc135771a..3c75f804fc 100644 --- a/keyboards/keychron/q9/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q9/ansi_encoder/keyboard.json @@ -123,4 +123,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index e0e7e19227..6d0337b148 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -30,4 +30,4 @@ { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } /* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 \ No newline at end of file +#define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q9/info.json b/keyboards/keychron/q9/info.json index ff80a256d3..9e284a2bd9 100644 --- a/keyboards/keychron/q9/info.json +++ b/keyboards/keychron/q9/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/iso/keyboard.json b/keyboards/keychron/q9/iso/keyboard.json index 19a818ebb8..4a03f38f27 100644 --- a/keyboards/keychron/q9/iso/keyboard.json +++ b/keyboards/keychron/q9/iso/keyboard.json @@ -124,4 +124,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/iso_encoder/keyboard.json b/keyboards/keychron/q9/iso_encoder/keyboard.json index 087c2f8188..b9e6a70c63 100644 --- a/keyboards/keychron/q9/iso_encoder/keyboard.json +++ b/keyboards/keychron/q9/iso_encoder/keyboard.json @@ -127,4 +127,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/q9.c b/keyboards/keychron/q9/q9.c index a9ccdb81ba..2427d580a8 100644 --- a/keyboards/keychron/q9/q9.c +++ b/keyboards/keychron/q9/q9.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/q9/readme.md b/keyboards/keychron/q9/readme.md index c7641f1cf9..5cb0374659 100644 --- a/keyboards/keychron/q9/readme.md +++ b/keyboards/keychron/q9/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/keychron/q9_plus/q9_plus.c b/keyboards/keychron/q9_plus/q9_plus.c index d155936f98..4624630a46 100755 --- a/keyboards/keychron/q9_plus/q9_plus.c +++ b/keyboards/keychron/q9_plus/q9_plus.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; diff --git a/keyboards/keychron/s1/ansi/rgb/keyboard.json b/keyboards/keychron/s1/ansi/rgb/keyboard.json index fb52ee6423..2dbc05f2fa 100644 --- a/keyboards/keychron/s1/ansi/rgb/keyboard.json +++ b/keyboards/keychron/s1/ansi/rgb/keyboard.json @@ -33,6 +33,92 @@ "solid_splash": true }, "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 194, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 1}, + {"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": 202, "y": 13, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 41, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 131, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 146, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 175, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 63, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 78, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 93, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 123, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 138, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 153, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 189, "y": 51, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 51, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 95, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 149, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 194, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1} + ] "sleep": true }, "features": { diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c index af6390f753..a40fdbd7cc 100644 --- a/keyboards/keychron/s1/ansi/rgb/rgb.c +++ b/keyboards/keychron/s1/ansi/rgb/rgb.c @@ -117,37 +117,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA14, CB4_CA14, CB5_CA14}, // down {1, CB6_CA16, CB4_CA16, CB5_CA16}, // right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 }, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 14, 58, 59 }, - { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 }, - { 74, 75, 76, __, __, __, 77, __, __, 78, 79, 80, 81, 82, 83 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {30,0}, {45,0}, {60,0}, {75,0}, {90,0}, {105,0}, {119,0}, {134,0}, {149,0}, {164,0}, {179,0}, {194,0}, {209,0}, {224,0}, - {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {119,13}, {134,13}, {149,13}, {164,13}, {179,13}, {202,13}, {224,13}, - {4,26}, {22,26}, {37,26}, {52,26}, {67,26}, {82,26}, {97,26}, {112,26}, {127,26}, {142,26}, {157,26}, {172,26}, {187,26}, {205,26}, {224,26}, - {6,38}, {26,38}, {41,38}, {56,38}, {71,38}, {86,38}, {101,38}, {116,38}, {131,38}, {146,38}, {160,38}, {175,38}, {200,38}, {224,38}, - {9,51}, {34,51}, {48,51}, {63,51}, {78,51}, {93,51}, {108,51}, {123,51}, {138,51}, {153,51}, {168,51}, {189,51}, {209,51}, {224,51}, - {2,64}, {21,64}, {39,64}, {95,64}, {149,64}, {164,64}, {179,64}, {194,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/s1/s1.c b/keyboards/keychron/s1/s1.c index 4179cb4a6f..9f02892b76 100644 --- a/keyboards/keychron/s1/s1.c +++ b/keyboards/keychron/s1/s1.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); @@ -74,32 +48,6 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { #if defined(LED_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef LED_MATRIX_ENABLE - case LM_TOGG: - if (record->event.pressed) { - switch (led_matrix_get_flags()) { - case LED_FLAG_ALL: { - led_matrix_set_flags(LED_FLAG_NONE); - led_matrix_set_value_all(0); - } break; - default: { - led_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!led_matrix_is_enabled()) { - led_matrix_set_flags(LED_FLAG_ALL); - led_matrix_enable(); - } - return false; -#endif - } - return true; -} - bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { if (!led_matrix_indicators_advanced_user(led_min, led_max)) { return false; } diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c index a78d5dd4d7..b3b96c26a4 100644 --- a/keyboards/keychron/v1/ansi/ansi.c +++ b/keyboards/keychron/v1/ansi/ansi.c @@ -115,37 +115,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 58 }, - { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, __, 70, 71, __ }, - { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 80, 81 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/ansi/keyboard.json b/keyboards/keychron/v1/ansi/keyboard.json index d4bbca78de..09242fb595 100644 --- a/keyboards/keychron/v1/ansi/keyboard.json +++ b/keyboards/keychron/v1/ansi/keyboard.json @@ -18,6 +18,92 @@ "dip_switch": true, "rgb_matrix": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_82": { "layout": [ diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c index a78d5dd4d7..b3b96c26a4 100644 --- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c @@ -115,37 +115,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 58 }, - { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, __, 70, 71, __ }, - { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 80, 81 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/ansi_encoder/keyboard.json b/keyboards/keychron/v1/ansi_encoder/keyboard.json index 62bbeb9d5d..cd62b128a0 100644 --- a/keyboards/keychron/v1/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v1/ansi_encoder/keyboard.json @@ -24,6 +24,92 @@ "dip_switch": true, "rgb_matrix": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_82": { "layout": [ diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c index a1095dcc92..4cb877f918 100644 --- a/keyboards/keychron/v1/iso/iso.c +++ b/keyboards/keychron/v1/iso/iso.c @@ -116,37 +116,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, __, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, __, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, __, 71, 72, __ }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 81, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/iso/keyboard.json b/keyboards/keychron/v1/iso/keyboard.json index 6e307ea4df..43376e3077 100644 --- a/keyboards/keychron/v1/iso/keyboard.json +++ b/keyboards/keychron/v1/iso/keyboard.json @@ -18,6 +18,93 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_83": { "layout": [ diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c index a1095dcc92..4cb877f918 100644 --- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c @@ -116,37 +116,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, __, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, __, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, __, 71, 72, __ }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 81, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/iso_encoder/keyboard.json b/keyboards/keychron/v1/iso_encoder/keyboard.json index 077cb045b2..b095d4d436 100644 --- a/keyboards/keychron/v1/iso_encoder/keyboard.json +++ b/keyboards/keychron/v1/iso_encoder/keyboard.json @@ -24,6 +24,93 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_83": { "layout": [ diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c index d3b3f9aa90..04839ff24a 100644 --- a/keyboards/keychron/v1/jis/jis.c +++ b/keyboards/keychron/v1/jis/jis.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 58, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 59 }, - { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __ }, - { 74, 75, 76, 77, __, __, 78, __, __, 79, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0, 0}, {18, 0}, {33, 0}, {48, 0}, {62, 0}, {81, 0}, {95, 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, {187, 0}, {205, 0}, {224, 0}, - {0, 15}, {15, 15}, {29, 15}, {44, 15}, {59, 15}, {73, 15}, {88, 15}, {103, 15}, {117, 15}, {132, 15}, {147, 15}, {161, 15}, {176, 15}, {191, 15}, {205, 15}, {224, 15}, - {4, 28}, {22, 28}, {37, 28}, {51, 28}, {66, 28}, {81, 28}, {95, 28}, {110, 28}, {125, 28}, {139, 28}, {154, 28}, {169, 28}, {183, 28}, {224, 28}, - {6, 40}, {26, 40}, {40, 40}, {55, 40}, {70, 40}, {84, 40}, {99, 40}, {114, 40}, {128, 40}, {143, 40}, {158, 40}, {172, 40}, {187, 40}, {207, 36}, {224, 40}, - {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {180, 52}, {194, 52}, {209, 52}, - {2, 64}, {18, 64}, {35, 64}, {51, 64}, { 92, 64}, {134, 64}, {150, 64}, {165, 64}, {180, 64}, {194, 64}, {209, 64}, {224, 64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/jis/keyboard.json b/keyboards/keychron/v1/jis/keyboard.json index a6a43a75da..e02699c03c 100644 --- a/keyboards/keychron/v1/jis/keyboard.json +++ b/keyboards/keychron/v1/jis/keyboard.json @@ -18,6 +18,96 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 205, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 139, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 183, "y": 28, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 36, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 180, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 52, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_86": { "layout": [ diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c index d3b3f9aa90..04839ff24a 100644 --- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 58, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 59 }, - { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __ }, - { 74, 75, 76, 77, __, __, 78, __, __, 79, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0, 0}, {18, 0}, {33, 0}, {48, 0}, {62, 0}, {81, 0}, {95, 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, {187, 0}, {205, 0}, {224, 0}, - {0, 15}, {15, 15}, {29, 15}, {44, 15}, {59, 15}, {73, 15}, {88, 15}, {103, 15}, {117, 15}, {132, 15}, {147, 15}, {161, 15}, {176, 15}, {191, 15}, {205, 15}, {224, 15}, - {4, 28}, {22, 28}, {37, 28}, {51, 28}, {66, 28}, {81, 28}, {95, 28}, {110, 28}, {125, 28}, {139, 28}, {154, 28}, {169, 28}, {183, 28}, {224, 28}, - {6, 40}, {26, 40}, {40, 40}, {55, 40}, {70, 40}, {84, 40}, {99, 40}, {114, 40}, {128, 40}, {143, 40}, {158, 40}, {172, 40}, {187, 40}, {207, 36}, {224, 40}, - {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {180, 52}, {194, 52}, {209, 52}, - {2, 64}, {18, 64}, {35, 64}, {51, 64}, { 92, 64}, {134, 64}, {150, 64}, {165, 64}, {180, 64}, {194, 64}, {209, 64}, {224, 64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/jis_encoder/keyboard.json b/keyboards/keychron/v1/jis_encoder/keyboard.json index 4e39e3d4a8..3a89e69153 100644 --- a/keyboards/keychron/v1/jis_encoder/keyboard.json +++ b/keyboards/keychron/v1/jis_encoder/keyboard.json @@ -24,6 +24,96 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 205, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 139, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 183, "y": 28, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 36, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 180, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 52, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_86": { "layout": [ diff --git a/keyboards/keychron/v1/v1.c b/keyboards/keychron/v1/v1.c index 4d5381105a..f00309f3e4 100644 --- a/keyboards/keychron/v1/v1.c +++ b/keyboards/keychron/v1/v1.c @@ -32,32 +32,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c index 7a58d4deef..a9468493d6 100644 --- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c @@ -121,37 +121,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, - { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 }, - { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 }, - { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 }, - }, - { - // LED Index to Physical Position - {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36}, - {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/ansi_encoder/keyboard.json b/keyboards/keychron/v10/ansi_encoder/keyboard.json index 825fa65ef8..98a700ab2e 100644 --- a/keyboards/keychron/v10/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v10/ansi_encoder/keyboard.json @@ -27,6 +27,98 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_89": { "layout": [ diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c index 359646b542..5092a283df 100644 --- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c @@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 }, - { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 }, - { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 }, - { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 }, - }, - { - // LED Index to Physical Position - {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36}, - {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/iso_encoder/keyboard.json b/keyboards/keychron/v10/iso_encoder/keyboard.json index ea2dfb35e2..7880fd6501 100644 --- a/keyboards/keychron/v10/iso_encoder/keyboard.json +++ b/keyboards/keychron/v10/iso_encoder/keyboard.json @@ -27,6 +27,99 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1}, + {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_90": { "layout": [ diff --git a/keyboards/keychron/v10/v10.c b/keyboards/keychron/v10/v10.c index f81b78284b..c5160d7838 100644 --- a/keyboards/keychron/v10/v10.c +++ b/keyboards/keychron/v10/v10.c @@ -32,32 +32,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c index 722aa27b47..ea92662c59 100644 --- a/keyboards/keychron/v2/ansi/ansi.c +++ b/keyboards/keychron/v2/ansi/ansi.c @@ -99,34 +99,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 }, - { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, // {244,-4} - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30}, - {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/ansi/keyboard.json b/keyboards/keychron/v2/ansi/keyboard.json index bc09cb8a27..962bcaee98 100644 --- a/keyboards/keychron/v2/ansi/keyboard.json +++ b/keyboards/keychron/v2/ansi/keyboard.json @@ -23,6 +23,77 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_67": { "layout": [ diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c index 6203483285..ea92662c59 100644 --- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c @@ -99,34 +99,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 }, - { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, // {244,-4} - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30}, - {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/ansi_encoder/keyboard.json b/keyboards/keychron/v2/ansi_encoder/keyboard.json index 6752d14b15..42b6814781 100644 --- a/keyboards/keychron/v2/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v2/ansi_encoder/keyboard.json @@ -29,6 +29,77 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_67": { "layout": [ diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c index aca0879838..b5a5193892 100644 --- a/keyboards/keychron/v2/iso/iso.c +++ b/keyboards/keychron/v2/iso/iso.c @@ -100,34 +100,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30}, - {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/iso/keyboard.json b/keyboards/keychron/v2/iso/keyboard.json index 89bdb51a65..f430c50270 100644 --- a/keyboards/keychron/v2/iso/keyboard.json +++ b/keyboards/keychron/v2/iso/keyboard.json @@ -23,6 +23,78 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_68": { "layout": [ diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c index aca0879838..5911f9d9c1 100644 --- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c @@ -101,33 +101,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30}, - {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/iso_encoder/keyboard.json b/keyboards/keychron/v2/iso_encoder/keyboard.json index 89ce2714f1..4dd36fdda4 100644 --- a/keyboards/keychron/v2/iso_encoder/keyboard.json +++ b/keyboards/keychron/v2/iso_encoder/keyboard.json @@ -29,6 +29,78 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_68": { "layout": [ diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c index 1269d9b1e6..1664a5f703 100644 --- a/keyboards/keychron/v2/jis/jis.c +++ b/keyboards/keychron/v2/jis/jis.c @@ -101,34 +101,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 }, - { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 } - }, - { - // LED Index to Physical Position - {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0}, - {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19}, - {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49}, - {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/jis/keyboard.json b/keyboards/keychron/v2/jis/keyboard.json index 01beaf31ac..96b19c7372 100644 --- a/keyboards/keychron/v2/jis/keyboard.json +++ b/keyboards/keychron/v2/jis/keyboard.json @@ -23,6 +23,81 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4}, + {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 34, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_71": { "layout": [ diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c index 85aaf165f6..1664a5f703 100644 --- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c @@ -101,34 +101,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 }, - { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }, - }, - { - // LED Index to Physical Position - {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0}, - {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19}, - {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49}, - {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/jis_encoder/keyboard.json b/keyboards/keychron/v2/jis_encoder/keyboard.json index d8a540953c..105b5b6724 100644 --- a/keyboards/keychron/v2/jis_encoder/keyboard.json +++ b/keyboards/keychron/v2/jis_encoder/keyboard.json @@ -29,6 +29,81 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4}, + {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 34, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_71": { "layout": [ diff --git a/keyboards/keychron/v2/v2.c b/keyboards/keychron/v2/v2.c index 127af0ed6d..2427d580a8 100644 --- a/keyboards/keychron/v2/v2.c +++ b/keyboards/keychron/v2/v2.c @@ -29,31 +29,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif // DIP_SWITCH_ENABLE #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} 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; } diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c index 7c47678619..6f35f14a9a 100644 --- a/keyboards/keychron/v3/ansi/ansi.c +++ b/keyboards/keychron/v3/ansi/ansi.c @@ -118,37 +118,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 }, - { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 }, - { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {85,0}, {98,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {20,28}, {33,28}, {46,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/ansi/keyboard.json b/keyboards/keychron/v3/ansi/keyboard.json index d388456227..59a94564d1 100644 --- a/keyboards/keychron/v3/ansi/keyboard.json +++ b/keyboards/keychron/v3/ansi/keyboard.json @@ -18,6 +18,97 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c index d85708937a..d80b9990c4 100644 --- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 }, - { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 }, - { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/ansi_encoder/keyboard.json b/keyboards/keychron/v3/ansi_encoder/keyboard.json index 5134b47d7e..47f5bff0aa 100644 --- a/keyboards/keychron/v3/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v3/ansi_encoder/keyboard.json @@ -24,6 +24,97 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_f13_ansi": { "layout": [ diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c index 83798392c6..f8d8e22e10 100644 --- a/keyboards/keychron/v3/iso/iso.c +++ b/keyboards/keychron/v3/iso/iso.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 }, - { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/iso/keyboard.json b/keyboards/keychron/v3/iso/keyboard.json index 40a8139ccc..6bae7e1e7e 100644 --- a/keyboards/keychron/v3/iso/keyboard.json +++ b/keyboards/keychron/v3/iso/keyboard.json @@ -19,6 +19,98 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_iso": { "layout": [ diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c index ef0567dbe1..f8d8e22e10 100644 --- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 }, - { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/iso_encoder/keyboard.json b/keyboards/keychron/v3/iso_encoder/keyboard.json index 8b4f0a9d00..6f039c0dff 100644 --- a/keyboards/keychron/v3/iso_encoder/keyboard.json +++ b/keyboards/keychron/v3/iso_encoder/keyboard.json @@ -24,6 +24,98 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_f13_iso": { "layout": [ diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c index c04827dc5d..cec71b83d5 100644 --- a/keyboards/keychron/v3/jis/jis.c +++ b/keyboards/keychron/v3/jis/jis.c @@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down {1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right }; - -# define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 30, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32 }, - { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 63, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 33 }, - { 64, __, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 90, 77 }, - { 78, 79, 80, 81, __, __, 82, __, __, 83, 84, 85, 86, 87, 88, 89 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {182,15}, {169,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52}, - {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // GB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/jis/keyboard.json b/keyboards/keychron/v3/jis/keyboard.json index 0bc3a43d0e..526a2e9e27 100644 --- a/keyboards/keychron/v3/jis/keyboard.json +++ b/keyboards/keychron/v3/jis/keyboard.json @@ -18,6 +18,101 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 15, "flags": 4}, + {"matrix": [0, 13], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_91": { "layout": [ diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c index bf2018d86f..6e5b99e1c7 100644 --- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c @@ -123,37 +123,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down {1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right }; - -# define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 48, 49 }, - { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 50, 63, 16, 34 }, - { 65, __, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 91, 78 }, - { 79, 80, 81, 82, __, 31, 83, __, __, 84, 85, 86, 87, 88, 89, 90 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52}, - {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/jis_encoder/keyboard.json b/keyboards/keychron/v3/jis_encoder/keyboard.json index ab9d6ab2a7..20613e7672 100644 --- a/keyboards/keychron/v3/jis_encoder/keyboard.json +++ b/keyboards/keychron/v3/jis_encoder/keyboard.json @@ -24,6 +24,102 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 182, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_92": { "layout": [ diff --git a/keyboards/keychron/v3/v3.c b/keyboards/keychron/v3/v3.c index f844ffe9d9..e7562d4bff 100644 --- a/keyboards/keychron/v3/v3.c +++ b/keyboards/keychron/v3/v3.c @@ -32,32 +32,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c index 7368144c8d..4f184c7dd6 100644 --- a/keyboards/keychron/v4/ansi/ansi.c +++ b/keyboards/keychron/v4/ansi/ansi.c @@ -93,34 +93,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB3_CA15, CB1_CA15, CB2_CA15}, {0, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 }, - { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 }, - { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32}, - {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v4/ansi/keyboard.json b/keyboards/keychron/v4/ansi/keyboard.json index 7184e32f27..b80d9d8e25 100644 --- a/keyboards/keychron/v4/ansi/keyboard.json +++ b/keyboards/keychron/v4/ansi/keyboard.json @@ -23,6 +23,71 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] + }, "layout_aliases": { "LAYOUT_ansi_61": "LAYOUT_60_ansi" }, diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c index dc6a0f44d0..ccea440a47 100644 --- a/keyboards/keychron/v4/iso/iso.c +++ b/keyboards/keychron/v4/iso/iso.c @@ -94,34 +94,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB3_CA15, CB1_CA15, CB2_CA15}, {0, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40 }, - { 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, __, 39 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, __, 53 }, - { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 }, - }, - { - // LED Index to Physical Position - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {81, 0}, { 97, 0}, {113, 0}, {129, 0}, {145, 0}, {161, 0}, {177, 0}, {193, 0}, {218, 0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {206,32}, {224,24}, - {2,48}, {20,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v4/iso/keyboard.json b/keyboards/keychron/v4/iso/keyboard.json index 8077844652..0aa111a858 100644 --- a/keyboards/keychron/v4/iso/keyboard.json +++ b/keyboards/keychron/v4/iso/keyboard.json @@ -23,6 +23,72 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 206, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] + }, "layout_aliases": { "LAYOUT_iso_62": "LAYOUT_60_iso" }, diff --git a/keyboards/keychron/v4/v4.c b/keyboards/keychron/v4/v4.c index a9ccdb81ba..2427d580a8 100644 --- a/keyboards/keychron/v4/v4.c +++ b/keyboards/keychron/v4/v4.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c index b38d5f508f..9e653f36d1 100644 --- a/keyboards/keychron/v5/ansi/ansi.c +++ b/keyboards/keychron/v5/ansi/ansi.c @@ -133,37 +133,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }, - { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 70, 51, 52, 53 }, - { 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 18, 66, 36, 67, 68, 69 }, - { 71, __, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, __, 82, 83, 84, 85, 86 }, - { 87, 88, 89, __, __, 99, 90, __, __, __, 91, 92, 93, 94, 95, 96, 97, 98 } - }, - { - // LED Index to Physical Position - {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {84,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {84,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32}, - {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/ansi/config.h b/keyboards/keychron/v5/ansi/config.h index ac52268497..c7c39ae367 100644 --- a/keyboards/keychron/v5/ansi/config.h +++ b/keyboards/keychron/v5/ansi/config.h @@ -18,3 +18,6 @@ /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 54 + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 33 diff --git a/keyboards/keychron/v5/ansi/keyboard.json b/keyboards/keychron/v5/ansi/keyboard.json index b98302f336..2bf3dfa745 100644 --- a/keyboards/keychron/v5/ansi/keyboard.json +++ b/keyboards/keychron/v5/ansi/keyboard.json @@ -18,6 +18,110 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 1}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 1}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_100": { "layout": [ diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c index bc68731d7d..e359d85545 100644 --- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c @@ -133,37 +133,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 68, 49, 50, 51 }, - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 16, 64, 34, 65, 66, 67 }, - { 69, __, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, __, 80, 81, 82, 83, 84 }, - { 85, 86, 87, __, __, 97, 88, __, __, __, 89, 90, 91, 92, 93, 94, 95, 96 } - }, - { - // LED Index to Physical Position - {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32}, - {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 4, 4, 4, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/ansi_encoder/config.h b/keyboards/keychron/v5/ansi_encoder/config.h index c0648d56b2..d666eb2c28 100644 --- a/keyboards/keychron/v5/ansi_encoder/config.h +++ b/keyboards/keychron/v5/ansi_encoder/config.h @@ -21,3 +21,6 @@ /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 52 + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 31 diff --git a/keyboards/keychron/v5/ansi_encoder/keyboard.json b/keyboards/keychron/v5/ansi_encoder/keyboard.json index af61e4a15e..2ed77789e4 100644 --- a/keyboards/keychron/v5/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v5/ansi_encoder/keyboard.json @@ -24,6 +24,108 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_98": { "layout": [ diff --git a/keyboards/keychron/v5/iso/config.h b/keyboards/keychron/v5/iso/config.h index 9080227018..f5bcacedb3 100644 --- a/keyboards/keychron/v5/iso/config.h +++ b/keyboards/keychron/v5/iso/config.h @@ -18,3 +18,6 @@ /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 53 + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 33 diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c index d8f5ae329c..7b28c70f7e 100644 --- a/keyboards/keychron/v5/iso/iso.c +++ b/keyboards/keychron/v5/iso/iso.c @@ -134,37 +134,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }, - { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 66, 70, 50, 51, 52 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 18, 65, 36, 67, 68, 69 }, - { 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, __, 83, 84, 85, 86, 87 }, - { 88, 89, 90, __, __, 100, 91, __, __, __, 92, 93, 94, 95, 96, 97, 98, 99 }, - }, - { - // LED Index to Physical Position - {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {85,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32}, - {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/iso/keyboard.json b/keyboards/keychron/v5/iso/keyboard.json index 7e7280d5ac..c8bc9609f5 100644 --- a/keyboards/keychron/v5/iso/keyboard.json +++ b/keyboards/keychron/v5/iso/keyboard.json @@ -18,6 +18,111 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_101": { "layout": [ diff --git a/keyboards/keychron/v5/iso_encoder/config.h b/keyboards/keychron/v5/iso_encoder/config.h index bfaeff971d..58bc074ac3 100644 --- a/keyboards/keychron/v5/iso_encoder/config.h +++ b/keyboards/keychron/v5/iso_encoder/config.h @@ -21,3 +21,6 @@ /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 51 + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 31 diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c index 2d2a458577..005a73d2f9 100644 --- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c @@ -132,37 +132,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 68, 48, 49, 50 }, - { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 16, 63, 34, 65, 66, 67 }, - { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, __, 81, 82, 83, 84, 85 }, - { 86, 87, 88, __, __, 98, 89, __, __, __, 90, 91, 92, 93, 94, 95, 96, 97 }, - }, - { - // LED Index to Physical Position - {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32}, - {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/iso_encoder/keyboard.json b/keyboards/keychron/v5/iso_encoder/keyboard.json index dfef0a7be7..d6f1b69445 100644 --- a/keyboards/keychron/v5/iso_encoder/keyboard.json +++ b/keyboards/keychron/v5/iso_encoder/keyboard.json @@ -24,6 +24,109 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_99": { "layout": [ diff --git a/keyboards/keychron/v5/v5.c b/keyboards/keychron/v5/v5.c index 03d1f9a743..3d1e6402de 100644 --- a/keyboards/keychron/v5/v5.c +++ b/keyboards/keychron/v5/v5.c @@ -30,33 +30,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #endif // DIP_SWITCH_ENABLE -#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} +#if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) 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; } @@ -69,6 +43,15 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); } } + #ifdef NUM_LOCK_LED_INDEX + if (host_keyboard_led_state().num_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 0, 0, 0); + } + } + #endif return true; } diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c index 2e055e57af..c8dc8c95c6 100644 --- a/keyboards/keychron/v6/ansi/ansi.c +++ b/keyboards/keychron/v6/ansi/ansi.c @@ -139,34 +139,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/ansi/keyboard.json b/keyboards/keychron/v6/ansi/keyboard.json index e68f3cdec8..6733c196b7 100644 --- a/keyboards/keychron/v6/ansi/keyboard.json +++ b/keyboards/keychron/v6/ansi/keyboard.json @@ -18,6 +18,118 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_108": { "layout": [ diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c index 1ebf947912..fa08ec41aa 100644 --- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c @@ -141,37 +141,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/ansi_encoder/keyboard.json b/keyboards/keychron/v6/ansi_encoder/keyboard.json index 6ccc6d415b..3427c3e633 100644 --- a/keyboards/keychron/v6/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v6/ansi_encoder/keyboard.json @@ -8,9 +8,6 @@ "pid": "0x0361", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "snled27351" - }, "encoder": { "rotary": [ {"pin_a": "C14", "pin_b": "A2"} @@ -27,6 +24,119 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_109": { "layout": [ diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c index cc9dbd8c23..0675e47a3b 100644 --- a/keyboards/keychron/v6/iso/iso.c +++ b/keyboards/keychron/v6/iso/iso.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/iso/keyboard.json b/keyboards/keychron/v6/iso/keyboard.json index e2f17e4f6e..9310919456 100644 --- a/keyboards/keychron/v6/iso/keyboard.json +++ b/keyboards/keychron/v6/iso/keyboard.json @@ -8,9 +8,6 @@ "pid": "0x0362", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "snled27351" - }, "processor": "STM32L432", "bootloader": "stm32-dfu", "features": { @@ -21,6 +18,120 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_109": { "layout": [ diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c index f1a8e18acf..0675e47a3b 100644 --- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/iso_encoder/keyboard.json b/keyboards/keychron/v6/iso_encoder/keyboard.json index d7469b54e0..858c33a692 100644 --- a/keyboards/keychron/v6/iso_encoder/keyboard.json +++ b/keyboards/keychron/v6/iso_encoder/keyboard.json @@ -8,9 +8,6 @@ "pid": "0x0363", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "snled27351" - }, "encoder": { "rotary": [ {"pin_a": "C14", "pin_b": "A2"} @@ -27,6 +24,120 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_110": { "layout": [ diff --git a/keyboards/keychron/v6/v6.c b/keyboards/keychron/v6/v6.c index 2fedd20d5b..9c74c5ec08 100644 --- a/keyboards/keychron/v6/v6.c +++ b/keyboards/keychron/v6/v6.c @@ -36,32 +36,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - } - return true; -} - 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; diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c index 4d0bedff09..f246a16910 100644 --- a/keyboards/keychron/v7/ansi/ansi.c +++ b/keyboards/keychron/v7/ansi/ansi.c @@ -104,34 +104,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45, 46 }, - { 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, __, 58, 59, 60 }, - { 61, 62, 63, __, __, __, 64, __, __, 65, 66, 67, 68, 69, 70, 71 }, - }, - { - // LED Index to Physical Position - {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0}, - {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {192,16}, {210,16}, {224,16}, - {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {187,32}, {210,32}, {224,32}, - {9,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48}, - {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v7/ansi/keyboard.json b/keyboards/keychron/v7/ansi/keyboard.json index 503aea5ab6..0fccc7b336 100644 --- a/keyboards/keychron/v7/ansi/keyboard.json +++ b/keyboards/keychron/v7/ansi/keyboard.json @@ -23,6 +23,82 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_72": { "layout": [ diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c index cdd2d97209..0de3fb4894 100644 --- a/keyboards/keychron/v7/iso/iso.c +++ b/keyboards/keychron/v7/iso/iso.c @@ -105,34 +105,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, __, 43, 45, 46 }, - { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, __, 59, 60, 61 }, - { 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71, 72 }, - }, - { - // LED Index to Physical Position - {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0}, - {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {210,16}, {224,16}, - {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {178,32}, {197,27}, {210,32}, {224,32}, - {2,48}, {18,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48}, - {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v7/iso/keyboard.json b/keyboards/keychron/v7/iso/keyboard.json index ec4cd06e6b..4e57beb985 100644 --- a/keyboards/keychron/v7/iso/keyboard.json +++ b/keyboards/keychron/v7/iso/keyboard.json @@ -23,6 +23,83 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 178, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 197, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_73": { "layout": [ diff --git a/keyboards/keychron/v7/v7.c b/keyboards/keychron/v7/v7.c index 02f4ec1500..12a9078a36 100644 --- a/keyboards/keychron/v7/v7.c +++ b/keyboards/keychron/v7/v7.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c index fcc232511f..82c6e533a1 100644 --- a/keyboards/keychron/v8/ansi/ansi.c +++ b/keyboards/keychron/v8/ansi/ansi.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16}, - {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29}, - {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/ansi/keyboard.json b/keyboards/keychron/v8/ansi/keyboard.json index 392783e024..9f54c60c3d 100644 --- a/keyboards/keychron/v8/ansi/keyboard.json +++ b/keyboards/keychron/v8/ansi/keyboard.json @@ -23,6 +23,79 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4}, + {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_69": { "layout": [ diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c index fcc232511f..82c6e533a1 100644 --- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16}, - {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29}, - {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/ansi_encoder/keyboard.json b/keyboards/keychron/v8/ansi_encoder/keyboard.json index 6d3257feec..9ea3464084 100644 --- a/keyboards/keychron/v8/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v8/ansi_encoder/keyboard.json @@ -29,6 +29,79 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4}, + {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_69": { "layout": [ diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c index 4658969a10..8a84081a69 100644 --- a/keyboards/keychron/v8/iso/iso.c +++ b/keyboards/keychron/v8/iso/iso.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16}, - {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29}, - {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/iso/keyboard.json b/keyboards/keychron/v8/iso/keyboard.json index 0d10662a00..6efda1a4d7 100644 --- a/keyboards/keychron/v8/iso/keyboard.json +++ b/keyboards/keychron/v8/iso/keyboard.json @@ -23,6 +23,80 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1}, + {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1}, + {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1}, + {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_70": { "layout": [ diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c index 4658969a10..8a84081a69 100644 --- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16}, - {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29}, - {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/iso_encoder/keyboard.json b/keyboards/keychron/v8/iso_encoder/keyboard.json index d446d213d4..d3db01d61f 100644 --- a/keyboards/keychron/v8/iso_encoder/keyboard.json +++ b/keyboards/keychron/v8/iso_encoder/keyboard.json @@ -29,6 +29,80 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1}, + {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1}, + {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1}, + {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_70": { "layout": [ diff --git a/keyboards/keychron/v8/v8.c b/keyboards/keychron/v8/v8.c index 0e03ba34ec..c36a0e9d50 100644 --- a/keyboards/keychron/v8/v8.c +++ b/keyboards/keychron/v8/v8.c @@ -30,32 +30,6 @@ bool dip_switch_update_kb(uint8_t index, bool active) { #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { return false; } - switch (keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; -#endif - } - return true; -} - 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; } // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); diff --git a/keyboards/keygem/kg60ansi/keymaps/default/keymap.c b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c index c89623b685..5ee105b3ab 100644 --- a/keyboards/keygem/kg60ansi/keymaps/default/keymap.c +++ b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/keygem/kg60ansi/readme.md b/keyboards/keygem/kg60ansi/readme.md index f24439855b..b0934be52b 100644 --- a/keyboards/keygem/kg60ansi/readme.md +++ b/keyboards/keygem/kg60ansi/readme.md @@ -23,4 +23,4 @@ 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 `RESET` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c index b3c71d5071..eae55fabd0 100644 --- a/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c +++ b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/keygem/kg65rgbv2/readme.md b/keyboards/keygem/kg65rgbv2/readme.md index 20900cb861..b586b23db5 100644 --- a/keyboards/keygem/kg65rgbv2/readme.md +++ b/keyboards/keygem/kg65rgbv2/readme.md @@ -23,4 +23,4 @@ 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 `RESET` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/keyhive/honeycomb/matrix.c b/keyboards/keyhive/honeycomb/matrix.c index 64008228af..a34458e09e 100755 --- a/keyboards/keyhive/honeycomb/matrix.c +++ b/keyboards/keyhive/honeycomb/matrix.c @@ -35,15 +35,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #define UART_MATRIX_RESPONSE_TIMEOUT 10000 diff --git a/keyboards/keyhive/smallice/keymaps/default/readme.md b/keyboards/keyhive/smallice/keymaps/default/readme.md index e0c573662c..9df942227c 100644 --- a/keyboards/keyhive/smallice/keymaps/default/readme.md +++ b/keyboards/keyhive/smallice/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default keymap for smAllice -![smAllice](https://i.imgur.com/OngGf9n.png) \ No newline at end of file +![smAllice](https://i.imgur.com/OngGf9n.png) diff --git a/keyboards/keyspensory/kp60/keymaps/default/keymap.json b/keyboards/keyspensory/kp60/keymaps/default/keymap.json index 77a4f7fa02..a75a07f91a 100644 --- a/keyboards/keyspensory/kp60/keymaps/default/keymap.json +++ b/keyboards/keyspensory/kp60/keymaps/default/keymap.json @@ -9,4 +9,4 @@ "layout": "LAYOUT", "notes": "This file is a keymap.json file for keyspensory/kp60", "version": 1 -} \ No newline at end of file +} diff --git a/keyboards/keyten/imi60_hs/keyboard.json b/keyboards/keyten/imi60_hs/keyboard.json new file mode 100644 index 0000000000..c9c805e403 --- /dev/null +++ b/keyboards/keyten/imi60_hs/keyboard.json @@ -0,0 +1,292 @@ +{ + "manufacturer": "La-Versa x keyten", + "keyboard_name": "imi60-HS", + "maintainer": "key10iq", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0xEB69", + "pid": "0x6009", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["B1", "B0", "A6", "A5", "B11"], + "cols": ["A3", "A4", "A7", "B2", "B10", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"] + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "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": [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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "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": [2, 13], "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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "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": [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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_rshift": { + "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": [2, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/imi60_hs/keymaps/default/keymap.c b/keyboards/keyten/imi60_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..3325867867 --- /dev/null +++ b/keyboards/keyten/imi60_hs/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2025 key10iq +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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_GRV, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keyten/imi60_hs/readme.md b/keyboards/keyten/imi60_hs/readme.md new file mode 100644 index 0000000000..9fd3d3579d --- /dev/null +++ b/keyboards/keyten/imi60_hs/readme.md @@ -0,0 +1,27 @@ +# keyten imi60-HS + +imi60-HS - 60% Hot-Swap PCB compatible with keyboards by La-Versa: Animi, Mirimi, Otsukimi and Abyss + +![imi60-HS](https://live.staticflickr.com/65535/54904885051_339dbff9d8_b.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten imi60-HS +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/imi60_hs:default + +Flashing example for this keyboard: + + make keyten/imi60_hs: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 +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/kt356_mini/keyboard.json b/keyboards/keyten/kt356_mini/keyboard.json new file mode 100644 index 0000000000..766b254a2c --- /dev/null +++ b/keyboards/keyten/kt356_mini/keyboard.json @@ -0,0 +1,299 @@ +{ + "manufacturer": "keyten", + "keyboard_name": "kt356 Mini", + "maintainer": "key10iq", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0xEB69", + "pid": "0x6008", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["B4", "B5", "A6", "B10", "B11"], + "cols": ["A15", "F1", "F0", "C14", "A3", "C13", "B1", "B9", "A4", "B8", "B0", "B7", "A7", "B6"] + }, + "indicators": { + "caps_lock": "A14" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_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": [2, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "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 }, + { "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], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "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], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "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, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "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": [1, 0], "w": 1.5, "x": 0, "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 }, + { "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], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "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], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "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, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [2, 13], "w": 2, "x": 13, "y": 0 }, + { "matrix": [1, 0], "w": 1.5, "x": 0, "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 }, + { "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], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "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], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "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, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "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": [1, 0], "w": 1.5, "x": 0, "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 }, + { "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], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "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], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "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, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/keyten/kt356_mini/keymaps/default/keymap.c b/keyboards/keyten/kt356_mini/keymaps/default/keymap.c new file mode 100644 index 0000000000..3499921fd5 --- /dev/null +++ b/keyboards/keyten/kt356_mini/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2025 key10iq +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_split_bs_rshift( + 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_GRV, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_split_bs_rshift( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keyten/kt356_mini/readme.md b/keyboards/keyten/kt356_mini/readme.md new file mode 100644 index 0000000000..beac4d0260 --- /dev/null +++ b/keyboards/keyten/kt356_mini/readme.md @@ -0,0 +1,27 @@ +# keyten kt356 Mini + +Replacement PCB for the OTD (and UTD) 356 Mini keyboard. + +![kt356 Mini image](https://live.staticflickr.com/65535/54907825962_65a650ce4c_b.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt356 Mini +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt356_mini:default + +Flashing example for this keyboard: + + make keyten/kt356_mini: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 +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c index 38938bf162..3325867867 100644 --- a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c +++ b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c @@ -1,4 +1,5 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ +// Copyright 2025 key10iq +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H @@ -13,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - KC_TRNS, 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, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keyten/kt60hs_t/readme.md b/keyboards/keyten/kt60hs_t/readme.md index eb02f6bb8f..a79f1ba06e 100644 --- a/keyboards/keyten/kt60hs_t/readme.md +++ b/keyboards/keyten/kt60hs_t/readme.md @@ -2,7 +2,7 @@ 60% MX Hot-Swap Tsangan PCB -![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) +![kt60HS-T image](https://live.staticflickr.com/65535/54942233930_c83933dd23_b.jpg) Supports: 1. Split Backspace @@ -10,7 +10,8 @@ Supports: There are two versions of the PCB available. -|Version| Features | -|-------|-------------------------------------------| -|v1 |Blue/Purple PCB / ARM STM32F401 controller | -|v2 |Purple PCB / ARM STM32F072 controller | +|Version| Features | +|-------|---------------------------------------------------------| +|v1 |Blue/Purple PCB / ARM STM32F401 controller | +|v2 |Purple PCB / ARM STM32F072 controller | +|v3 |Purple PCB / ARM STM32F072 controller, different routing | diff --git a/keyboards/keyten/kt60hs_t/v3/keyboard.json b/keyboards/keyten/kt60hs_t/v3/keyboard.json new file mode 100644 index 0000000000..ce087483e0 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v3/keyboard.json @@ -0,0 +1,282 @@ +{ + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["A3", "A4", "B12", "B15", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], + "rows": ["B13", "B14", "A5", "A6", "B0"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "3.0.0", + "pid": "0x6010" + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "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": [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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "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": [2, 13], "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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "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": [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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_rshift": { + "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": [2, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 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": [4, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/kt60hs_t/v3/readme.md b/keyboards/keyten/kt60hs_t/v3/readme.md new file mode 100644 index 0000000000..b12e49b8ef --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v3/readme.md @@ -0,0 +1,27 @@ +# keyten kt60HS-T V3 + +60% MX Hot-Swap Tsangan PCB + +![kt60HS-T image](https://live.staticflickr.com/65535/54942233930_c83933dd23_b.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt60HS-T V3 +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt60hs_t/v3:default + +Flashing example for this keyboard: + + make keyten/kt60hs_t/v3: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 +* Keycode in layout: Press the key mapped to `QK_BOOT` if it is available +* Physical reset button: Hold the button on the back of the PCB diff --git a/keyboards/kezewa/enter80/keyboard.json b/keyboards/kezewa/enter80/keyboard.json index 9e62163192..20c834891f 100644 --- a/keyboards/kezewa/enter80/keyboard.json +++ b/keyboards/kezewa/enter80/keyboard.json @@ -345,4 +345,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/kezewa/enter80/matrix_diagram.md b/keyboards/kezewa/enter80/matrix_diagram.md index 716538a4f5..1156883c99 100644 --- a/keyboards/kezewa/enter80/matrix_diagram.md +++ b/keyboards/kezewa/enter80/matrix_diagram.md @@ -19,4 +19,4 @@ ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ │5A │5B │5C │5G │5L │5M │5N │ Tsangan/WKL └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/kibou/winter/keyboard.json b/keyboards/kibou/winter/keyboard.json index 14f912ceb4..e6ea8301b2 100644 --- a/keyboards/kibou/winter/keyboard.json +++ b/keyboards/kibou/winter/keyboard.json @@ -117,4 +117,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/kikoslab/ellora65/keymaps/default/rules.mk b/keyboards/kikoslab/ellora65/keymaps/default/rules.mk index bbe99c4238..76e55c05f4 100644 --- a/keyboards/kikoslab/ellora65/keymaps/default/rules.mk +++ b/keyboards/kikoslab/ellora65/keymaps/default/rules.mk @@ -1,2 +1,2 @@ OLED_ENABLE = yes -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/kikoslab/kl90/keymaps/default/rules.mk b/keyboards/kikoslab/kl90/keymaps/default/rules.mk index 90fc9b184b..979fc59cc7 100644 --- a/keyboards/kikoslab/kl90/keymaps/default/rules.mk +++ b/keyboards/kikoslab/kl90/keymaps/default/rules.mk @@ -1 +1 @@ -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/kin80/readme.md b/keyboards/kin80/readme.md index 3ed52b4a59..d4a10bf32c 100644 --- a/keyboards/kin80/readme.md +++ b/keyboards/kin80/readme.md @@ -30,4 +30,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the the top left key and plug in the keyboard. * **Physical reset button**. Hold 'boot0' button on MCU board, press 'reset', then release 'boot0'. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kindakeyboards/conone65/readme.md b/keyboards/kindakeyboards/conone65/readme.md index d0694fcc03..8cdc326d5b 100644 --- a/keyboards/kindakeyboards/conone65/readme.md +++ b/keyboards/kindakeyboards/conone65/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kinesis/keymaps/alvicstep/keymap.c b/keyboards/kinesis/keymaps/alvicstep/keymap.c index 0068ef7d95..75ba884ad6 100644 --- a/keyboards/kinesis/keymaps/alvicstep/keymap.c +++ b/keyboards/kinesis/keymaps/alvicstep/keymap.c @@ -132,4 +132,4 @@ bool led_update_user(led_t led_state) { //disable default processing of LEDs return false; -} \ No newline at end of file +} diff --git a/keyboards/kinesis/keymaps/alvicstep/readme.md b/keyboards/kinesis/keymaps/alvicstep/readme.md index c21618a1dc..dcd3a0134b 100644 --- a/keyboards/kinesis/keymaps/alvicstep/readme.md +++ b/keyboards/kinesis/keymaps/alvicstep/readme.md @@ -102,4 +102,4 @@ The **alvicstep** layout is optimized for software development on a Windows mach |`KEYPAD + ]` | } | |`KEYPAD + ,` | < | |`KEYPAD + .` | > | -|`KEYPAD + BACKTICK` | ~ | \ No newline at end of file +|`KEYPAD + BACKTICK` | ~ | diff --git a/keyboards/kinesis/kintwin/kintwin.c b/keyboards/kinesis/kintwin/kintwin.c index e0c3ab4880..0955c6e0a8 100644 --- a/keyboards/kinesis/kintwin/kintwin.c +++ b/keyboards/kinesis/kintwin/kintwin.c @@ -26,4 +26,4 @@ void matrix_init_kb(void) { gpio_write_pin_high(LED_COMPOSE_PIN); matrix_init_user(); -} \ No newline at end of file +} diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md index 4767d6a436..498d6cbfbe 100644 --- a/keyboards/kinesis/readme.md +++ b/keyboards/kinesis/readme.md @@ -12,4 +12,4 @@ There are at least three different ways to replace the controller in this keyboa All three hardware solutions should work with the same keymaps ## Switch Modifications -In addition to the drop-in replacements of the stock controller above, the directory **"keyboards\kin80"** contains the files to support 80 switch modification of the keyboard, compared to original 86 switches. Kin80 keymaps are not compatible with keymaps that are located inside of **kinesis** directory. \ No newline at end of file +In addition to the drop-in replacements of the stock controller above, the directory **"keyboards\kin80"** contains the files to support 80 switch modification of the keyboard, compared to original 86 switches. Kin80 keymaps are not compatible with keymaps that are located inside of **kinesis** directory. diff --git a/keyboards/kisakeyluxury/qtz/readme.md b/keyboards/kisakeyluxury/qtz/readme.md index 813bf10a32..3196ce99c4 100644 --- a/keyboards/kisakeyluxury/qtz/readme.md +++ b/keyboards/kisakeyluxury/qtz/readme.md @@ -21,4 +21,4 @@ Flashing example for this keyboard: Enter the bootloader in 2 ways: * **Physical reset button**: Briefly press the button on the back of the PCB under the "Z" key -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (default is bottom-right most key) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (default is bottom-right most key) diff --git a/keyboards/kiserdesigns/madeline/keyboard.json b/keyboards/kiserdesigns/madeline/keyboard.json index 5fdcd981f1..bdc3ddc9c9 100644 --- a/keyboards/kiserdesigns/madeline/keyboard.json +++ b/keyboards/kiserdesigns/madeline/keyboard.json @@ -28,7 +28,6 @@ "resync": true } }, - "url": "https://qmk.fm/keyboards", "usb": { "device_version": "0.0.1", "pid": "0x6D64", diff --git a/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c b/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c index 0c66b20c91..77c3603f8a 100644 --- a/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c +++ b/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c @@ -41,4 +41,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/kiwikey/kawii9/keymaps/default/readme.md b/keyboards/kiwikey/kawii9/keymaps/default/readme.md index 874b526c20..02afde7f62 100644 --- a/keyboards/kiwikey/kawii9/keymaps/default/readme.md +++ b/keyboards/kiwikey/kawii9/keymaps/default/readme.md @@ -1,4 +1,4 @@ # Default keymap for KiwiKey Kawii9 This is the default keymap which is flashed on every Kawii9 board from the very first Group-buy. -This keymap contains some basic media commands on BASE layer and RGB underglow control commands on FN layer (FN is the most bottom-left key, by default). \ No newline at end of file +This keymap contains some basic media commands on BASE layer and RGB underglow control commands on FN layer (FN is the most bottom-left key, by default). diff --git a/keyboards/kiwikey/kawii9/readme.md b/keyboards/kiwikey/kawii9/readme.md index 4b10e82fab..6820ac6f71 100644 --- a/keyboards/kiwikey/kawii9/readme.md +++ b/keyboards/kiwikey/kawii9/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make kiwikey/kawii9:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/kiwikey/wanderland/keymaps/default/readme.md b/keyboards/kiwikey/wanderland/keymaps/default/readme.md index 02cf58d641..d5ff71c696 100644 --- a/keyboards/kiwikey/wanderland/keymaps/default/readme.md +++ b/keyboards/kiwikey/wanderland/keymaps/default/readme.md @@ -1,3 +1,3 @@ # Default keymap for KiwiKey Wanderland -With NO installation of OLED LCD. \ No newline at end of file +With NO installation of OLED LCD. diff --git a/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c b/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c index 372dcd4962..648619b0dd 100644 --- a/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c +++ b/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/kmini/readme.md b/keyboards/kmini/readme.md index 2a9e8e7908..b58a914592 100755 --- a/keyboards/kmini/readme.md +++ b/keyboards/kmini/readme.md @@ -10,4 +10,4 @@ Columns 0, 1 and 10-16 and rows 0-4 are wired directly to the ATmega32u4, and co Please read the [documentation](https://docs.qmk.fm). ## How to flash -Hold the capslock key while plugging in the USB and flash the .hex file using QMK Toolbox or Atmel FLIP. \ No newline at end of file +Hold the capslock key while plugging in the USB and flash the .hex file using QMK Toolbox or Atmel FLIP. diff --git a/keyboards/knobgoblin/keymaps/default/readme.md b/keyboards/knobgoblin/keymaps/default/readme.md index 9a37b43c63..d1d483510e 100644 --- a/keyboards/knobgoblin/keymaps/default/readme.md +++ b/keyboards/knobgoblin/keymaps/default/readme.md @@ -5,4 +5,4 @@ # Ortho Knob Goblin Layout This is the ortho layout for the Knob Goblin. key assignments to be used as a standard numpad layout -with a layer momentary switch in the bottom left \ No newline at end of file +with a layer momentary switch in the bottom left diff --git a/keyboards/knops/mini/keymaps/default/readme.md b/keyboards/knops/mini/keymaps/default/readme.md index 61479b486c..17de6d2869 100644 --- a/keyboards/knops/mini/keymaps/default/readme.md +++ b/keyboards/knops/mini/keymaps/default/readme.md @@ -4,4 +4,4 @@ ![Knops Mini Layout Image](https://i.imgur.com/WQBQctm.png) -This is the default layout that comes flashed on every Knops Mini. For your use, you probably want to change this. We suggest you to use [our configurator tool](http://knops.io/configurator.html) for this. \ No newline at end of file +This is the default layout that comes flashed on every Knops Mini. For your use, you probably want to change this. We suggest you to use [our configurator tool](http://knops.io/configurator.html) for this. diff --git a/keyboards/knops/mini/readme.md b/keyboards/knops/mini/readme.md index 4df6c207a4..9b02334ae9 100644 --- a/keyboards/knops/mini/readme.md +++ b/keyboards/knops/mini/readme.md @@ -18,4 +18,4 @@ Make example for this keyboard (after setting up your build environment): make knops/mini:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/knops/readme.md b/keyboards/knops/readme.md index 115e4d7c64..996d0a6b05 100644 --- a/keyboards/knops/readme.md +++ b/keyboards/knops/readme.md @@ -7,4 +7,4 @@ * Maintainer: [Pawnerd](https://github.com/pawnerd) * Hardware Supported: * [`Mini`](mini/): Knops Mini -* Hardware Availability: [knops.io](http://www.knops.io/) \ No newline at end of file +* Hardware Availability: [knops.io](http://www.knops.io/) diff --git a/keyboards/kopibeng/mnk60/readme.md b/keyboards/kopibeng/mnk60/readme.md index 70a382f5de..b3c33c3a48 100644 --- a/keyboards/kopibeng/mnk60/readme.md +++ b/keyboards/kopibeng/mnk60/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kopibeng/mnk60_stm32/readme.md b/keyboards/kopibeng/mnk60_stm32/readme.md index 30bea10d07..cd9ad480c8 100644 --- a/keyboards/kopibeng/mnk60_stm32/readme.md +++ b/keyboards/kopibeng/mnk60_stm32/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R key) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R key) in layout if available. diff --git a/keyboards/kopibeng/tgr_lena/keyboard.json b/keyboards/kopibeng/tgr_lena/keyboard.json index a526c26e52..15d1e07c45 100644 --- a/keyboards/kopibeng/tgr_lena/keyboard.json +++ b/keyboards/kopibeng/tgr_lena/keyboard.json @@ -424,4 +424,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/kopibeng/tgr_lena/readme.md b/keyboards/kopibeng/tgr_lena/readme.md index 107433e01e..e4a901f46a 100644 --- a/keyboards/kopibeng/tgr_lena/readme.md +++ b/keyboards/kopibeng/tgr_lena/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset: Short the RESET jumper on PCB. * Bootmagic reset: Unplug keyboard, hold down top right key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + top right key) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + top right key) in layout if available. diff --git a/keyboards/kopibeng/typ65/typ65.c b/keyboards/kopibeng/typ65/typ65.c index 53af0ba97d..e8bada664a 100644 --- a/keyboards/kopibeng/typ65/typ65.c +++ b/keyboards/kopibeng/typ65/typ65.c @@ -64,4 +64,4 @@ void suspend_wakeup_init_kb(void) { gpio_write_pin_high(INDICATOR_2); suspend_wakeup_init_user(); -} \ No newline at end of file +} diff --git a/keyboards/kopibeng/xt60/readme.md b/keyboards/kopibeng/xt60/readme.md index 6eacaded6f..0aa5723ec8 100644 --- a/keyboards/kopibeng/xt60/readme.md +++ b/keyboards/kopibeng/xt60/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kopibeng/xt60_singa/readme.md b/keyboards/kopibeng/xt60_singa/readme.md index f8efffcf1c..32bc245b6a 100644 --- a/keyboards/kopibeng/xt60_singa/readme.md +++ b/keyboards/kopibeng/xt60_singa/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kprepublic/bm16s/keymaps/default/keymap.c b/keyboards/kprepublic/bm16s/keymaps/default/keymap.c index ac634be5d9..c2c90c3e71 100755 --- a/keyboards/kprepublic/bm16s/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm16s/keymaps/default/keymap.c @@ -13,4 +13,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { UG_TOGG, UG_NEXT, UG_HUEU, KC_MUTE, UG_SATU, UG_SATD, UG_HUED, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json index 5cad0a013a..9dc347da6e 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json @@ -57,6 +57,61 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1}, + {"x": 220, "y": 32, "flags": 2}, + {"x": 176, "y": 32, "flags": 2}, + {"x": 132, "y": 32, "flags": 2}, + {"x": 88, "y": 32, "flags": 2}, + {"x": 44, "y": 32, "flags": 2}, + {"x": 0, "y": 32, "flags": 2} + ] "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c deleted file mode 100755 index f6df97ebf1..0000000000 --- a/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2020 tominabox1, Richard Goulter - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, - {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}, - {24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35}, - {36, 37, 38, 39, 40, 41, NO_LED, 42, 43, 44, 45, 46} - }, { - // LED Index to Physical Position - { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {111, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64}, - {220, 32}, {176, 32}, {132, 32}, {88, 32}, {44, 32}, {0, 32} - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2 - } -}; - -#endif diff --git a/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md b/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md index a1ebf08a17..178a490d36 100755 --- a/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md +++ b/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md @@ -24,4 +24,4 @@ |----------------------------------------------------------------------------+ | | | | | | | | | | `----------------------------------------------------------------------------' -``` \ No newline at end of file +``` diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json index 55ec5589d1..4dcf26964f 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json @@ -57,6 +57,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 180 }, "rgblight": { diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c deleted file mode 100644 index bec465b2e6..0000000000 --- a/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2020 MechMerlin - * - * 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 "quantum.h" - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, NO_LED, 57, NO_LED, NO_LED, 58, 59, 60, 61, 62 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 98858cd164..c3fca3563e 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -1,29 +1,7 @@ -/* Copyright 2021 bdtc123 - * - * 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 . - */ +// Copyright 2021 bdtc123 +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 63 - -// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; -// don't use those LEDs in RGB Matrix in that case. -#ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 -#else -# define WS2812_LED_COUNT 6 -#endif - -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define WS2812_LED_COUNT 6 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json index 3783ebb8b2..88d4c5d9ce 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json @@ -51,30 +51,80 @@ "solid_multisplash": true }, "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 28, "y": 40, "flags": 2}, + {"x": 62, "y": 40, "flags": 2}, + {"x": 96, "y": 40, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 164, "y": 40, "flags": 2}, + {"x": 198, "y": 40, "flags": 2} + ], "max_brightness": 120, "sleep": true }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 6, - "max_brightness": 150, - "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 - }, - "default": { - "animation": "rainbow_mood" - } - }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["E6", "D2", "D3", "D5", "F6"] @@ -110,7 +160,6 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -125,7 +174,6 @@ {"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}, @@ -139,7 +187,6 @@ {"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, 1], "x": 2.25, "y": 3}, {"matrix": [3, 2], "x": 3.25, "y": 3}, @@ -153,7 +200,6 @@ {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, {"matrix": [3, 12], "x": 13, "y": 3}, {"matrix": [3, 13], "x": 14, "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}, diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c deleted file mode 100644 index 7b6d1ae693..0000000000 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 bdtc123 - * Copyright 2022 peepeetee - * - * 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_60_ansi_arrow( - 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_60_ansi_arrow( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json new file mode 100644 index 0000000000..caf08550a0 --- /dev/null +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "kprepublic/bm60hsrgb/rev2", + "keymap": "default", + "layout": "LAYOUT_60_ansi_arrow", + "layers": [ + [ + "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_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_ENT", + "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", "KC_UP", "KC_SLSH", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT", + "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index e7ff5a9ddc..b0e68a8cd6 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -1,27 +1,19 @@ -/* Copyright 2021 bdtc123 - * Copyright 2021 sigprof - * - * 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 . - */ +// Copyright 2021 bdtc123 +// Copyright 2021 sigprof +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver" +#endif + #ifdef RGB_MATRIX_ENABLE # include "i2c_master.h" # include "is31fl3733.h" # include "ws2812.h" +// clang-format off const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, @@ -91,44 +83,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS16, SW1_CS16, SW3_CS16 }, { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 } - }, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 - ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} -# endif -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, ? - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 - ,2, 2, 2, 2, 2, 2 -# endif - } -}; +// clang-format on bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -140,9 +95,6 @@ bool rgb_matrix_indicators_kb(void) { return true; } - -// clang-format on - // ========================================================================== // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== @@ -160,26 +112,20 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 ws2812_flush(); -# endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); -# endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 - ws2812_set_color_all(red, green, blue); -# endif + ws2812_set_color_all(red, green, blue); } // clang-format off diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json index 75e8333f7a..84e962e90c 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json @@ -51,6 +51,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 140 }, "build": { diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c index 26afae87ae..55b6df9233 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c @@ -14,39 +14,6 @@ * along with this program. If not, see . */ #include "quantum.h" -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, NO_LED, 57, NO_LED, NO_LED, 58, 59, 60, 61, 62 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json index dd43d36d71..bdff11563b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json @@ -36,6 +36,71 @@ "solid_multisplash": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] "max_brightness": 180, "sleep": true }, @@ -58,7 +123,7 @@ }, "default": { "animation": "rainbow_mood" - } + } }, "build": { "lto": true diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c index eca53e9893..e8d7f69435 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c @@ -85,38 +85,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 } - }, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json index b3bf6e44b2..9468251899 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json @@ -57,6 +57,78 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 180 }, "build": { diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c deleted file mode 100644 index 80bc2e2283..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 markva - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, - { 55, 56, 57, NO_LED, NO_LED, NO_LED, 58, NO_LED, NO_LED, 59, 60, 61, 62, 63} -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift,<, Z, X, C, V, B, N, M, ,, ., Shift, Up, / - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 710e240aa4..1567ce3eb1 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -1,31 +1,9 @@ -/* Copyright 2021 bdtc123 - * Copyright 2021 sigprof - * Copyright 2021 peepeetee - * - * 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 . - */ +// Copyright 2021 bdtc123 +// Copyright 2021 sigprof +// Copyright 2021 peepeetee +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 64 - -// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; -// don't use those LEDs in RGB Matrix in that case. -#ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 -#else -# define WS2812_LED_COUNT 6 -#endif - -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define WS2812_LED_COUNT 6 diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json index 3a0df3e414..fec641b886 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json @@ -59,30 +59,81 @@ "animation": "cycle_all" }, "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 198, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 33, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 123, "y": 48, "flags": 4}, + {"x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 28, "y": 40, "flags": 2}, + {"x": 62, "y": 40, "flags": 2}, + {"x": 96, "y": 40, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 164, "y": 40, "flags": 2}, + {"x": 198, "y": 40, "flags": 2} + ], "max_brightness": 180, "sleep": true }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 6, - "max_brightness": 150, - "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 - }, - "default": { - "animation": "rainbow_mood" - } - }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["E6", "D2", "D3", "D5", "F6"] @@ -118,7 +169,6 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -132,7 +182,6 @@ {"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": [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}, @@ -147,7 +196,6 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 12], "x": 12.75, "y": 2}, {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [4, 3], "x": 1.25, "y": 3}, {"matrix": [3, 1], "x": 2.25, "y": 3}, @@ -162,7 +210,6 @@ {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, {"matrix": [3, 12], "x": 13, "y": 3}, {"matrix": [3, 13], "x": 14, "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}, diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json new file mode 100644 index 0000000000..ea074ba006 --- /dev/null +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "kprepublic/bm60hsrgb_iso/rev2", + "keymap": "default", + "layout": "LAYOUT_60_iso_arrow", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_RSFT", "KC_UP", "KC_SLSH", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT", + "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "KC_PGUP", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_HOME", "KC_PGDN", "KC_END" + ] + ] +} diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 0d52d1bacb..9e617bb8ef 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -1,29 +1,20 @@ -/* Copyright 2021 bdtc123 - * Copyright 2021 sigprof - * Copyright 2021 peepeetee - * - * 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 . - */ +// Copyright 2021 bdtc123 +// Copyright 2021 sigprof +// Copyright 2021 peepeetee +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver" +#endif + #ifdef RGB_MATRIX_ENABLE # include "i2c_master.h" # include "is31fl3733.h" # include "ws2812.h" - +// clang-format off const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, @@ -94,42 +85,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS15, SW1_CS15, SW3_CS15 }, { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,NO_LED}, - { 41, 58, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54 }, - { 55, 56, 57,NO_LED,NO_LED, 58,NO_LED,NO_LED,NO_LED, 59, 60, 61, 62, 63 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 - ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} -# endif -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ',# - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // LShift,backslash, Z, X, C, V, B, N, M, ,, ., Shift, Up, / - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 - ,2, 2, 2, 2, 2, 2 -# endif -} }; +// clang-format on bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -141,8 +97,6 @@ bool rgb_matrix_indicators_kb(void) { return true; } -// clang-format on - // ========================================================================== // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== @@ -160,26 +114,20 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 ws2812_flush(); -# endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); -# endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 ws2812_set_color_all(red, green, blue); -# endif } // clang-format off diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk index 7012deda8c..bb6c11ea53 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk @@ -1,7 +1,5 @@ -# The custom RGB Matrix driver combines IS31FL3733 and WS2812; things that are -# normally done by common_features.mk for both of these drivers need to be done -# here manually. +WS2812_DRIVER_REQUIRED = yes + COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c I2C_DRIVER_REQUIRED = yes -WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json index 9619665e6d..00cf89b973 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json @@ -56,6 +56,75 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 180 }, "rgblight": { diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c deleted file mode 100644 index d5dd1f2f97..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 ipetepete - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, 52 }, - { 53, 54, 55, NO_LED, NO_LED, NO_LED, 56, NO_LED, NO_LED, 57, 58, NO_LED, 59, 60 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 843c5b2625..52d273230f 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -1,29 +1,7 @@ -/* Copyright 2021 bdtc123 - * - * 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 . - */ +// Copyright 2021 bdtc123 +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 61 - -// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; -// don't use those LEDs in RGB Matrix in that case. -#ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 -#else -# define WS2812_LED_COUNT 6 -#endif - -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define WS2812_LED_COUNT 6 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json index f3edf59fec..e5bb84c8ff 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json @@ -56,29 +56,78 @@ "solid_multisplash": true }, "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 28, "y": 40, "flags": 2}, + {"x": 62, "y": 40, "flags": 2}, + {"x": 96, "y": 40, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 164, "y": 40, "flags": 2}, + {"x": 198, "y": 40, "flags": 2} + ], "max_brightness": 120, "sleep": true }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 6, - "max_brightness": 150, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true - }, - "default": { - "animation": "rainbow_mood" - } - }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["E6", "D2", "D3", "D5", "F6"] @@ -114,7 +163,6 @@ {"matrix": [0, 11], "x": 11, "y": 0}, {"matrix": [0, 12], "x": 12, "y": 0}, {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, - {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -129,7 +177,6 @@ {"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}, @@ -143,7 +190,6 @@ {"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, 1], "x": 2.25, "y": 3}, {"matrix": [3, 2], "x": 3.25, "y": 3}, @@ -156,7 +202,6 @@ {"matrix": [3, 9], "x": 10.25, "y": 3}, {"matrix": [3, 10], "x": 11.25, "y": 3}, {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75}, - {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c deleted file mode 100644 index 637d49d467..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 bdtc123 - * - * 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_60_ansi( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL - ), - [1] = LAYOUT_60_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - -}; diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json new file mode 100644 index 0000000000..98e6b5a609 --- /dev/null +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "kprepublic/bm60hsrgb_poker/rev2", + "keymap": "default", + "layout": "LAYOUT_60_ansi", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_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_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL" + ], + [ + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT", + "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 5766942b34..865754b423 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -1,26 +1,18 @@ -/* Copyright 2021 bdtc123 - * - * 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 . - */ +// Copyright 2021 bdtc123 +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver" +#endif + #ifdef RGB_MATRIX_ENABLE # include "i2c_master.h" # include "is31fl3733.h" # include "ws2812.h" +// clang-format off const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, @@ -88,44 +80,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS12, SW10_CS12, SW12_CS12 }, { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, NO_LED, 52 }, - { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, NO_LED, 60 } - }, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 - ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} -# endif -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 - ,2, 2, 2, 2, 2, 2 -# endif - } -}; +// clang-format on bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -137,8 +92,6 @@ bool rgb_matrix_indicators_kb(void) { return true; } -// clang-format on - // ========================================================================== // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== @@ -156,26 +109,20 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 ws2812_flush(); -# endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); -# endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 ws2812_set_color_all(red, green, blue); -# endif } // clang-format off diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk index 7012deda8c..bb6c11ea53 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk @@ -1,7 +1,5 @@ -# The custom RGB Matrix driver combines IS31FL3733 and WS2812; things that are -# normally done by common_features.mk for both of these drivers need to be done -# here manually. +WS2812_DRIVER_REQUIRED = yes + COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c I2C_DRIVER_REQUIRED = yes -WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json index d761606a5a..ae88446469 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json @@ -11,7 +11,82 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 185, "y": 45, "flags": 2}, + {"x": 160, "y": 45, "flags": 2}, + {"x": 125, "y": 45, "flags": 2}, + {"x": 95, "y": 45, "flags": 2}, + {"x": 60, "y": 45, "flags": 2}, + {"x": 25, "y": 45, "flags": 2} + ] }, "build": { "lto": true diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c deleted file mode 100644 index 7f416bc9ae..0000000000 --- a/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2021 bytesapart - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 } -}, { - // LED Index to Physical Position - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - 1, 1, 1, 4, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 2, 2, 2, 2, 2, 2 // UNDERGLOW -} }; -#endif diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json index 187816b660..d8fb49fb5f 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json @@ -82,6 +82,82 @@ "animation": "band_sat" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 190, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 140 }, "build": { diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c index 52c661d3f4..acf2aed98b 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c @@ -16,44 +16,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43}, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}, - { 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66, 67} - -}, { - // LED Index to Physical Position - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 224, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1 - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 224, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 224, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, PageDown - { 3, 48 }, { 18, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 190, 48 }, { 209, 48 }, { 224, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 194, 64 }, { 209, 64 },{ 224, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // LED Index to Flag - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1 - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, RShift, Up, PageDown - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json index b5ca4d696d..3b379437c4 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json @@ -57,6 +57,82 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 185, "y": 45, "flags": 2}, + {"x": 160, "y": 45, "flags": 2}, + {"x": 125, "y": 45, "flags": 2}, + {"x": 95, "y": 45, "flags": 2}, + {"x": 60, "y": 45, "flags": 2}, + {"x": 25, "y": 45, "flags": 2} + ] "max_brightness": 180 }, "build": { diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c index abe2b98c20..5484b15353 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c @@ -17,31 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - // LED Index to Physical Position - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right - {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right - 2, 2, 2, 2, 2, 2 // UNDERGLOW -} }; - //CAPS backlight bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json index 28ad31304e..56f4df55fb 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json @@ -42,6 +42,76 @@ "solid_multisplash": true }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c index 68068d7fb9..43f1eb56c0 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c @@ -92,26 +92,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW7_CS30, SW7_CS29, SW7_CS28} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44,NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED,NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c b/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c deleted file mode 100644 index 2ec020739a..0000000000 --- a/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c +++ /dev/null @@ -1,142 +0,0 @@ -/* Copyright 2021 peepeetee - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 11, 62, NO_LED, NO_LED, NO_LED }, - /* ^ this one is f11*/ - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED, 74, NO_LED, NO_LED, 75, NO_LED }, - { 76, 77, 78, NO_LED, NO_LED, 79, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, NO_LED, 85, 86 } - -// K0_0, K0_2, K0_3, K0_4, K0_5, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K3_C, K0_D, K0_E, K0_F, K0_10, -// K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10, -// K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10, -// K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_D, -// K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_C, K4_F, -// K5_0, K5_1, K5_2, K5_5, K5_9, K5_A, K5_B, K5_C, K5_D, K5_F, K5_10 - - -// K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, KC_NO, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10 -// K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10 -// K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10 -// K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, K3_D, KC_NO, KC_NO, KC_NO -// K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, KC_NO, K4_C, KC_NO, KC_NO, K4_F, KC_NO -// K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, K5_9, K5_A, K5_B, K5_C, K5_D, KC_NO, K5_F, K5_10 - - /* - * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│ - * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│  29 │ │ 30│ 31│ 32│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ 50  │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62  │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤     ┌───┐ - * │ 63   │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74  │     │ 75│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ - -}, { - // LED Index to Physical Position - { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, - /* - * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│ - * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - */ - { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│  29 │ │ 30│ 31│ 32│ - * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘ - */ - { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, - /* - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐ - * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│ - * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘ - */ - { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, - /* - * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐ - * │ 50  │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62  │ - * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘ - */ - { 14, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, - /* - * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐     ┌───┐ - * │ 63   │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74  │     │ 75│ - * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘  └───┘ - */ - { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } - /* - * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐ - * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1, - /* - * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│ - * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - */ - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│  29 │ │ 30│ 31│ 32│ - * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘ - */ - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - /* - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐ - * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│ - * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘ - */ - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - //caps lock is 1 instead of 1+8, this board has a dedicated led - /* - * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐ - * │ 50  │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62  │ - * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘ - */ - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - /* - * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐     ┌───┐ - * │ 63   │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74  │     │ 75│ - * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘  └───┘ - */ - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - /* - * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐ - * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ -} }; - - -#endif diff --git a/keyboards/kprepublic/bm80hsrgb/keyboard.json b/keyboards/kprepublic/bm80hsrgb/keyboard.json index 1a1b1a6ed3..4acf4be5e8 100644 --- a/keyboards/kprepublic/bm80hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm80hsrgb/keyboard.json @@ -55,7 +55,96 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4}, + {"matrix": [0, 7], "x": 85, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 97, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 109, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 121, "y": 5, "flags": 1}, + {"matrix": [0, 11], "x": 139, "y": 5, "flags": 4}, + {"matrix": [0, 12], "x": 151, "y": 5, "flags": 4}, + {"matrix": [3, 12], "x": 163, "y": 5, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4}, + {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1}, + {"matrix": [0, 15], "x": 205, "y": 5, "flags": 9}, + {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1}, + {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1}, + {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1}, + {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4}, + {"matrix": [3, 13], "x": 168, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 34, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 46, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 70, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 82, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 94, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 118, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 130, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 142, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1}, + {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1}, + {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1}, + {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4}, + {"matrix": [5, 9], "x": 129, "y": 59, "flags": 1}, + {"matrix": [5, 10], "x": 144, "y": 59, "flags": 1}, + {"matrix": [5, 11], "x": 159, "y": 59, "flags": 1}, + {"matrix": [5, 12], "x": 174, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 193, "y": 59, "flags": 1}, + {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1}, + {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1} + ] }, "build": { "lto": true diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c index 9c1b71d057..94a8032a17 100644 --- a/keyboards/kprepublic/bm80v2/bm80v2.c +++ b/keyboards/kprepublic/bm80v2/bm80v2.c @@ -112,30 +112,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS36, SW8_CS35, SW8_CS34} }; -led_config_t g_led_config = { { - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED }, - { 63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED }, - { 76, 77, 78, NO_LED,NO_LED, 79, NO_LED, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 } -}, -{ - { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, - { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, - { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, - { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, - { 17, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, - { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } -}, -{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm80v2/keyboard.json b/keyboards/kprepublic/bm80v2/keyboard.json index 43de1e4933..a5da2324a9 100644 --- a/keyboards/kprepublic/bm80v2/keyboard.json +++ b/keyboards/kprepublic/bm80v2/keyboard.json @@ -45,6 +45,95 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4}, + {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4}, + {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4}, + {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1}, + {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1}, + {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1}, + {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1}, + {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1}, + {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1}, + {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1}, + {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1}, + {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4}, + {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1}, + {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1}, + {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1}, + {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1}, + {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1}, + {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c index 3009359c65..fbaf9e0bcf 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -113,30 +113,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS36, SW8_CS35, SW8_CS34} }; -led_config_t g_led_config = { { - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED }, - { 77, 78, 79, NO_LED,NO_LED, 80, NO_LED, NO_LED, NO_LED, NO_LED, 81, 82, 83, 84, 85, 86, 87 } -}, -{ - { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, - { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, - { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 175, 35 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, - { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, - { 8, 49 }, { 22, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, - { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } -}, -{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm80v2_iso/keyboard.json b/keyboards/kprepublic/bm80v2_iso/keyboard.json index beb90a3738..5cf4c9c1bc 100644 --- a/keyboards/kprepublic/bm80v2_iso/keyboard.json +++ b/keyboards/kprepublic/bm80v2_iso/keyboard.json @@ -45,6 +45,96 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4}, + {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4}, + {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4}, + {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1}, + {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1}, + {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1}, + {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1}, + {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 175, "y": 35, "flags": 4}, + {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1}, + {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1}, + {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1}, + {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1}, + {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4}, + {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1}, + {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1}, + {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1}, + {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1}, + {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1}, + {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c b/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c deleted file mode 100644 index 12475ac36b..0000000000 --- a/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2021 peepeetee - * Copyright 2021 bdtc123 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, 65, 66 }, - { 69, NO_LED, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 }, - { 86, 87, 88, 96, 97, 85, 89, 84, 83, 90, 91, 92, 93, 94, 95 }, - { NO_LED, NO_LED, 34, 50, 51, 52, 16, 68, 67, 33, 15, 32, NO_LED, 14, NO_LED } - - -}, { - // LED Index to Physical Position - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, { 202, 0 }, { 212, 0 }, { 224, 0 }, - { 0, 20 }, { 15, 20 }, { 30, 20 }, { 45, 20 }, { 60, 20 }, { 75, 20 }, { 90, 20 }, { 105, 20 }, { 120, 20 }, { 135, 20 }, { 150, 20 }, { 165, 20 }, { 180, 20 },{ 195, 20 }, { 202, 20 }, { 212, 20 },{ 220, 20 },{ 224, 20 }, - { 8, 30 }, { 15, 30 }, { 30, 30 }, { 45, 30 }, { 60, 30 }, { 75, 30 }, { 90, 30 }, { 105, 30 }, { 120, 30 }, { 135, 30 }, { 150, 30 }, { 165, 30 }, { 180, 30 },{ 195, 30 }, { 202, 30 }, { 212, 30 },{ 220, 30 },{ 224, 30 }, - { 9, 40 }, { 15, 40 }, { 30, 40 }, { 45, 40 }, { 60, 40 }, { 75, 40 }, { 90, 40 }, { 105, 40 }, { 120, 40 }, { 135, 40 }, { 150, 40 }, { 165, 40 }, { 180, 40 },{ 195, 40 }, { 202, 40 }, { 212, 40 }, - { 12, 50 }, { 15, 50 }, { 30, 50 }, { 45, 50 }, { 60, 50 }, { 75, 50 }, { 90, 50 }, { 105, 50 }, { 120, 50 }, { 135, 50 }, { 150, 50 }, { 165, 50 }, { 180, 50 },{ 195, 50 }, { 202, 50 }, { 212, 50 },{ 224, 50 }, - { 2, 60 }, { 17, 60 }, { 34, 60 }, { 77, 60 }, { 120, 60 }, { 135, 60 }, { 150, 60 }, { 165, 60 }, { 177, 60 }, { 182, 60 }, { 197, 60 }, { 212, 60 }, - -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1,1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9/*caps lock*/, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4 -} }; - - -#endif diff --git a/keyboards/kprepublic/bm980hsrgb/keyboard.json b/keyboards/kprepublic/bm980hsrgb/keyboard.json index 85f8b006ae..c4ffb1746a 100644 --- a/keyboards/kprepublic/bm980hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm980hsrgb/keyboard.json @@ -8,7 +8,107 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 195, "y": 0, "flags": 1}, + {"matrix": [6, 13], "x": 202, "y": 0, "flags": 9}, + {"matrix": [6, 10], "x": 212, "y": 0, "flags": 1}, + {"matrix": [6, 6], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 120, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 135, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 150, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 165, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 180, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 195, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 202, "y": 20, "flags": 1}, + {"matrix": [6, 11], "x": 212, "y": 20, "flags": 1}, + {"matrix": [6, 9], "x": 220, "y": 20, "flags": 1}, + {"matrix": [6, 2], "x": 224, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 8, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 15, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 90, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 105, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 120, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 165, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 180, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 195, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 202, "y": 30, "flags": 4}, + {"matrix": [6, 3], "x": 212, "y": 30, "flags": 4}, + {"matrix": [6, 4], "x": 220, "y": 30, "flags": 4}, + {"matrix": [6, 5], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 40, "flags": 9}, + {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 30, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 180, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 195, "y": 40, "flags": 4}, + {"matrix": [6, 8], "x": 202, "y": 40, "flags": 4}, + {"matrix": [6, 7], "x": 212, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 50, "flags": 1}, + {"matrix": [4, 2], "x": 15, "y": 50, "flags": 4}, + {"matrix": [4, 3], "x": 30, "y": 50, "flags": 4}, + {"matrix": [4, 4], "x": 45, "y": 50, "flags": 4}, + {"matrix": [4, 5], "x": 60, "y": 50, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 50, "flags": 4}, + {"matrix": [4, 7], "x": 90, "y": 50, "flags": 4}, + {"matrix": [4, 8], "x": 105, "y": 50, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 50, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 150, "y": 50, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 50, "flags": 1}, + {"matrix": [4, 13], "x": 180, "y": 50, "flags": 1}, + {"matrix": [4, 14], "x": 195, "y": 50, "flags": 4}, + {"matrix": [5, 8], "x": 202, "y": 50, "flags": 4}, + {"matrix": [5, 7], "x": 212, "y": 50, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 50, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 60, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 60, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 120, "y": 60, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 60, "flags": 1}, + {"matrix": [5, 11], "x": 150, "y": 60, "flags": 1}, + {"matrix": [5, 12], "x": 165, "y": 60, "flags": 1}, + {"matrix": [5, 13], "x": 177, "y": 60, "flags": 1}, + {"matrix": [5, 14], "x": 182, "y": 60, "flags": 1}, + {"matrix": [5, 3], "x": 197, "y": 60, "flags": 4}, + {"matrix": [5, 4], "x": 212, "y": 60, "flags": 4} + ] }, "build": { "lto": true diff --git a/keyboards/kradoindustries/kousa/readme.md b/keyboards/kradoindustries/kousa/readme.md index b9a50a93c9..74065faeb7 100644 --- a/keyboards/kradoindustries/kousa/readme.md +++ b/keyboards/kradoindustries/kousa/readme.md @@ -29,4 +29,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kradoindustries/krado66/readme.md b/keyboards/kradoindustries/krado66/readme.md index 7b8a275ee4..fd33a8643e 100644 --- a/keyboards/kradoindustries/krado66/readme.md +++ b/keyboards/kradoindustries/krado66/readme.md @@ -27,4 +27,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kradoindustries/promenade/readme.md b/keyboards/kradoindustries/promenade/readme.md index 179563995c..cf939bfab0 100644 --- a/keyboards/kradoindustries/promenade/readme.md +++ b/keyboards/kradoindustries/promenade/readme.md @@ -27,4 +27,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c index f08f27216a..a43ca24468 100644 --- a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c @@ -99,4 +99,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)} }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kradoindustries/promenade_rp24s/readme.md b/keyboards/kradoindustries/promenade_rp24s/readme.md index 9685cb8296..eed5939b7f 100644 --- a/keyboards/kradoindustries/promenade_rp24s/readme.md +++ b/keyboards/kradoindustries/promenade_rp24s/readme.md @@ -26,4 +26,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kraken_jones/pteron56/keyboard.json b/keyboards/kraken_jones/pteron56/keyboard.json index d298a1220f..ccfcc49da5 100644 --- a/keyboards/kraken_jones/pteron56/keyboard.json +++ b/keyboards/kraken_jones/pteron56/keyboard.json @@ -91,4 +91,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/ktec/ergodone/ergodox_compat.h b/keyboards/ktec/ergodone/ergodox_compat.h index b566e6cc94..37a9ddbc3a 100644 --- a/keyboards/ktec/ergodone/ergodox_compat.h +++ b/keyboards/ktec/ergodone/ergodox_compat.h @@ -91,4 +91,4 @@ static inline void ergodox_blink_all_leds(void) { //ergodox_led_all_on(); //wait_ms(333); ergodox_led_all_off(); -} \ No newline at end of file +} diff --git a/keyboards/ktec/ergodone/keymaps/default/readme.md b/keyboards/ktec/ergodone/keymaps/default/readme.md index 1150a4f709..f1634c1e98 100644 --- a/keyboards/ktec/ergodone/keymaps/default/readme.md +++ b/keyboards/ktec/ergodone/keymaps/default/readme.md @@ -12,4 +12,4 @@ This is what we ship with out of the factory. :) The image says it all: -![Default](https://i.imgur.com/Be53jH7.png) \ No newline at end of file +![Default](https://i.imgur.com/Be53jH7.png) diff --git a/keyboards/kuro/kuro65/keymaps/default/keymap.c b/keyboards/kuro/kuro65/keymaps/default/keymap.c index 4224bb8a3e..cc3764f2a0 100644 --- a/keyboards/kuro/kuro65/keymaps/default/keymap.c +++ b/keyboards/kuro/kuro65/keymaps/default/keymap.c @@ -90,4 +90,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_END ) -}; \ No newline at end of file +}; diff --git a/keyboards/kwstudio/scorpio_rev2/readme.md b/keyboards/kwstudio/scorpio_rev2/readme.md index aa404d671b..1c12a46c9b 100644 --- a/keyboards/kwstudio/scorpio_rev2/readme.md +++ b/keyboards/kwstudio/scorpio_rev2/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/labbe/labbeminiv1/keyboard.json b/keyboards/labbe/labbeminiv1/keyboard.json index e1b94dfa4e..905a180d22 100644 --- a/keyboards/labbe/labbeminiv1/keyboard.json +++ b/keyboards/labbe/labbeminiv1/keyboard.json @@ -26,6 +26,15 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT_wasd": { "layout": [ diff --git a/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c b/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c index 3457acc011..3d4768c50d 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c +++ b/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D), -}; \ No newline at end of file +}; diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h b/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h index 087f4d7675..7e4e3e3de2 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h +++ b/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h @@ -25,4 +25,4 @@ #define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ #define RGBLIGHT_SLEEP // If defined, the RGB lighting will be switched off when the host goes to sleep -#define RGBLIGHT_EFFECT_RAINBOW_MOOD \ No newline at end of file +#define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c b/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c index b708dee5e9..327d171404 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c +++ b/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D), -}; \ No newline at end of file +}; diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk b/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk index 7ad666d1a3..1e3cebb145 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk +++ b/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk @@ -1 +1 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h index 3aa0db7e38..5a071b78b1 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h @@ -23,4 +23,4 @@ #define RGB_MATRIX_KEYPRESSES #define ENABLE_RGB_MATRIX_MULTISPLASH -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_MULTISPLASH \ No newline at end of file +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_MULTISPLASH diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c index b708dee5e9..327d171404 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D), -}; \ No newline at end of file +}; diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk index 0a6437f0ef..e35030ed5c 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk @@ -1,2 +1,2 @@ RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = ws2812 \ No newline at end of file +RGB_MATRIX_DRIVER = ws2812 diff --git a/keyboards/labbe/labbeminiv1/readme.md b/keyboards/labbe/labbeminiv1/readme.md index 4e3d095255..00e57993c5 100644 --- a/keyboards/labbe/labbeminiv1/readme.md +++ b/keyboards/labbe/labbeminiv1/readme.md @@ -1,3 +1,3 @@ # Labbe Mini V1 Keyboard -A 4 key keyboard with perkey rgb support \ No newline at end of file +A 4 key keyboard with perkey rgb support diff --git a/keyboards/latincompass/latin17rgb/keyboard.json b/keyboards/latincompass/latin17rgb/keyboard.json index 6dab2faf68..d6689f203a 100644 --- a/keyboards/latincompass/latin17rgb/keyboard.json +++ b/keyboards/latincompass/latin17rgb/keyboard.json @@ -61,6 +61,25 @@ "solid_reactive": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 48, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [0, 3], "x": 80, "y": 48, "flags": 1}, + {"matrix": [1, 0], "x": 16, "y": 32, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 48, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [2, 0], "x": 80, "y": 16, "flags": 1}, + {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 80, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 112, "y": 0, "flags": 1}, + {"matrix": [3, 1], "x": 128, "y": 0, "flags": 4}, + {"matrix": [3, 2], "x": 144, "y": 0, "flags": 4}, + {"matrix": [3, 3], "x": 160, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 128, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 144, "y": 16, "flags": 4} + ], "sleep": true }, "features": { diff --git a/keyboards/latincompass/latin17rgb/latin17rgb.c b/keyboards/latincompass/latin17rgb/latin17rgb.c index 54705bf4f7..c9120920eb 100644 --- a/keyboards/latincompass/latin17rgb/latin17rgb.c +++ b/keyboards/latincompass/latin17rgb/latin17rgb.c @@ -1,18 +1,18 @@ /* Copyright 2021 18438880 - * - * 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 . - */ + * + * 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 "quantum.h" #ifdef RGB_MATRIX_ENABLE @@ -31,7 +31,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_12, C2_12, C3_12},// BL5 {0, C1_13, C2_13, C3_13},// BL6 {0, C1_6, C2_6, C3_6},// BL7 - {0, C1_7, C2_7, C3_7},//BL8 + {0, C1_7, C2_7, C3_7},//BL8 {0, C1_8, C2_8, C3_8},// BL9 {0, C1_14, C2_14, C3_14},// BL10 {0, C1_15, C2_15, C3_15},// BL11 @@ -41,30 +41,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C9_3, C8_3, C7_3},//BL15 {0, C9_5, C8_5, C7_5},// BL16 {0, C9_6, C8_6, C7_6},// BL17 - -}; -led_config_t g_led_config = { - { - { 0, 1, 2, 3}, - { 4, 5, 6, 7}, - { 8, 9, 10, NO_LED}, - { 11, 12, 13, 14}, - { 15, 16, NO_LED, NO_LED}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48}, - { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64}, - { 80, 16},{ 64, 32},{ 80, 32}, - {112, 0},{128, 0},{144, 0},{160, 0}, - {128, 16},{144, 16} - }, - { - 4, 4, 4, 1, - 1, 1, 4, 1, - 1, 4, 4, - 1, 4, 4, 4, - 4, 4 - } }; #endif diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index 6b15975100..ac1aec51bb 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -19,4 +19,4 @@ #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND -#define B7_AUDIO +#define AUDIO_PIN B7 diff --git a/keyboards/latincompass/latin6rgb/keyboard.json b/keyboards/latincompass/latin6rgb/keyboard.json index d2708df399..6674b58205 100644 --- a/keyboards/latincompass/latin6rgb/keyboard.json +++ b/keyboards/latincompass/latin6rgb/keyboard.json @@ -39,6 +39,14 @@ "solid_reactive": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 0, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 1}, + {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/latincompass/latin6rgb/latin6rgb.c b/keyboards/latincompass/latin6rgb/latin6rgb.c index 779373ae8f..1176063c37 100644 --- a/keyboards/latincompass/latin6rgb/latin6rgb.c +++ b/keyboards/latincompass/latin6rgb/latin6rgb.c @@ -1,18 +1,18 @@ /* Copyright 2021 18438880 - * - * 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 . - */ + * + * 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 "quantum.h" #ifdef RGB_MATRIX_ENABLE @@ -31,19 +31,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_12, C2_12, C3_12},// BL5 {0, C1_13, C2_13, C3_13},// BL6 }; - -led_config_t g_led_config = { - { - { 0, 1, 2}, - { 3, 4, 5}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48}, - { 80, 16},{ 64, 32},{ 80, 32} - }, - { - 4, 4, 4, - 1, 1, 4 - } -}; #endif diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json index 3b4563b1ca..930cdadad8 100644 --- a/keyboards/latincompass/latinpad/keyboard.json +++ b/keyboards/latincompass/latinpad/keyboard.json @@ -40,7 +40,27 @@ "pixel_flow": true, "pixel_fractal": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [0, 1], "x": 74, "y": 16, "flags": 1}, + {"matrix": [0, 2], "x": 148, "y": 16, "flags": 1}, + {"matrix": [0, 3], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [1, 1], "x": 74, "y": 32, "flags": 1}, + {"matrix": [1, 2], "x": 148, "y": 32, "flags": 1}, + {"matrix": [1, 3], "x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [2, 1], "x": 74, "y": 48, "flags": 1}, + {"matrix": [2, 2], "x": 148, "y": 48, "flags": 1}, + {"matrix": [2, 3], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 74, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 148, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [4, 1], "x": 74, "y": 0, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/latincompass/latinpad/latinpad.c b/keyboards/latincompass/latinpad/latinpad.c deleted file mode 100644 index b476b4c238..0000000000 --- a/keyboards/latincompass/latinpad/latinpad.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2020 latincompass - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9, 10, 11 }, - { 12, 13, 14, 15 }, - { 16, 17, NO_LED, NO_LED } -},{ - { 74, 21 }, { 37, 21 }, { 24, 21 }, { 18, 21 }, - { 74, 10 }, { 37, 10 }, { 28, 10 }, { 18, 10 }, - { 74, 7 }, { 37, 7 }, { 20, 7 }, { 18, 7 }, - { 74, 5 }, { 37, 5 }, { 22, 5 }, { 18, 5 }, - { 74, 5 }, { 37, 5 }, -},{ - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1 -} }; -#endif diff --git a/keyboards/lazydesigners/the60/rev2/readme.md b/keyboards/lazydesigners/the60/rev2/readme.md index 12f51a06af..214de86227 100755 --- a/keyboards/lazydesigners/the60/rev2/readme.md +++ b/keyboards/lazydesigners/the60/rev2/readme.md @@ -18,4 +18,4 @@ **Reset Key:** To enter the bootloader, either push the RESET button on the PCB or the `QK_BOOT` key on the FN layer. - 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). \ No newline at end of file + 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/lfkeyboards/lfk87/readme.md b/keyboards/lfkeyboards/lfk87/readme.md index 44a36c479f..8fa0c6b903 100644 --- a/keyboards/lfkeyboards/lfk87/readme.md +++ b/keyboards/lfkeyboards/lfk87/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make lfkeyboards/lfk87:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/lfkeyboards/smk65/readme.md b/keyboards/lfkeyboards/smk65/readme.md index 50d52472bb..f0729294d6 100644 --- a/keyboards/lfkeyboards/smk65/readme.md +++ b/keyboards/lfkeyboards/smk65/readme.md @@ -14,4 +14,4 @@ Flashing example for this keyboard: make lfkeyboards/smk65: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). \ No newline at end of file +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/lgbtkl/keyboard.json b/keyboards/lgbtkl/keyboard.json index 51411f2b2a..e89d4dcc53 100644 --- a/keyboards/lgbtkl/keyboard.json +++ b/keyboards/lgbtkl/keyboard.json @@ -106,4 +106,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/lgbtkl/readme.md b/keyboards/lgbtkl/readme.md index cd6f94b6e9..234fee52fa 100644 --- a/keyboards/lgbtkl/readme.md +++ b/keyboards/lgbtkl/readme.md @@ -23,4 +23,4 @@ Enter the bootloader using one of the following methods: * **Bootmagic reset**: Hold the F1 key while connecting the USB cable * **Physical reset button**: Hold the button labeled 'B/R' for a while to enter bootloader. -* **Keycode in layout**: In the case of the default keymap, use the key combination Fn + F5 \ No newline at end of file +* **Keycode in layout**: In the case of the default keymap, use the key combination Fn + F5 diff --git a/keyboards/lily58/lite_rev3/halconf.h b/keyboards/lily58/lite_rev3/halconf.h index 4639740d44..da46c85cf6 100644 --- a/keyboards/lily58/lite_rev3/halconf.h +++ b/keyboards/lily58/lite_rev3/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/lime/keymaps/default/keymap.c b/keyboards/lime/keymaps/default/keymap.c index 8f4e6eb8a4..8e5923c14e 100644 --- a/keyboards/lime/keymaps/default/keymap.c +++ b/keyboards/lime/keymaps/default/keymap.c @@ -172,7 +172,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { # endif /* Joystick + Encoder fix */ - void keyboard_post_init_kb(void) { + void keyboard_post_init_user(void) { if (is_keyboard_master()) { gpio_write_pin_low(JOYSTICK_X_PIN); gpio_write_pin_low(JOYSTICK_Y_PIN); diff --git a/keyboards/linworks/dolice/keymaps/default/keymap.c b/keyboards/linworks/dolice/keymaps/default/keymap.c index 45f710a7a9..fe034d8f16 100644 --- a/keyboards/linworks/dolice/keymaps/default/keymap.c +++ b/keyboards/linworks/dolice/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/linworks/em8/readme.md b/keyboards/linworks/em8/readme.md index cd8f6a5ba3..ce3f9adca1 100644 --- a/keyboards/linworks/em8/readme.md +++ b/keyboards/linworks/em8/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## How to enter the bootloader * **Bootmagic reset**: Hold down the key `ESC` key and plug in the keyboard (Top left most switch). On older firmware revisions, `~` (top left most switch of the alpha cluster) may be needed instead. -* **Physical reset button**: Briefly press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB diff --git a/keyboards/linworks/fave65h/fave65h.c b/keyboards/linworks/fave65h/fave65h.c deleted file mode 100644 index 01cf705e2a..0000000000 --- a/keyboards/linworks/fave65h/fave65h.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2020 -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 "quantum.h" - - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 0, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, NO_LED, 17, 16 }, - { 51, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, NO_LED, 39, 40, 41 }, - { 50, 49, 48, NO_LED, NO_LED, NO_LED, 47, NO_LED, 46, NO_LED, 45, NO_LED, 44, 43, 42 } - }, { - // LED Index to Physical Position - {3, 32}, {8, 16}, {28, 16}, {44, 16}, {60, 16}, {76, 16}, {92, 16}, {108, 16}, {124, 16}, {140, 16}, - {156, 16}, {172, 16}, {188, 16}, {204, 16}, {224, 16}, {244, 16}, {244, 32}, {218, 32}, {192, 32}, {176, 32}, - {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {40, 48}, - {56, 48}, {72, 48}, {88, 48}, {104, 48}, {120, 48}, {136, 48}, {152, 48}, {168, 48}, {184, 48}, {206, 48}, - {228, 48}, {244, 48}, {244, 64}, {228, 64}, {212, 64}, {186, 64}, {166, 64}, {96, 64}, {46, 64}, {22, 64}, - {0, 64}, {14, 48}, {244, 0}, {220, 3}, {196, 0}, {180, 0}, {164, 0}, {148, 0}, {132, 0}, {116, 0}, - {100, 0}, {84, 0}, {68, 0}, {52, 0}, {36, 0}, {20, 0}, {4, 0} - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/linworks/fave65h/keyboard.json b/keyboards/linworks/fave65h/keyboard.json index 212bd0a37b..e92bb4abca 100644 --- a/keyboards/linworks/fave65h/keyboard.json +++ b/keyboards/linworks/fave65h/keyboard.json @@ -53,6 +53,75 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 9}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/linworks/fave87/keymaps/default/keymap.c b/keyboards/linworks/fave87/keymaps/default/keymap.c index 343c4c02ad..9383e6adbb 100644 --- a/keyboards/linworks/fave87/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), -}; \ No newline at end of file +}; diff --git a/keyboards/linworks/fave87h/fave87h.c b/keyboards/linworks/fave87h/fave87h.c deleted file mode 100644 index c529e439b9..0000000000 --- a/keyboards/linworks/fave87h/fave87h.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2020 -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 47, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 }, - { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO_LED, 0, NO_LED, NO_LED, NO_LED }, - { 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, NO_LED, 85, NO_LED, NO_LED, 86, NO_LED }, - { 73, 72, 71, NO_LED, NO_LED, 70, NO_LED, NO_LED, NO_LED, 69, 68, NO_LED, 67, 66, 65, 64, 63 } - }, { - // LED Index to Physical Position - { 190, 40 }, { 167, 40 }, { 153, 40 }, { 139, 40 }, { 125, 40 }, { 111, 40 }, { 97, 40 }, { 83, 40 }, { 69, 40 }, { 55, 40 }, - { 40, 40 }, { 26, 40 }, { 0, 41 }, { 5, 27 }, { 23, 27 }, { 37, 27 }, { 51, 27 }, { 65, 27 }, { 79, 27 }, { 93, 27 }, - { 107, 27 }, { 121, 27 }, { 135, 27 }, { 149, 27 }, { 163, 27 }, { 177, 27 }, { 195, 27 }, { 216, 27 }, { 230, 27 }, { 244, 27 }, - { 244, 15 }, { 230, 15 }, { 216, 15 }, { 191, 17 }, { 170, 15 }, { 156, 15 }, { 142, 15 }, { 128, 15 }, { 114, 15 }, { 100, 15 }, - { 86, 15 }, { 72, 15 }, { 58, 15 }, { 44, 15 }, { 30, 15 }, { 16, 15 }, { 2, 15 }, { 2, 0 }, { 30, 0 }, { 44, 0 }, - { 58, 0 }, { 72, 0 }, { 93, 0 }, { 107, 0 }, { 121, 0 }, { 135, 0 }, { 156, 0 }, { 170, 0 }, { 184, 0 }, { 198, 0 }, - { 216, 0 }, { 230, 0 }, { 244, 0 }, { 244, 64 }, { 230, 64 }, { 216, 64 }, { 197, 64 }, { 179, 64 }, { 162, 64 }, { 144, 64 }, - { 91, 64 }, { 39, 64 }, { 21, 64 }, { 4, 64 }, { 11, 52 }, { 33, 52 }, { 47, 52 }, { 62, 52 }, { 76, 52 }, { 90, 52 }, - { 104, 52 }, { 118, 52 }, { 132, 52 }, { 146, 52 }, { 160, 52 }, { 186, 52 }, { 230, 52 } - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/linworks/fave87h/keyboard.json b/keyboards/linworks/fave87h/keyboard.json index 4bb6e42de4..b3d125c770 100644 --- a/keyboards/linworks/fave87h/keyboard.json +++ b/keyboards/linworks/fave87h/keyboard.json @@ -56,6 +56,95 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 1}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 1}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 1}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 1}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 28, "flags": 1}, + {"matrix": [2, 2], "x": 33, "y": 28, "flags": 1}, + {"matrix": [2, 3], "x": 46, "y": 28, "flags": 1}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 28, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 9}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 111, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 124, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 148, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 131, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 52, "flags": 1}, + {"matrix": [4, 3], "x": 55, "y": 52, "flags": 1}, + {"matrix": [4, 4], "x": 68, "y": 52, "flags": 1}, + {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 94, "y": 52, "flags": 1}, + {"matrix": [4, 7], "x": 107, "y": 52, "flags": 1}, + {"matrix": [4, 8], "x": 120, "y": 52, "flags": 1}, + {"matrix": [4, 9], "x": 133, "y": 52, "flags": 1}, + {"matrix": [4, 10], "x": 146, "y": 52, "flags": 1}, + {"matrix": [4, 12], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/linworks/favepada/keyboard.json b/keyboards/linworks/favepada/keyboard.json index e468f88779..e8f3af81cb 100644 --- a/keyboards/linworks/favepada/keyboard.json +++ b/keyboards/linworks/favepada/keyboard.json @@ -140,4 +140,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/linworks/whale75/mcuconf.h b/keyboards/linworks/whale75/mcuconf.h index a89e1dd02b..a668be4d0c 100644 --- a/keyboards/linworks/whale75/mcuconf.h +++ b/keyboards/linworks/whale75/mcuconf.h @@ -22,4 +22,4 @@ #undef STM32_PWM_USE_TIM1 #undef STM32_PWM_USE_TIM4 #define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM4 TRUE \ No newline at end of file +#define STM32_PWM_USE_TIM4 TRUE diff --git a/keyboards/ll3ma/bongopad/keyboard.json b/keyboards/ll3ma/bongopad/keyboard.json index c3abc03fc9..9fba0917bb 100644 --- a/keyboards/ll3ma/bongopad/keyboard.json +++ b/keyboards/ll3ma/bongopad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BongoPad", "manufacturer": "Ll3ma", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3ma/bongopad", "maintainer": "Ll3ma", "usb": { "vid": "0x3728", diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c index df59752ce0..382cb2b960 100644 --- a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c +++ b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c @@ -76,15 +76,13 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } -void suspend_power_down_kb(void) { +void suspend_power_down_user(void) { // code will run multiple times while keyboard is suspended gpio_write_pin_high(GP23); gpio_write_pin_high(GP24); gpio_write_pin_high(GP25); - suspend_power_down_user(); } -void suspend_wakeup_init_kb(void) { +void suspend_wakeup_init_user(void) { layer_state_set_kb(layer_state); - suspend_wakeup_init_user(); } diff --git a/keyboards/lucid/velvet_hotswap/rules.mk b/keyboards/lucid/velvet_hotswap/rules.mk index 5a00049a75..3437a35bdf 100644 --- a/keyboards/lucid/velvet_hotswap/rules.mk +++ b/keyboards/lucid/velvet_hotswap/rules.mk @@ -1,2 +1,2 @@ # Processor frequency -F_CPU = 8000000 \ No newline at end of file +F_CPU = 8000000 diff --git a/keyboards/lucid/velvet_solder/rules.mk b/keyboards/lucid/velvet_solder/rules.mk index 5a00049a75..3437a35bdf 100644 --- a/keyboards/lucid/velvet_solder/rules.mk +++ b/keyboards/lucid/velvet_solder/rules.mk @@ -1,2 +1,2 @@ # Processor frequency -F_CPU = 8000000 \ No newline at end of file +F_CPU = 8000000 diff --git a/keyboards/lz/erghost/readme.md b/keyboards/lz/erghost/readme.md index 0a4a504227..b064d207c5 100644 --- a/keyboards/lz/erghost/readme.md +++ b/keyboards/lz/erghost/readme.md @@ -24,4 +24,4 @@ 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 * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Physical reset button**: Press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Press the button on the back of the PCB diff --git a/keyboards/machkeyboards/mach3/keymaps/default/keymap.c b/keyboards/machkeyboards/mach3/keymaps/default/keymap.c index c395c820f9..e351641982 100644 --- a/keyboards/machkeyboards/mach3/keymaps/default/keymap.c +++ b/keyboards/machkeyboards/mach3/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BL_UP, BL_DOWN, BL_BRTG, BL_UP, BL_DOWN, BL_BRTG ) -}; \ No newline at end of file +}; diff --git a/keyboards/machkeyboards/mach3/keymaps/default/readme.md b/keyboards/machkeyboards/mach3/keymaps/default/readme.md index d12e48d497..cf08391de6 100644 --- a/keyboards/machkeyboards/mach3/keymaps/default/readme.md +++ b/keyboards/machkeyboards/mach3/keymaps/default/readme.md @@ -1,4 +1,4 @@ # Default Mach 3 Keymap This is the default layout that comes with the Mach 3. -The keys are set to only control the backlight. \ No newline at end of file +The keys are set to only control the backlight. diff --git a/keyboards/machkeyboards/mach3/mach3.c b/keyboards/machkeyboards/mach3/mach3.c index 948df5a066..881528d650 100644 --- a/keyboards/machkeyboards/mach3/mach3.c +++ b/keyboards/machkeyboards/mach3/mach3.c @@ -15,28 +15,9 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2 }, - { 5, 4, 3 }, - { 6, 7, 8 }, -}, { - // LED Index to Physical Position - { 0, 0 }, { 112, 0 }, { 224, 0 }, - { 0, 112 }, { 112, 112 }, { 224, 112 }, - { 0, 224 }, { 112, 224 }, { 224, 224 }, -}, { - // LED Index to Flag - 4, 4, 4, - 4, 4, 4, - 4, 4, 4 -} }; -#endif - void keyboard_pre_init_kb(void) { gpio_set_pin_output(F5); gpio_write_pin_high(F5); - + keyboard_pre_init_user(); } diff --git a/keyboards/machkeyboards/readme.md b/keyboards/machkeyboards/readme.md index ef2f8b159d..d99156e667 100644 --- a/keyboards/machkeyboards/readme.md +++ b/keyboards/machkeyboards/readme.md @@ -4,4 +4,4 @@ Mach Keyboards focus itself on selling the best macropad in the world. [Mach Keyboards Official Website](https://machkeyboards.com) [Discord](https://discord.gg/ukFKFc7eXy) -[Instagram](https://www.instagram.com/machkeyboards) \ No newline at end of file +[Instagram](https://www.instagram.com/machkeyboards) diff --git a/keyboards/magic_force/mf17/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c index c845d80f13..867d292b88 100755 --- a/keyboards/magic_force/mf17/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf17/keymaps/default/keymap.c @@ -29,4 +29,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RM_SPDD, RM_TOGG, RM_SPDU, QK_BOOTLOADER, RM_PREV, RM_VALD, RM_HUED, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), -}; \ No newline at end of file +}; diff --git a/keyboards/magic_force/mf34/keyboard.json b/keyboards/magic_force/mf34/keyboard.json index 9acae04b27..35a652422d 100644 --- a/keyboards/magic_force/mf34/keyboard.json +++ b/keyboards/magic_force/mf34/keyboard.json @@ -65,6 +65,42 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 37, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 74, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 186, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 37, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 74, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 149, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 186, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 37, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 74, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 112, "y": 17, "flags": 4}, + {"matrix": [2, 4], "x": 149, "y": 17, "flags": 4}, + {"matrix": [2, 5], "x": 186, "y": 17, "flags": 4}, + {"matrix": [3, 3], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 186, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 224, "y": 38, "flags": 4}, + {"matrix": [4, 1], "x": 37, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 149, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 186, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 37, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 74, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 149, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 186, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 224, "y": 64, "flags": 4} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/magic_force/mf34/mf34.c b/keyboards/magic_force/mf34/mf34.c deleted file mode 100644 index 8cced36866..0000000000 --- a/keyboards/magic_force/mf34/mf34.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2015 Álvaro "Gondolindrim" Volpato - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -// RGB Matrix -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3 , 4, 5, 6}, - { 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, NO_LED }, - { NO_LED, NO_LED, NO_LED, 20, 21, 22, 23 }, - { NO_LED, 24, NO_LED, 25, 26, 27, NO_LED }, - { 28, 29, 30, NO_LED, 31, 32, 33 } - }, { - {0, 0}, {37, 0}, {74, 0}, {112, 0}, {149, 0}, {186, 0}, {224, 0}, - {0, 12}, {37, 12}, {74, 12}, {112, 12}, {149, 12}, {186, 12}, {224, 12}, - {0, 24}, {37, 24}, {74, 24}, {112, 17}, {149, 17}, {186, 17}, - {112, 38}, {149, 38}, {186, 38}, {224, 38}, - {37, 51}, {112, 51}, {149, 51}, {186, 51}, - {0, 64}, {37, 64}, {74, 64}, {149, 64}, {186, 64}, {224, 64} - }, { - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4 - } -}; -#endif diff --git a/keyboards/manyboard/macro/keyboard.json b/keyboards/manyboard/macro/keyboard.json index d0c278b781..3b99221b78 100644 --- a/keyboards/manyboard/macro/keyboard.json +++ b/keyboards/manyboard/macro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MB_Macro", "manufacturer": "Manyboard", - "url": "https://github.com/WillEhman/qmk_firmware/tree/dev_create_mb_macro", "maintainer": "William Ehman", "usb": { "vid": "0x4D42", diff --git a/keyboards/mariorion_v25/halconf.h b/keyboards/mariorion_v25/halconf.h index a25bad2c7f..7a41f7e008 100644 --- a/keyboards/mariorion_v25/halconf.h +++ b/keyboards/mariorion_v25/halconf.h @@ -7,4 +7,4 @@ #define HAL_USE_SPI FALSE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mariorion_v25/matrix_diagram.md b/keyboards/mariorion_v25/matrix_diagram.md index f37df5a6e1..795d3c1d30 100644 --- a/keyboards/mariorion_v25/matrix_diagram.md +++ b/keyboards/mariorion_v25/matrix_diagram.md @@ -26,4 +26,4 @@ ┌─────┬───┬───────────────────────────────────────┬───┬─────┐ │50 │51 │55 │5C │5D │ 10u Spacebar └─────┴───┴───────────────────────────────────────┴───┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/mariorion_v25/mcuconf.h b/keyboards/mariorion_v25/mcuconf.h index c2cf95aef2..b741e10311 100644 --- a/keyboards/mariorion_v25/mcuconf.h +++ b/keyboards/mariorion_v25/mcuconf.h @@ -6,4 +6,4 @@ #include_next #define STM32_PWM_USE_TIM17 TRUE -#define STM32_TIM17_SUPPRESS_ISR \ No newline at end of file +#define STM32_TIM17_SUPPRESS_ISR diff --git a/keyboards/mariorion_v25/prod/config.h b/keyboards/mariorion_v25/prod/config.h index 8895d16ece..c17b4322e4 100644 --- a/keyboards/mariorion_v25/prod/config.h +++ b/keyboards/mariorion_v25/prod/config.h @@ -13,4 +13,4 @@ #define INDICATOR_0 C9 #define INDICATOR_1 C8 -#define INDICATOR_2 C7 \ No newline at end of file +#define INDICATOR_2 C7 diff --git a/keyboards/mariorion_v25/proto/config.h b/keyboards/mariorion_v25/proto/config.h index 894b8fbf9e..d6c9049fd7 100644 --- a/keyboards/mariorion_v25/proto/config.h +++ b/keyboards/mariorion_v25/proto/config.h @@ -13,4 +13,4 @@ #define INDICATOR_0 C8 #define INDICATOR_1 C7 -#define INDICATOR_2 C6 \ No newline at end of file +#define INDICATOR_2 C6 diff --git a/keyboards/marksard/rhymestone/rev1/keyboard.json b/keyboards/marksard/rhymestone/rev1/keyboard.json index aaff1515e0..2b9829e711 100644 --- a/keyboards/marksard/rhymestone/rev1/keyboard.json +++ b/keyboards/marksard/rhymestone/rev1/keyboard.json @@ -10,6 +10,48 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 4], "x": 100, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 100, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 75, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 50, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 25, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 50, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 43, "flags": 4}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4}, + {"matrix": [4, 4], "x": 125, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 125, "y": 21, "flags": 4}, + {"matrix": [6, 4], "x": 125, "y": 43, "flags": 4}, + {"matrix": [7, 4], "x": 125, "y": 64, "flags": 1}, + {"matrix": [7, 3], "x": 150, "y": 64, "flags": 1}, + {"matrix": [7, 2], "x": 175, "y": 64, "flags": 1}, + {"matrix": [7, 1], "x": 200, "y": 64, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 64, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 43, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 200, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 175, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 150, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 150, "y": 21, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 43, "flags": 4}, + {"matrix": [6, 2], "x": 175, "y": 43, "flags": 4}, + {"matrix": [6, 1], "x": 200, "y": 43, "flags": 4}, + {"matrix": [5, 1], "x": 200, "y": 21, "flags": 4}, + {"matrix": [5, 2], "x": 175, "y": 21, "flags": 4} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/marksard/rhymestone/rev1/rev1.c b/keyboards/marksard/rhymestone/rev1/rev1.c deleted file mode 100644 index 06ea367707..0000000000 --- a/keyboards/marksard/rhymestone/rev1/rev1.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2020 marksard - * - * 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 "quantum.h" - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 10, 11, 12, 13, 0 }, - { 9, 18, 19, 14, 1 }, - { 8, 17, 16, 15, 2 }, - { 7, 6, 5, 4, 3 }, - { 30, 31, 32, 33, 20 }, - { 29, 38, 39, 34, 21 }, - { 28, 37, 36, 35, 22 }, - { 27, 26, 25, 24, 23 } -}, { - { 100, 0 }, { 100, 21 }, { 100, 43 }, { 100, 64 }, - { 75, 64 }, { 50, 64 }, { 25, 64 }, { 0, 64 }, - { 0, 43 }, { 0, 21 }, { 0, 0 }, - { 25, 0 }, { 50, 0 }, { 75, 0 }, - { 75, 21 }, { 75, 43 }, - { 50, 43 }, { 25, 43 }, - { 25, 21 }, { 50, 21 }, - { 125, 0 }, { 125, 21 }, { 125, 43 }, { 125, 64 }, - { 150, 64 }, { 175, 64 }, { 200, 64 }, { 225, 64 }, - { 225, 43 }, { 225, 21 }, { 225, 0 }, - { 200, 0 }, { 175, 0 }, { 150, 0 }, - { 150, 21 }, { 150, 43 }, - { 175, 43 }, { 200, 43 }, - { 200, 21 }, { 150, 21 } -}, { - 4, 4, 4, 1, - 1, 1, 1, 1, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 1, - 1, 1, 1, 1, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/marksard/treadstone48/common/glcdfont.c b/keyboards/marksard/treadstone48/common/glcdfont.c deleted file mode 100644 index 003ce1a87b..0000000000 --- a/keyboards/marksard/treadstone48/common/glcdfont.c +++ /dev/null @@ -1,233 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/marksard/treadstone48/keymaps/default/config.h b/keyboards/marksard/treadstone48/keymaps/default/config.h index a5f68e7a2b..ec84fb39f1 100644 --- a/keyboards/marksard/treadstone48/keymaps/default/config.h +++ b/keyboards/marksard/treadstone48/keymaps/default/config.h @@ -45,5 +45,3 @@ // If you plug in the USB on the right side, please enable MASTER_RIGHT // #define RHYMESTONE_RIGHTHAND - -#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c" diff --git a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h index f18bcf44e7..d5973a16d8 100644 --- a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h +++ b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h @@ -46,5 +46,3 @@ // If you plug in the USB on the right side, please enable MASTER_RIGHT // #define RHYMESTONE_RIGHTHAND - -#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c" diff --git a/keyboards/matchstickworks/southpad/rev1/keyboard.json b/keyboards/matchstickworks/southpad/rev1/keyboard.json index e7c3237a55..afc840944a 100644 --- a/keyboards/matchstickworks/southpad/rev1/keyboard.json +++ b/keyboards/matchstickworks/southpad/rev1/keyboard.json @@ -50,4 +50,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c index 7d5d5cf2b3..82e17a12f8 100644 --- a/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c +++ b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P3, KC_P2, KC_P1, KC_PENT, KC_PDOT, KC_P0 ), -}; \ No newline at end of file +}; diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c index 2dd332fdf5..298eb82917 100644 --- a/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c +++ b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_DOWN, KC_END, KC_DEL, KC_INS ), -}; \ No newline at end of file +}; diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/reverse/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/reverse/keymap.c new file mode 100644 index 0000000000..b318c144fd --- /dev/null +++ b/keyboards/matchstickworks/southpad/rev2/keymaps/reverse/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2023 Logan Butler*/ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_BSPC, KC_EQL, LSFT(KC_9),LSFT(KC_0), + KC_PMNS, KC_PAST, KC_PSLS, TG(1), + KC_PPLS, KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, + KC_PENT, KC_P1, KC_P2, KC_P3, + KC_PDOT, KC_P0 + ), + + [1] = LAYOUT( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, KC_PGUP, KC_UP, KC_HOME, + KC_LEFT, _______, KC_RGHT, + _______, KC_PGDN, KC_DOWN, KC_END, + KC_DEL, KC_INS + ), +}; diff --git a/keyboards/matrix/abelx/mcuconf.h b/keyboards/matrix/abelx/mcuconf.h index a2fd42b8c4..ce8783c8b9 100644 --- a/keyboards/matrix/abelx/mcuconf.h +++ b/keyboards/matrix/abelx/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/matrix/falcon/readme.md b/keyboards/matrix/falcon/readme.md index a2ceb82163..047591d487 100644 --- a/keyboards/matrix/falcon/readme.md +++ b/keyboards/matrix/falcon/readme.md @@ -22,4 +22,4 @@ 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 short cut the *RST* pin with the *GND* pin (pin at the topside of the *RST*) on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/matrix/m20add/mcuconf.h b/keyboards/matrix/m20add/mcuconf.h index 00216f6908..25f36a892d 100644 --- a/keyboards/matrix/m20add/mcuconf.h +++ b/keyboards/matrix/m20add/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/matrix/me/readme.md b/keyboards/matrix/me/readme.md index f04229b2d1..cba4af97d7 100644 --- a/keyboards/matrix/me/readme.md +++ b/keyboards/matrix/me/readme.md @@ -22,4 +22,4 @@ 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 short cut the *RST* pin with the *GND* pin (pin at the topside of the *RST*) on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/matrix/noah/keymaps/blockader/config.h b/keyboards/matrix/noah/keymaps/blockader/config.h deleted file mode 100644 index a64261ba9d..0000000000 --- a/keyboards/matrix/noah/keymaps/blockader/config.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -#define TAPPING_TOGGLE 2 diff --git a/keyboards/matrix/noah/keymaps/blockader/keymap.c b/keyboards/matrix/noah/keymaps/blockader/keymap.c deleted file mode 100644 index b6caf43f91..0000000000 --- a/keyboards/matrix/noah/keymaps/blockader/keymap.c +++ /dev/null @@ -1,652 +0,0 @@ -#include QMK_KEYBOARD_H - -enum { - LAYER_NORM_BASE, - LAYER_NORM_EXTENSION, - LAYER_RACE_BASE, - LAYER_RACE_EXTENSION, - LAYER_LEGACY_BASE, - LAYER_LEGACY_EXTENSION, - LAYER_CONTROL, - LAYER_WINDOW, - LAYER_DESKTOP, - NUMBER_OF_LAYERS, -}; - -bool temporary[NUMBER_OF_LAYERS] = { - [LAYER_NORM_BASE] = false, - [LAYER_NORM_EXTENSION] = true, - [LAYER_RACE_BASE] = false, - [LAYER_RACE_EXTENSION] = true, - [LAYER_LEGACY_BASE] = false, - [LAYER_LEGACY_EXTENSION] = true, - [LAYER_CONTROL] = false, - [LAYER_WINDOW] = true, - [LAYER_DESKTOP] = false, -}; - -#define KEY_FORWARD_LAYER(a) SAFE_RANGE + a - -enum{ - DANCE_PGDN_BOTTOM, - DANCE_PGUP_TOP, -}; - -tap_dance_action_t tap_dance_actions[] = { - [DANCE_PGDN_BOTTOM] = ACTION_TAP_DANCE_DOUBLE(KC_PGDN, LGUI(KC_DOWN)), - [DANCE_PGUP_TOP] = ACTION_TAP_DANCE_DOUBLE(KC_PGUP, LGUI(KC_UP)), -}; - -#define KEY_DANCE(a) TD(a) - -enum custom_keycodes { - KEY_BACK_LAYER = SAFE_RANGE + NUMBER_OF_LAYERS, - KEY_INSERT_LINE_START, - KEY_INSERT_HERE, - KEY_INSERT_LINE_END, - KEY_CREATE_PREVIOUS_LINE, - KEY_CREATE_NEXT_LINE, - KEY_CUT_WORD, - KEY_CUT_LINE, - KEY_CUT_SELECTION, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [LAYER_NORM_BASE] = LAYOUT_default_splitspace( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KEY_DANCE(DANCE_PGDN_BOTTOM), KEY_DANCE(DANCE_PGUP_TOP), KC_NO, KEY_CUT_LINE, KEY_FORWARD_LAYER(LAYER_RACE_BASE), - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LCBR, KC_RCBR, KC_BSLS, KEY_FORWARD_LAYER(LAYER_LEGACY_BASE), - KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KEY_FORWARD_LAYER(LAYER_DESKTOP), - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, LCTL(KC_LEFT), - KC_LCTL, KC_LGUI, KC_LALT, KEY_FORWARD_LAYER(LAYER_NORM_EXTENSION), KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_NO, LCTL(KC_RIGHT)), - [LAYER_NORM_EXTENSION] = LAYOUT_default_splitspace( - LGUI(LSFT(KC_4)), KC_NO, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, LCTL(KC_C), KEY_FORWARD_LAYER(LAYER_RACE_BASE), - KEY_FORWARD_LAYER(LAYER_WINDOW), LGUI(KC_SPC), LCTL(KC_SPC), KC_ESC, KC_TILD, KC_EXLM, KC_PEQL, KC_PLUS, KC_MINUS, KC_PIPE, KC_COLN, KC_LCBR, KC_RCBR, KEY_CREATE_PREVIOUS_LINE, KEY_FORWARD_LAYER(LAYER_LEGACY_BASE), - KEY_CUT_WORD, LALT(KC_LEFT), LALT(KC_RIGHT), KC_BSPC, LGUI(KC_LEFT), LCTL(KC_E), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LGUI(KC_V), KC_DQUO, KEY_CREATE_NEXT_LINE, KEY_FORWARD_LAYER(LAYER_DESKTOP), - KC_LSFT, LGUI(KC_Z), KEY_CUT_SELECTION, KC_LPRN, KC_RPRN, KC_UNDS, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_NO, LCTL(KC_LEFT), - KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, QK_BOOT, LCTL(KC_RIGHT)), - [LAYER_RACE_BASE] = LAYOUT_default_splitspace( - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_NO, KC_NO, KC_NO, KEY_BACK_LAYER, - KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LCBR, KC_RCBR, KC_BSLS, KC_NO, - KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_NO, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KEY_FORWARD_LAYER(LAYER_RACE_EXTENSION), KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), - [LAYER_RACE_EXTENSION] = LAYOUT_default_splitspace( - KC_NO, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_9, KC_0, KC_NO, KC_NO, KC_NO, KEY_CUT_LINE, KEY_BACK_LAYER, - KC_NO, KC_Q, KC_W, KC_F, KC_TILD, KC_EXLM, KC_PEQL, KC_PLUS, KC_MINUS, KC_PIPE, KC_COLN, KC_LCBR, KC_RCBR, KC_BSLS, KC_NO, - KEY_CUT_LINE, KC_A, KC_R, KC_BSPC, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_DQUO, KC_ENT, KC_NO, - KC_LSFT, KC_Z, KC_X, KC_LPRN, KC_RPRN, KC_UNDS, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), - [LAYER_LEGACY_BASE] = LAYOUT_default_splitspace( - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KEY_DANCE(DANCE_PGDN_BOTTOM), KEY_DANCE(DANCE_PGUP_TOP), KC_NO, KEY_CUT_LINE, KC_NO, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, KC_BSLS, KEY_BACK_LAYER, - 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, KEY_FORWARD_LAYER(LAYER_DESKTOP), - 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_NO, LCTL(KC_LEFT), - KC_LCTL, KC_LGUI, KC_LALT, KEY_FORWARD_LAYER(LAYER_LEGACY_EXTENSION), KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_NO, LCTL(KC_RIGHT)), - [LAYER_LEGACY_EXTENSION] = LAYOUT_default_splitspace( - LGUI(LSFT(KC_4)), KC_NO, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, LCTL(KC_C), KC_NO, - KEY_FORWARD_LAYER(LAYER_WINDOW), LGUI(KC_SPC), LCTL(KC_SPC), KC_ESC, KC_TILD, KC_EXLM, KC_PEQL, KC_PLUS, KC_MINUS, KC_PIPE, KC_COLN, KC_LCBR, KC_RCBR, KEY_CREATE_PREVIOUS_LINE, KEY_BACK_LAYER, - KEY_CUT_WORD, LALT(KC_LEFT), LALT(KC_RIGHT), KC_BSPC, LGUI(KC_LEFT), LCTL(KC_E), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LGUI(KC_V), KC_DQUO, KEY_CREATE_NEXT_LINE, KEY_FORWARD_LAYER(LAYER_DESKTOP), - KC_LSFT, LGUI(KC_Z), KEY_CUT_SELECTION, KC_LPRN, KC_RPRN, KC_UNDS, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, KC_RSFT, KC_NO, LCTL(KC_LEFT), - KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KEY_FORWARD_LAYER(LAYER_CONTROL), KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_NO, LCTL(KC_RIGHT)), - [LAYER_CONTROL] = LAYOUT_default_splitspace( - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KEY_INSERT_LINE_START, KEY_INSERT_HERE, KEY_INSERT_LINE_END, KC_NO, KC_NO, KC_NO, KEY_CREATE_PREVIOUS_LINE, KC_NO, - KEY_CUT_WORD, LALT(KC_LEFT), LALT(KC_RIGHT), KC_BSPC, LGUI(KC_LEFT), LCTL(KC_E), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, LGUI(KC_V), KC_NO, KEY_CREATE_NEXT_LINE, KC_NO, - KC_LSFT, LGUI(KC_Z), KEY_CUT_SELECTION, LGUI(KC_C), LGUI(KC_V), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), - [LAYER_WINDOW] = LAYOUT_default_splitspace( - 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, - KEY_BACK_LAYER, 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_NO, KEY_BACK_LAYER, 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, KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), - [LAYER_DESKTOP] = LAYOUT_default_splitspace( - 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, LCTL(KC_LEFT), KC_NO, KC_NO, LCTL(KC_RIGHT), KC_NO, KC_NO, KEY_BACK_LAYER, KEY_BACK_LAYER, - 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, KEY_BACK_LAYER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), -}; - -int layers[16]; - -struct { - bool back; -} common_layer_data; -struct { - int operator, multiplier; -} layer_control_data; - -struct { - int start_time; -} layer_window_data; - -bool handle_layer_key(uint16_t key, keyrecord_t* record) { - switch (layers[layers[0] + 1]) { - case LAYER_CONTROL: - switch (key) { - case KC_0: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_1: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 1; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_2: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 2; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_3: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 3; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_4: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 4; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_5: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 5; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_6: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 6; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_7: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 7; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_8: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 8; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KC_9: - if (record->event.pressed) { - layer_control_data.multiplier = layer_control_data.multiplier * 10 + 9; - if (layer_control_data.multiplier < 0) layer_control_data.multiplier = 0; - } - return false; - case KEY_INSERT_LINE_START: - if (record->event.pressed) common_layer_data.back = true; - return true; - case KEY_INSERT_HERE: - if (record->event.pressed) common_layer_data.back = true; - return true; - case KEY_INSERT_LINE_END: - if (record->event.pressed) common_layer_data.back = true; - return true; - case KEY_CREATE_PREVIOUS_LINE: - if (record->event.pressed) common_layer_data.back = true; - return true; - case KEY_CUT_WORD: - if (record->event.pressed) { - if (layer_control_data.operator== - 1) { - register_code(KC_LALT); - tap_code(KC_LEFT); - tap_code(KC_RIGHT); - unregister_code(KC_LALT); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_LEFT))); - tap_code16(LGUI(KC_X)); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case LALT(KC_LEFT): - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LALT(KC_LEFT)); - else if (layer_control_data.operator== KC_BSPC) { - register_code(KC_LALT); - tap_code(KC_LEFT); - tap_code(KC_RIGHT); - unregister_code(KC_LALT); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_LEFT))); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - register_code(KC_LALT); - tap_code(KC_LEFT); - tap_code(KC_RIGHT); - unregister_code(KC_LALT); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_LEFT))); - tap_code16(LGUI(KC_C)); - tap_code(KC_RIGHT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case LALT(KC_RIGHT): - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LALT(KC_RIGHT)); - else if (layer_control_data.operator== KC_BSPC) { - register_code(KC_LALT); - tap_code(KC_RIGHT); - tap_code(KC_LEFT); - unregister_code(KC_LALT); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_RIGHT))); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - register_code(KC_LALT); - tap_code(KC_RIGHT); - tap_code(KC_LEFT); - unregister_code(KC_LALT); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(LALT(KC_RIGHT))); - tap_code16(LGUI(KC_C)); - tap_code(KC_LEFT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case LGUI(KC_LEFT): - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - tap_code16(LGUI(KC_LEFT)); - else if (layer_control_data.operator== KC_BSPC) { - tap_code16(LSFT(LGUI(KC_LEFT))); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - tap_code16(LSFT(LGUI(KC_LEFT))); - tap_code16(LGUI(KC_C)); - tap_code(KC_RIGHT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case LCTL(KC_E): - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - tap_code16(LCTL(KC_E)); - else if (layer_control_data.operator== KC_BSPC) { - tap_code16(LSFT(LCTL(KC_E))); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - tap_code16(LSFT(LCTL(KC_E))); - tap_code16(LGUI(KC_C)); - tap_code(KC_LEFT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case KC_BSPC: - if (record->event.pressed) { - if (get_mods() & MOD_MASK_SHIFT) { - unregister_code(KC_LSFT); - tap_code16(LGUI(KC_X)); - register_code(KC_LSFT); - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } else if (layer_control_data.operator== - 1) - layer_control_data.operator= KC_BSPC; - else { - if (layer_control_data.operator== KC_BSPC) { - tap_code16(LCTL(KC_A)); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); - tap_code16(LGUI(KC_X)); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - } - return false; - case KC_LEFT: - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_LEFT); - else if (layer_control_data.operator== KC_BSPC) { - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_LEFT)); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_LEFT)); - tap_code16(LGUI(KC_C)); - tap_code(KC_RIGHT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case KC_DOWN: - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_DOWN); - else if (layer_control_data.operator== KC_BSPC) { - tap_code16(LCTL(KC_A)); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - tap_code16(LCTL(KC_A)); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); - tap_code16(LGUI(KC_C)); - tap_code(KC_LEFT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case KC_UP: - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_UP); - else if (layer_control_data.operator== KC_BSPC) { - tap_code16(LCTL(KC_E)); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_UP)); - tap_code16(LSFT(LCTL(KC_E))); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - tap_code16(LCTL(KC_E)); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_UP)); - tap_code16(LSFT(LCTL(KC_E))); - tap_code16(LGUI(KC_C)); - tap_code(KC_RIGHT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case KC_RIGHT: - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code(KC_RIGHT); - else if (layer_control_data.operator== KC_BSPC) { - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_RIGHT)); - tap_code16(LGUI(KC_X)); - } else if (layer_control_data.operator== LGUI(KC_C)) { - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_RIGHT)); - tap_code16(LGUI(KC_C)); - tap_code(KC_LEFT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case KEY_CREATE_NEXT_LINE: - if (record->event.pressed) common_layer_data.back = true; - return true; - case LGUI(KC_Z): - if (layer_control_data.operator== - 1 && layer_control_data.multiplier == 0) return true; - if (record->event.pressed) { - if (layer_control_data.operator== - 1) - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LGUI(KC_Z)); - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - return false; - case LGUI(KC_C): - if (record->event.pressed) { - if (get_mods() & MOD_MASK_SHIFT) { - unregister_code(KC_LSFT); - tap_code16(LGUI(KC_C)); - register_code(KC_LSFT); - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } else if (layer_control_data.operator== - 1) - layer_control_data.operator= LGUI(KC_C); - else { - if (layer_control_data.operator== LGUI(KC_C)) { - tap_code16(LCTL(KC_A)); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LSFT(KC_DOWN)); - tap_code16(LGUI(KC_C)); - tap_code(KC_LEFT); - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - } - return false; - case LGUI(KC_V): - if (record->event.pressed) { - if (get_mods() & MOD_MASK_SHIFT) { - unregister_code(KC_LSFT); - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LGUI(KC_V)); - register_code(KC_LSFT); - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } else { - for (int i = 0; i < (layer_control_data.multiplier ? layer_control_data.multiplier : 1); ++i) tap_code16(LGUI(KC_V)); - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - } - } - return false; - } - layer_control_data.multiplier = 0; - layer_control_data.operator = - 1; - return true; - case LAYER_WINDOW: - switch (key) { - case SAFE_RANGE + LAYER_WINDOW: - if (!record->event.pressed) { - if (timer_elapsed(layer_window_data.start_time) < 200) - temporary[LAYER_WINDOW] = true; - else - temporary[LAYER_WINDOW] = false; - } - return true; - case KEY_BACK_LAYER: - if (record->event.pressed) tap_code(KC_ENTER); - return true; - } - return true; - case LAYER_DESKTOP: - switch (key) { - case KEY_BACK_LAYER: - if (record->event.pressed) tap_code16(LCTL(KC_UP)); - return true; - } - return true; - } - return true; -} - -void handle_layer_start(void) { - rgblight_disable_noeeprom(); - switch (layers[layers[0] + 1]) { - case LAYER_RACE_BASE: - case LAYER_RACE_EXTENSION: - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(HSV_GREEN); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - return; - case LAYER_LEGACY_BASE: - case LAYER_LEGACY_EXTENSION: - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(HSV_RED); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - return; - case LAYER_CONTROL: - layer_control_data.operator = - 1; - layer_control_data.multiplier = 0; - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(HSV_BLUE); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - return; - case LAYER_WINDOW: - register_code(KC_LGUI); - tap_code(KC_TAB); - layer_window_data.start_time = timer_read(); - return; - case LAYER_DESKTOP: - tap_code16(LCTL(KC_UP)); - return; - } -} - -void handle_layer_return(void) { - rgblight_disable_noeeprom(); - switch (layers[layers[0] + 1]) { - case LAYER_RACE_BASE: - case LAYER_RACE_EXTENSION: - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(HSV_GREEN); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - return; - case LAYER_LEGACY_BASE: - case LAYER_LEGACY_EXTENSION: - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(HSV_RED); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - return; - case LAYER_CONTROL: - layer_control_data.operator = - 1; - layer_control_data.multiplier = 0; - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom(HSV_BLUE); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - return; - } -} - -void handle_layer_end(void) { - switch (layers[layers[0] + 1]) { - case LAYER_WINDOW: - unregister_code(KC_LGUI); - return; - } -} - -void update_layer(void) { - layer_clear(); - common_layer_data.back = false; - layer_on(layers[layers[0] + 1]); -} - -bool handle_call_key(uint16_t key, keyrecord_t* record) { - switch (key) { - case KEY_BACK_LAYER: - if (record->event.pressed) { - if (layers[0]) { - handle_layer_end(); - --layers[0]; - update_layer(); - handle_layer_return(); - } - } - return false; - } - if (key >= SAFE_RANGE && key < SAFE_RANGE + NUMBER_OF_LAYERS) { - int new_layer = key - SAFE_RANGE; - if (record->event.pressed) { - if (layers[layers[0] + 1] != new_layer) { - if (temporary[layers[layers[0] + 1]]) { - handle_layer_end(); - layers[layers[0] + 1] = new_layer; - } else - layers[++layers[0] + 1] = new_layer; - update_layer(); - handle_layer_start(); - } - } else { - if (layers[layers[0] + 1] == new_layer && temporary[layers[layers[0] + 1]]) { - handle_layer_end(); - --layers[0]; - update_layer(); - handle_layer_return(); - } - } - return false; - } - if (common_layer_data.back) { - if (layers[0]) { - handle_layer_end(); - --layers[0]; - update_layer(); - handle_layer_return(); - } - } - return true; -} - -bool handle_common_key(uint16_t key, keyrecord_t* record) { - switch (key) { - case KEY_INSERT_LINE_START: - if (record->event.pressed) tap_code16(LGUI(KC_LEFT)); - return false; - case KEY_INSERT_HERE: - return false; - case KEY_INSERT_LINE_END: - if (record->event.pressed) tap_code16(LGUI(KC_RIGHT)); - return false; - case KEY_CREATE_PREVIOUS_LINE: - if (record->event.pressed) { - tap_code16(LGUI(KC_LEFT)); - tap_code(KC_ENTER); - tap_code(KC_UP); - } - return false; - case KEY_CREATE_NEXT_LINE: - if (record->event.pressed) { - tap_code16(LGUI(KC_RIGHT)); - tap_code(KC_ENTER); - } - return false; - case KEY_CUT_WORD: - if (record->event.pressed) { - register_code(KC_LALT); - tap_code(KC_LEFT); - tap_code(KC_RIGHT); - unregister_code(KC_LALT); - tap_code16(LSFT(LALT(KC_LEFT))); - tap_code16(LGUI(KC_X)); - } - return false; - case KEY_CUT_LINE: - if (record->event.pressed) { - tap_code16(LGUI(KC_RIGHT)); - tap_code16(LSFT(LGUI(KC_LEFT))); - tap_code16(LGUI(KC_X)); - } - return false; - case KEY_CUT_SELECTION: - if (record->event.pressed) { - if (get_mods() & MOD_MASK_SHIFT) { - unregister_code(KC_LSFT); - tap_code16(LGUI(KC_X)); - register_code(KC_LSFT); - } else - tap_code16(LGUI(KC_X)); - } - return false; - } - return true; -} - -bool process_record_user(uint16_t key, keyrecord_t* record) { - if (!handle_layer_key(key, record)) return false; - if (!handle_call_key(key, record)) return false; - return handle_common_key(key, record); -} - -void keyboard_post_init_user(void) { - rgblight_disable_noeeprom(); - rgb_matrix_disable(); - common_layer_data.back = false; -} diff --git a/keyboards/matrix/noah/keymaps/blockader/rules.mk b/keyboards/matrix/noah/keymaps/blockader/rules.mk deleted file mode 100644 index 610cc23423..0000000000 --- a/keyboards/matrix/noah/keymaps/blockader/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -TAP_DANCE_ENABLE = yes -DYNAMIC_MACRO_ENABLE = yes diff --git a/keyboards/matrix/noah/keymaps/wkl/keymap.c b/keyboards/matrix/noah/keymaps/wkl/keymap.c index 2e2377f18d..96bc62c0ff 100644 --- a/keyboards/matrix/noah/keymaps/wkl/keymap.c +++ b/keyboards/matrix/noah/keymaps/wkl/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/matrix/noah/mcuconf.h b/keyboards/matrix/noah/mcuconf.h index 00216f6908..25f36a892d 100644 --- a/keyboards/matrix/noah/mcuconf.h +++ b/keyboards/matrix/noah/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/mawaeg/sharkropad/chconf.h b/keyboards/mawaeg/sharkropad/chconf.h new file mode 100644 index 0000000000..c0a2323234 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/chconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 @mawaeg + * + * 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 . + */ + +#pragma once + +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/mawaeg/sharkropad/config.h b/keyboards/mawaeg/sharkropad/config.h new file mode 100644 index 0000000000..2e57c56f0f --- /dev/null +++ b/keyboards/mawaeg/sharkropad/config.h @@ -0,0 +1,30 @@ +/* Copyright 2025 @mawaeg + * + * 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 . + */ + +#pragma once + +#define STM32_FLASH_SECTORS_PER_BANK 128 + +#define I2C1_SCL_PIN A9 +#define I2C1_SDA_PIN A10 + +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_PWM_DMA_CHANNEL 4 + +#define RGB_MATRIX_MODE_NAME_ENABLE diff --git a/keyboards/mawaeg/sharkropad/halconf.h b/keyboards/mawaeg/sharkropad/halconf.h new file mode 100644 index 0000000000..9f0b573732 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 @mawaeg + * + * 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 . + */ + +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/mawaeg/sharkropad/keyboard.json b/keyboards/mawaeg/sharkropad/keyboard.json new file mode 100644 index 0000000000..c262d3e3cc --- /dev/null +++ b/keyboards/mawaeg/sharkropad/keyboard.json @@ -0,0 +1,136 @@ +{ + "manufacturer": "mawaeg", + "keyboard_name": "Sharkropad", + "maintainer": "mawaeg", + "bootloader": "stm32-dfu", + "bootmagic": { + "matrix": [0, 3] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A0", "pin_b": "A1"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "nkro": true, + "oled": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B1", "B0", "A4", "A2"], + "rows": ["A3", "A7", "A6", "A5"] + }, + "processor": "STM32L432", + "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, + "flower_blooming": 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, + "riverflow": 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, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "default": { + "animation": "cycle_up_down" + }, + "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 189, "y": 27, "flags": 4}, + {"matrix": [1, 1], "x": 137, "y": 27, "flags": 4}, + {"matrix": [1, 2], "x": 86, "y": 27, "flags": 4}, + {"matrix": [1, 3], "x": 35, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 189, "y": 41, "flags": 4}, + {"matrix": [2, 1], "x": 137, "y": 41, "flags": 4}, + {"matrix": [2, 2], "x": 86, "y": 41, "flags": 4}, + {"matrix": [2, 3], "x": 35, "y": 41, "flags": 4}, + {"matrix": [3, 0], "x": 189, "y": 55, "flags": 4}, + {"matrix": [3, 1], "x": 137, "y": 55, "flags": 4}, + {"matrix": [3, 2], "x": 86, "y": 55, "flags": 4}, + {"matrix": [3, 3], "x": 35, "y": 55, "flags": 4}, + {"x": 76, "y": 3, "flags": 2}, + {"x": 148, "y": 3, "flags": 2}, + {"x": 216, "y": 17, "flags": 2}, + {"x": 216, "y": 45, "flags": 2}, + {"x": 224, "y": 61, "flags": 2}, + {"x": 60, "y": 61, "flags": 2}, + {"x": 8, "y": 45, "flags": 2}, + {"x": 8, "y": 17, "flags": 2} + ], + "max_brightness": 180 + }, + "url": "https://github.com/mawaeg/sharkropad", + "usb": { + "device_version": "1.0.0", + "pid": "0xAFFE", + "vid": "0x6D73" + }, + "ws2812": { + "driver": "pwm", + "pin": "B3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 3], "x": 3, "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": [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": [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} + ] + } + } +} diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c new file mode 100644 index 0000000000..6a95257a1c --- /dev/null +++ b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2025 @mawaeg + * + * 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 + /* + * ┌────────────┐ + * │ RGB_MOD │ + * ┌───┬───┬───┼────────────┤ + * │ 7 │ 8 │ 9 │ RGB_TOGGLE │ + * ├───┼───┼───┼────────────┤ + * │ 4 │ 5 │ 6 │ NUM │ + * ├───┼───┼───┼────────────┤ + * │ 1 │ 2 │ 3 │ 0 │ + * └───┴───┴───┴────────────┘ + */ + [0] = LAYOUT( + RM_NEXT, + KC_P7, KC_P8, KC_P9, RM_TOGG, + KC_P4, KC_P5, KC_P6, KC_NUM, + KC_P1, KC_P2, KC_P3, KC_P0 + ) + // clang-format on +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(RM_SPDD, RM_SPDU)}, +}; +#endif diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk b/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mawaeg/sharkropad/mcuconf.h b/keyboards/mawaeg/sharkropad/mcuconf.h new file mode 100644 index 0000000000..2a66cc8d7b --- /dev/null +++ b/keyboards/mawaeg/sharkropad/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2025 @mawaeg + * + * 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 . + */ + +#pragma once + +#include_next + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 15 diff --git a/keyboards/mawaeg/sharkropad/readme.md b/keyboards/mawaeg/sharkropad/readme.md new file mode 100644 index 0000000000..d6faf506c5 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/readme.md @@ -0,0 +1,24 @@ +# sharkropad + +![sharkropad](https://i.imgur.com/qatvstX.jpeg) + +**Sharkropad** is an open-source hotswappable macropad. + +* Keyboard Maintainer: [Marek Schmitt](https://github.com/mawaeg) +* Hardware Supported: PCB included in the [Sharkropad repository](https://github.com/mawaeg/sharkropad). +* Hardware Availability: PCB has to be sourced yourserlf + +Make example for this keyboard (after setting up your build environment): + + make mawaeg/sharkropad:default + +Flashing example for this keyboard: + + make mawaeg/sharkropad: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: +* **Bootmagic reset**: Hold down the rotary encoder knob and plug in the keyboard diff --git a/keyboards/mawaeg/sharkropad/sharkropad.c b/keyboards/mawaeg/sharkropad/sharkropad.c new file mode 100644 index 0000000000..391f59800b --- /dev/null +++ b/keyboards/mawaeg/sharkropad/sharkropad.c @@ -0,0 +1,90 @@ +/* Copyright 2025 @mawaeg + * + * 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 "quantum.h" +#include +#include +#include + +static uint8_t effect_name_len = 0; + +const char *rgb_matrix_get_effect_name(void) { + static char buf[32] = {0}; + + snprintf(buf, sizeof(buf), "%s", rgb_matrix_get_mode_name(rgb_matrix_get_mode())); + for (uint8_t i = 1; i < sizeof(buf); ++i) { + if (buf[i] == 0) { + effect_name_len = i; + break; + } else if (buf[i] == '_') + buf[i] = ' '; + else if (buf[i - 1] == ' ') + buf[i] = toupper(buf[i]); + else if (buf[i - 1] != ' ') + buf[i] = tolower(buf[i]); + } + return buf; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + static uint8_t last_effect = 0; + static uint8_t last_speed = 0; + static uint16_t key_timer = 0; + static uint8_t start_index = 0; + + uint8_t speedPercentage = scale8(rgb_matrix_get_speed(), 100); + bool is_timer_elapsed = timer_elapsed(key_timer) > 200; + + if (last_effect != rgb_matrix_get_mode() || last_speed != speedPercentage || is_timer_elapsed) { + last_effect = rgb_matrix_get_mode(); + last_speed = speedPercentage; + + oled_write_ln_P(PSTR("Mode: "), false); + const char *name = rgb_matrix_get_effect_name(); + if (effect_name_len > 21) { + if (!is_timer_elapsed && start_index != 0) { + start_index -= 1; + } else { + key_timer = timer_read(); + } + if (start_index > effect_name_len) { + start_index = 0; + } + for (uint8_t char_index = 0; char_index < 21; char_index++) { + if ((start_index + char_index) % effect_name_len == 0 && char_index != 0) { + oled_write_char(' ', false); + } else { + oled_write_char(name[(start_index + char_index) % (effect_name_len + 1)], false); + } + } + start_index += 1; + } else { + oled_write_ln(name, false); + start_index = 0; + } + + oled_set_cursor(0, 2); + oled_write_ln_P(PSTR("RGB Speed: "), false); + oled_write(get_u8_str(speedPercentage, ' '), false); + oled_write("%", false); + } + + return true; +} diff --git a/keyboards/mazestudio/jocker/keymaps/default/keymap.c b/keyboards/mazestudio/jocker/keymaps/default/keymap.c index 4d4f46b2e6..de4c9f0cf8 100644 --- a/keyboards/mazestudio/jocker/keymaps/default/keymap.c +++ b/keyboards/mazestudio/jocker/keymaps/default/keymap.c @@ -13,4 +13,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) -}; \ No newline at end of file +}; diff --git a/keyboards/mb44/keymaps/3u_space/keymap.c b/keyboards/mb44/keymaps/3u_space/keymap.c index a0b412bb36..b458a0f3ed 100644 --- a/keyboards/mb44/keymaps/3u_space/keymap.c +++ b/keyboards/mb44/keymaps/3u_space/keymap.c @@ -65,4 +65,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/mc_76k/keymaps/default/readme.md b/keyboards/mc_76k/keymaps/default/readme.md index cfca7e7ec6..ee8b915908 100644 --- a/keyboards/mc_76k/keymaps/default/readme.md +++ b/keyboards/mc_76k/keymaps/default/readme.md @@ -2,4 +2,4 @@ ![DEFAULT](https://i.imgur.com/GzUITtG.png) -![FN1](https://i.imgur.com/ytnKmxg.png) \ No newline at end of file +![FN1](https://i.imgur.com/ytnKmxg.png) diff --git a/keyboards/mechanicalkeyboards/point65/config.h b/keyboards/mechanicalkeyboards/point65/config.h new file mode 100644 index 0000000000..31ba8c3f90 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/config.h @@ -0,0 +1,24 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 + +/* Double tap the side button to enter bootloader */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +/* couple of defaults */ +#define RGB_INDICATOR_POS_OFFSET 48 /* Indicator LEDs additional brightness */ diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c b/keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c new file mode 100644 index 0000000000..1da89f6f2d --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c @@ -0,0 +1,62 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 "quantum.h" + + enum point65_layers { + _QWERTY, + _FUNCTION +}; + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()){ + return false; + } + + hsv_t hsv = {0, 255, 255}; + + // Light up ESC RGB LED when _FUNCTION layer is accessed + if ((get_highest_layer(layer_state|default_layer_state)) == _FUNCTION){ + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); + } + // end layer function + + // capslock indicator + if (host_keyboard_led_state().caps_lock) { + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(1, rgb.r, rgb.g, rgb.b); + } + // end capslock function + + return false; +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json b/keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json new file mode 100644 index 0000000000..f988fb0423 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json @@ -0,0 +1,95 @@ +{ + "keyboard_name": "Point 65 Hotswap", + "matrix_pins": { + "rows": ["GP24", "GP22", "GP21", "GP19", "GP25"] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 255}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 255} + ] + }, + "url": "https://mechanicalkeyboards.com/products/mk-point65-keyboard-kit?variant=49803723735340", + "usb": { + "pid": "0xC0F5" + }, + "ws2812": { + "pin": "GP23" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_tsangan"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker" + }, + "layouts": { + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 15], "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, 15], "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, 15], "x": 15, "y": 2}, + {"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, 14], "x": 14, "y": 3}, + {"matrix": [3, 15], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..8441ae3830 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 + +enum point65_layers { + _QWERTY, + _FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNCTION), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FUNCTION] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO, + NK_TOGG, RM_TOGG, RM_VALU, KC_NO, RM_HUEU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, 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_MUTE, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c new file mode 100644 index 0000000000..b290fa0ac6 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 + +enum point65_layers { + _QWERTY, + _FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_65_ansi_blocker_tsangan( + 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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FUNCTION), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FUNCTION] = LAYOUT_65_ansi_blocker_tsangan( + 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_NO, + NK_TOGG, RM_TOGG, RM_VALU, KC_NO, RM_HUEU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, 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_MUTE, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c new file mode 100644 index 0000000000..ec2e9f28ba --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c @@ -0,0 +1,62 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 "quantum.h" + + enum point65_layers { + _QWERTY, + _FUNCTION +}; + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_user()){ + return false; + } + + hsv_t hsv = {0, 255, 255}; + + // Light up ESC RGB LED when _FUNCTION layer is accessed + if ((get_highest_layer(layer_state|default_layer_state)) == _FUNCTION){ + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); + } + // end layer function + + // capslock indicator + if (host_keyboard_led_state().caps_lock) { + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(30, rgb.r, rgb.g, rgb.b); + } + // end capslock function + + return false; +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json new file mode 100644 index 0000000000..55f206fe12 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "Point 65 Hotswap RGB", + "matrix_pins": { + "rows": ["GP24", "GP23", "GP22", "GP21", "GP25"] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 255}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 255}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 255}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 255}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 255}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 255}, + {"matrix": [0, 6], "x": 89, "y": 0, "flags": 255}, + {"matrix": [0, 7], "x": 104, "y": 0, "flags": 255}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 255}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 255}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 255}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 255}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 255}, + {"matrix": [0, 13], "x": 201, "y": 0, "flags": 255}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 255}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 255}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 255}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 255}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 255}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 255}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 255}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 255}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 255}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 255}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 255}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 255}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 255}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 255}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 255}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 255}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 255}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 255}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 255}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 255}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 255}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 255}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 255}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 255}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 255}, + {"matrix": [2, 9], "x": 145, "y": 32, "flags": 255}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 255}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 255}, + {"matrix": [2, 12], "x": 200, "y": 32, "flags": 255}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 255}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 255}, + {"matrix": [3, 14], "x": 209, "y": 48, "flags": 255}, + {"matrix": [3, 11], "x": 188, "y": 48, "flags": 255}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 255}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 255}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 255}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 255}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 255}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 255}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 255}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 255}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 255}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 255}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 255}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 255}, + {"matrix": [4, 1], "x": 20, "y": 64, "flags": 255}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 255}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 255}, + {"matrix": [4, 9], "x": 151, "y": 64, "flags": 255}, + {"matrix": [4, 10], "x": 170, "y": 64, "flags": 255}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 255}, + {"matrix": [4, 14], "x": 209, "y": 64, "flags": 255}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 255} + ] + }, + "url": "https://mechanicalkeyboards.com/products/mk-point65-keyboard-kit?variant=49803723538732", + "usb": { + "pid": "0xC0F6" + }, + "ws2812": { + "pin": "GP19" + }, + "community_layouts": ["65_ansi_blocker"] +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..e11e75c1f9 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 + +enum point65_layers { + _QWERTY, + _FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNCTION), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FUNCTION] = LAYOUT_65_ansi_blocker( + 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_NO, + NK_TOGG, RM_TOGG, RM_VALU, KC_NO, RM_HUEU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, 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_MUTE, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/mechanicalkeyboards/point65/info.json b/keyboards/mechanicalkeyboards/point65/info.json new file mode 100644 index 0000000000..c1ab9322a7 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/info.json @@ -0,0 +1,145 @@ +{ + "manufacturer": "Mechanical Keyboards", + "maintainer": "C44Supra", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP29", "GP0", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "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", + "max_brightness": 128 + }, + "usb": { + "device_version": "1.0.0", + "vid": "0x4242" + }, + "ws2812": { + "driver": "vendor" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "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, 15], "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, 15], "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, 15], "x": 15, "y": 2}, + {"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, 14], "x": 14, "y": 3}, + {"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, "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, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mechanicalkeyboards/point65/readme.md b/keyboards/mechanicalkeyboards/point65/readme.md new file mode 100644 index 0000000000..693e12df25 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/readme.md @@ -0,0 +1,31 @@ +# Mechanical Keyboards Point65 + +![Mechanical Keyboards Point65](https://i.imgur.com/lTEwGBR.png) +## Description +A 65% keyboard by [Mechanical Keyboards](https://mechanicalkeyboards.com) available as either multi layout hotswap, or hotswap with RGB per key backlight. + +* Keyboard Maintainer: [C44Supra](https://github.com/C44Supra) +* Hardware Supported: MK Point65 hotswap, MK Point65 hotswap RGB +* Hardware Availability: [MK Point65 Keyboard Kit](https://mechanicalkeyboards.com/products/mk-point65-keyboard-kit) + +## Firmware building +**Hotswap with 6.25U layout:** + + make mechanicalkeyboards/point65/hotswap:default + +**Hotswap with 7U layout:** + + make mechanicalkeyboards/point65/hotswap:default_7u + +**Hotswap RGB:** + + make mechanicalkeyboards/point65/hotswap_rgb:default + +## Bootloader and Flashing: +The keyboard can be flashed with new firmware by entering the bootloader in one of the following ways: +- Bootmagic reset: unplug the keyboard, press and hold the top left key, plug the keyboard back in, and then release the top left key +- Physical reset button: Remove the space bar and double press the reset button twice in short succession + +Once the keyboard enters bootloader mode, it will present itself as a removable device called `RPI-RP2`. Copy / drag the new firmware file to the `RPI-RP2` drive to flash the new firmware onto the keyboard. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/mechlovin/adelais/adelais.c b/keyboards/mechlovin/adelais/adelais.c index 5758bb7322..9a952c90c9 100644 --- a/keyboards/mechlovin/adelais/adelais.c +++ b/keyboards/mechlovin/adelais/adelais.c @@ -22,4 +22,4 @@ void keyboard_post_init_kb(void) { rgblight_sethsv_at(255, 255, 255, 0); keyboard_post_init_user(); } -#endif \ No newline at end of file +#endif diff --git a/keyboards/mechlovin/adelais/config.h b/keyboards/mechlovin/adelais/config.h index 9b59ebaf3a..55451b9f54 100644 --- a/keyboards/mechlovin/adelais/config.h +++ b/keyboards/mechlovin/adelais/config.h @@ -20,4 +20,4 @@ along with this program. If not, see . /* key matrix size */ #define MATRIX_ROWS 5 -#define MATRIX_COLS 15 \ No newline at end of file +#define MATRIX_COLS 15 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json index 01232b07e8..1de0b83552 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json @@ -62,6 +62,99 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"x": 223, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 215, "y": 48, "flags": 1}, + {"x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 100, "y": 0, "flags": 1}, + {"x": 69, "y": 0, "flags": 1}, + {"x": 24, "y": 0, "flags": 1}, + {"x": 0, "y": 3, "flags": 1}, + {"x": 0, "y": 16, "flags": 1}, + {"x": 0, "y": 32, "flags": 1}, + {"x": 0, "y": 51, "flags": 1}, + {"x": 15, "y": 64, "flags": 1}, + {"x": 34, "y": 64, "flags": 1}, + {"x": 69, "y": 64, "flags": 1}, + {"x": 103, "y": 64, "flags": 1}, + {"x": 110, "y": 64, "flags": 1}, + {"x": 120, "y": 64, "flags": 1}, + {"x": 155, "y": 64, "flags": 1}, + {"x": 189, "y": 64, "flags": 1}, + {"x": 192, "y": 64, "flags": 1}, + {"x": 224, "y": 58, "flags": 1}, + {"x": 224, "y": 32, "flags": 1}, + {"x": 224, "y": 16, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"x": 207, "y": 0, "flags": 1}, + {"x": 172, "y": 0, "flags": 1}, + {"x": 138, "y": 0, "flags": 1} + ], "max_brightness": 220, "react_on_keyup": true, "sleep": true diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c b/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c deleted file mode 100644 index 5f01f322df..0000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2020 Team Mechlovin - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16}, - {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17}, - {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 60, 32}, - {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67} -}, { - //LED Index to Physical Positon - {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0}, - {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, - {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, - {100,0}, { 69,0}, { 24, 0}, { 0,3}, { 0,16}, { 0,32}, { 0,51}, { 15,64 }, { 34,64}, { 69,64}, { 103,64}, {110,64}, { 120,64}, { 155,64}, { 189,64}, { 192,64}, { 224,58}, { 224,32}, { 224,16}, { 224,0}, { 207,0}, { 172,0}, { 138,0}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; -#endif diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json index a8633af5da..e71f103635 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json @@ -64,6 +64,76 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"x": 223, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1}, + {"x": 215, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c index 2dffbc24f0..d0bd63cdb4 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c @@ -94,29 +94,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C4_7, C5_7, C6_7}, //D83-D13-67 }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16}, - {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17}, - {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 32}, - {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67} - }, - { - //LED Index to Physical Positon - {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0}, - {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, - {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json index a7cd8faa78..fd68b62baf 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json @@ -61,6 +61,74 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [3, 1], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [4, 1], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"matrix": [4, 3], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 215, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h b/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h index aa5ea7335b..1885b75bd3 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h @@ -22,4 +22,4 @@ #define STM32_SPI_USE_SPI1 TRUE #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c index 33dd2157e4..d934e6df18 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c @@ -88,30 +88,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW1_CS24, SW1_CS23, SW1_CS22}, /* D103-K4E-65 */ }; -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED}, - {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED}, - {45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}, - {59, 16, 60, 31, 61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, NO_LED, NO_LED, 65}, - }, { - //LED Index to Physical Positon - {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {224, 0}, - {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, - {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/delphine/keymaps/default/keymap.c b/keyboards/mechlovin/delphine/keymaps/default/keymap.c index 6498b69262..a7d2ca046e 100644 --- a/keyboards/mechlovin/delphine/keymaps/default/keymap.c +++ b/keyboards/mechlovin/delphine/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_P0, KC_PDOT, KC_BSPC ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/delphine/rgb_led/keyboard.json b/keyboards/mechlovin/delphine/rgb_led/keyboard.json index d6e7a27f81..5cb2c13ac1 100644 --- a/keyboards/mechlovin/delphine/rgb_led/keyboard.json +++ b/keyboards/mechlovin/delphine/rgb_led/keyboard.json @@ -78,6 +78,33 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 13, "flags": 1}, + {"matrix": [1, 2], "x": 149, "y": 13, "flags": 1}, + {"matrix": [1, 3], "x": 224, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 25, "flags": 1}, + {"matrix": [2, 2], "x": 149, "y": 25, "flags": 1}, + {"matrix": [2, 3], "x": 224, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 38, "flags": 1}, + {"matrix": [3, 2], "x": 149, "y": 38, "flags": 1}, + {"matrix": [3, 3], "x": 224, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 149, "y": 51, "flags": 1}, + {"matrix": [4, 3], "x": 224, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 37, "y": 64, "flags": 0}, + {"matrix": [5, 1], "x": 75, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 149, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} + ], "react_on_keyup": true } } diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c index feda05a071..0f3f1c0889 100644 --- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c +++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c @@ -49,32 +49,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C4_14, C5_14, C6_14}, //D51-24 }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - {0, 1, 2, 3}, - {4, 5, 6, 7}, - {8, 9, 10, 11}, - {12, 13, 14, 15}, - {16, 17, 18, 19}, - {20, 22, 23, 24} - }, - { - //LED Index to Physical Positon - { 0, 0}, { 75, 0}, {149, 0}, {224, 0}, - { 0, 13}, { 75, 13}, {149, 13}, {224, 13}, - { 0, 25}, { 75, 25}, {149, 25}, {224, 25}, - { 0, 38}, { 75, 38}, {149, 38}, {224, 38}, - { 0, 51}, { 75, 51}, {149, 51}, {224, 51}, - { 0, 64}, { 37, 64}, { 75, 64}, {149, 64}, {224, 64}, -}, { - 4, 4, 4, 4, - 4, 1, 1, 4, - 4, 1, 1, 4, - 4, 1, 1, 4, - 4, 1, 1, 4, - 4, 0, 1, 1, 4, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/foundation/readme.md b/keyboards/mechlovin/foundation/readme.md index 61dacd55bd..1e06ca804c 100644 --- a/keyboards/mechlovin/foundation/readme.md +++ b/keyboards/mechlovin/foundation/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 4 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 * **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Hardware reset**: Press reset button (located on the bottom side of the PCB) \ No newline at end of file +* **Hardware reset**: Press reset button (located on the bottom side of the PCB) diff --git a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json index e2b0ae715e..82911ddaf9 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json @@ -69,6 +69,80 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1}, + {"x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1}, + {"matrix": [2, 12], "x": 211, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1}, + {"x": 192, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1}, + {"x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 48, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 64, "y": 64, "flags": 1}, + {"x": 80, "y": 64, "flags": 1}, + {"x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "react_on_keyup": true }, "matrix_pins": { diff --git a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c index 139db81bbe..2918d82318 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c +++ b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c @@ -17,28 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - {29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 15}, - {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 16, 43}, - {59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 44}, - {60, 61, 62, NO_LED, 63, NO_LED, 64, NO_LED, 67, NO_LED, 68, 69, 70, 71} -}, { - //LED Index to Physical Positon - { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0 }, { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {208, 0}, {216, 0}, - {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16}, - { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48}, - {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48}, - { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json index 066422b3e3..158e6907b4 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json @@ -87,6 +87,86 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1}, + {"x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 12, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1}, + {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 80, "y": 64, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 220, "y": 0, "flags": 1}, + {"x": 210, "y": 0, "flags": 1}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 1}, + {"x": 220, "y": 16, "flags": 1}, + {"x": 220, "y": 16, "flags": 1}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 220, "y": 32, "flags": 1}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1}, + {"x": 200, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 220, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1}, + {"x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9} + ], "react_on_keyup": true }, "matrix_pins": { diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c index 90a42a88a2..0667e8bc78 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c +++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c @@ -110,54 +110,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C9_16, C9_11, C7_12},//INDICATOR LED-77 }; -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 18, 19, 20, 21, 36, 37, 38, 39, 40, 41 }, - { 4, 5, 6, 7, 22, 23, 24, 25, 43, 44, 45, 46, 47, 69 }, - { 8, 9, 10, 11, 26, 27, 28, 29, 50, 51, 52, 53, 54, 55 }, - { 13, 14, 15, 30, 31, 32, 33, 56, 57, 58, 59, 60, 62, 63 }, - { 16, 17, 34, NO_LED, NO_LED, NO_LED, 35, NO_LED, NO_LED, NO_LED, 65, 66, 67, 68 } - }, { - //LED Index to Physical Positon - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, //9-59-68-76 - { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, //10-60-72-77 - { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, //46-61-73-78 - { 0, 48 }, { 0, 48 }, { 12, 48 }, { 16, 48 }, //126-51-63-74 - { 0, 64 }, { 16, 64 }, //56-67 - { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, //80-84-89-94 - { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, //81-85-90-95 - { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, //82-86-91-96 - { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, //79-83-87-92 - { 32, 64 }, { 80, 64 }, //75-93 - { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 220, 0 }, { 210, 0 }, //98-102-106-111-116-121-130 - { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 220, 16 }, { 220, 16 }, //99-103-107-112-117-129-122 - { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, { 220, 32 }, //100-104-108-113-118-123 - { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 200, 48 }, { 220, 48 }, { 220, 48 }, //97-101-105-109-114-119-128-124 - { 96, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }, { 220, 64 }, //127-110-115-120-125 - { 220, 0 }, //140 - { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } - }, { - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, - 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, - 9, 9, 9, 9, 9, 9, 9, 9 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c index c16620a74e..cce801e23d 100644 --- a/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c index ae53cc3f71..7a0d508150 100644 --- a/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c +++ b/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c index 022f1f3b37..3bf1d02576 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md index 63604a09e4..0723912d63 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md @@ -1,2 +1,2 @@ # The ansi keymap for hannah910v2 -GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file +GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c index c0f66cebcf..90ca736219 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md index 63604a09e4..0723912d63 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md @@ -1,2 +1,2 @@ # The ansi keymap for hannah910v2 -GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file +GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ diff --git a/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c index 70ba2431bd..06f973fb8a 100644 --- a/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c index 59f46dfbaa..764bb676ad 100644 --- a/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c +++ b/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hex4b/rev2/readme.md b/keyboards/mechlovin/hex4b/rev2/readme.md index 01ae8ea724..66e5cad083 100644 --- a/keyboards/mechlovin/hex4b/rev2/readme.md +++ b/keyboards/mechlovin/hex4b/rev2/readme.md @@ -25,4 +25,4 @@ 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 * **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Hardware reset**: Press reset button (located on the top side of the PCB) \ No newline at end of file +* **Hardware reset**: Press reset button (located on the top side of the PCB) diff --git a/keyboards/mechlovin/infinity87/rev1/readme.md b/keyboards/mechlovin/infinity87/rev1/readme.md index 448d69ca7c..45fd8445fe 100644 --- a/keyboards/mechlovin/infinity87/rev1/readme.md +++ b/keyboards/mechlovin/infinity87/rev1/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): 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). -**Reset Key:** To put the IF87_rev1, rouge87, rogue87 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. \ No newline at end of file +**Reset Key:** To put the IF87_rev1, rouge87, rogue87 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json index 2ca5e03b36..3709736be0 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json @@ -66,6 +66,99 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 14, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 28, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 42, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 56, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 70, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 84, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 98, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 112, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 126, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 140, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 154, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 168, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 182, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 196, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 210, "y": 16, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 14, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 28, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 42, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 70, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 84, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 98, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 112, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 126, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 140, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 154, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 168, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 182, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 196, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 210, "y": 32, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 14, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 28, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 42, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 56, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 70, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 84, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 98, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 126, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 140, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 154, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 168, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 182, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 56, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 70, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 84, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 98, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 126, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 80, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 80, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 80, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 80, "flags": 1}, + {"matrix": [5, 10], "x": 140, "y": 80, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 80, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 80, "flags": 1}, + {"matrix": [5, 13], "x": 182, "y": 80, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 80, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 80, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 80, "flags": 1} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/readme.md b/keyboards/mechlovin/infinity87/rgb_rev1/readme.md index 1e71fc29fc..c13aa70e5c 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/readme.md +++ b/keyboards/mechlovin/infinity87/rgb_rev1/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -**Reset Key:** To put the IF87_RGB_Rev.1 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. \ No newline at end of file +**Reset Key:** To put the IF87_RGB_Rev.1 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c index 8df305bb1a..ae4dfef158 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c +++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c @@ -111,31 +111,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS19, SW9_CS20, SW9_CS21}, //D165-K2G-90 }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, - {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, - {34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50}, - {51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, NO_LED, NO_LED}, - {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, NO_LED, 79, NO_LED}, - {80, 81, 82, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 84, 85, 86, 87, 88, 89, 90} - }, { - {0, 0}, {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0}, {196, 0}, {210, 0}, {224, 0}, - {0,16}, {14,16}, {28,16}, {42, 16}, {56, 16}, {70, 16}, {84, 16}, {98, 16}, {112, 16}, {126, 16}, {140, 16}, {154, 16}, {168, 16}, {182, 16}, {196, 16}, {210, 16}, {224, 16}, - {0,32}, {14,32}, {28,32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {182, 32}, {196, 32}, {210, 32}, {224, 32}, - {0,48}, {14,48}, {28,48}, {42, 48}, {56, 48}, {70, 48}, {84, 48}, {98, 48}, {112, 48}, {126, 48}, {140, 48}, {154, 48}, {168, 48}, {182, 48}, - {0,64}, {14,64}, {28,64}, {42, 64}, {56, 64}, {70, 64}, {84, 64}, {98, 64}, {112, 64}, {126, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64}, {210, 64}, - {0,80}, {14,80}, {28,80}, {84, 80}, {140, 80}, {154, 80}, {168, 80}, {182, 80}, {196, 80}, {210, 80}, {224, 80} - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/infinity875/infinity875.c b/keyboards/mechlovin/infinity875/infinity875.c deleted file mode 100644 index 09749bbc2b..0000000000 --- a/keyboards/mechlovin/infinity875/infinity875.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2021 Mechlovin' Studio - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} -}, { - //LED Index to Physical Positon - {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {67,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {182,0}, {196,0}, {210,0}, {224,0}, - {224,13}, {196,13}, {182,13}, {154,13}, {112,13}, {84,13}, {56,13}, {28,13}, {0,13}, - {0,25}, {0,38}, - {0,51}, {0,64}, - {28,64}, {56,64}, - {84,64}, {112,64}, {154,64}, {182,64}, {196,64}, {224,64}, {224,51}, {224,38}, {224,25}, -//{244,64}, {196,64}, {182,64}, {154,64}, {112,64}, {84,64}, {56,64}, {28,64}, {0,64}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, - 1, 1, - 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; -#endif - diff --git a/keyboards/mechlovin/infinity875/keyboard.json b/keyboards/mechlovin/infinity875/keyboard.json index 1016178caa..223fce2cac 100644 --- a/keyboards/mechlovin/infinity875/keyboard.json +++ b/keyboards/mechlovin/infinity875/keyboard.json @@ -15,6 +15,50 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1}, + {"x": 67, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"x": 224, "y": 13, "flags": 1}, + {"x": 196, "y": 13, "flags": 1}, + {"x": 182, "y": 13, "flags": 1}, + {"x": 154, "y": 13, "flags": 1}, + {"x": 112, "y": 13, "flags": 1}, + {"x": 84, "y": 13, "flags": 1}, + {"x": 56, "y": 13, "flags": 1}, + {"x": 28, "y": 13, "flags": 1}, + {"x": 0, "y": 13, "flags": 1}, + {"x": 0, "y": 25, "flags": 1}, + {"x": 0, "y": 38, "flags": 1}, + {"x": 0, "y": 51, "flags": 1}, + {"x": 0, "y": 64, "flags": 1}, + {"x": 28, "y": 64, "flags": 1}, + {"x": 56, "y": 64, "flags": 1}, + {"x": 84, "y": 64, "flags": 1}, + {"x": 112, "y": 64, "flags": 1}, + {"x": 154, "y": 64, "flags": 1}, + {"x": 182, "y": 64, "flags": 1}, + {"x": 196, "y": 64, "flags": 1}, + {"x": 224, "y": 64, "flags": 1}, + {"x": 224, "y": 51, "flags": 1}, + {"x": 224, "y": 38, "flags": 1}, + {"x": 224, "y": 25, "flags": 1} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/mechlovin/infinity875/keymaps/default/rules.mk b/keyboards/mechlovin/infinity875/keymaps/default/rules.mk index 64a7fa8664..14ace89730 100644 --- a/keyboards/mechlovin/infinity875/keymaps/default/rules.mk +++ b/keyboards/mechlovin/infinity875/keymaps/default/rules.mk @@ -1 +1 @@ -RGB_MATRIX_CUSTOM_USER = no \ No newline at end of file +RGB_MATRIX_CUSTOM_USER = no diff --git a/keyboards/mechlovin/infinity875/readme.md b/keyboards/mechlovin/infinity875/readme.md index 39c76e5dc9..85ad0aeed0 100644 --- a/keyboards/mechlovin/infinity875/readme.md +++ b/keyboards/mechlovin/infinity875/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to **Reset Key:** 3 ways to put the IF87.5 into bootloader: - By keycode: Press the key mapped to `QK_BOOT` if it is available. - By bootmagic: hold ESC key while plugging in. -- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. \ No newline at end of file +- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. diff --git a/keyboards/mechlovin/infinityce/infinityce.c b/keyboards/mechlovin/infinityce/infinityce.c index f1a9181a96..e2455fb1b3 100644 --- a/keyboards/mechlovin/infinityce/infinityce.c +++ b/keyboards/mechlovin/infinityce/infinityce.c @@ -32,4 +32,4 @@ bool led_update_kb(led_t led_state) { } } return res; -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c b/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c index cc8a3b5109..2cfecc301d 100644 --- a/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/kanu/keymaps/default/keymap.c b/keyboards/mechlovin/kanu/keymaps/default/keymap.c index 30db14c79e..ec15180738 100644 --- a/keyboards/mechlovin/kanu/keymaps/default/keymap.c +++ b/keyboards/mechlovin/kanu/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/mechlovin9/readme.md b/keyboards/mechlovin/mechlovin9/readme.md index 55dead19c4..d90c8e7fa2 100644 --- a/keyboards/mechlovin/mechlovin9/readme.md +++ b/keyboards/mechlovin/mechlovin9/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/mechlovin9/rev1/readme.md b/keyboards/mechlovin/mechlovin9/rev1/readme.md index 55dead19c4..d90c8e7fa2 100644 --- a/keyboards/mechlovin/mechlovin9/rev1/readme.md +++ b/keyboards/mechlovin/mechlovin9/rev1/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/mechlovin9/rev2/readme.md b/keyboards/mechlovin/mechlovin9/rev2/readme.md index 55dead19c4..d90c8e7fa2 100644 --- a/keyboards/mechlovin/mechlovin9/rev2/readme.md +++ b/keyboards/mechlovin/mechlovin9/rev2/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/mechlovin9/rev3/readme.md b/keyboards/mechlovin/mechlovin9/rev3/readme.md index 3b98b5383d..175e863c22 100644 --- a/keyboards/mechlovin/mechlovin9/rev3/readme.md +++ b/keyboards/mechlovin/mechlovin9/rev3/readme.md @@ -20,4 +20,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/olly/bb/readme.md b/keyboards/mechlovin/olly/bb/readme.md index 6afdc161ea..127b60a232 100644 --- a/keyboards/mechlovin/olly/bb/readme.md +++ b/keyboards/mechlovin/olly/bb/readme.md @@ -20,4 +20,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to **Reset Key:** 2 ways to put the Olly JF into bootloader: By keycode: Press the key mapped to `QK_BOOT` if it is available. -By bootloader: hold ESC key while plugging in \ No newline at end of file +By bootloader: hold ESC key while plugging in diff --git a/keyboards/mechlovin/olly/jf/readme.md b/keyboards/mechlovin/olly/jf/readme.md index c40a8dfd5e..3152fc17ca 100644 --- a/keyboards/mechlovin/olly/jf/readme.md +++ b/keyboards/mechlovin/olly/jf/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 4 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. * **Bootloader reset**: hold ESC (0,0) key while plugging in (jump to bootloader) * **Bootmagic reset**: hold Insert (1,14) key while pluging in (jump to bootloader and reset EEPROM) -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead \ No newline at end of file +* **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/mechlovin/olly/jf/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c index 6209811cf2..ef82c68df2 100644 --- a/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c +++ b/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/olly/jf/rev1/readme.md b/keyboards/mechlovin/olly/jf/rev1/readme.md index f6c114fee6..8f174f3dab 100644 --- a/keyboards/mechlovin/olly/jf/rev1/readme.md +++ b/keyboards/mechlovin/olly/jf/rev1/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: By keycode: Press the key mapped to `QK_BOOT` if it is available. By Bootloader: hold ESC key while plugging in (jump to bootloader) -By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) \ No newline at end of file +By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) diff --git a/keyboards/mechlovin/olly/jf/rev2/readme.md b/keyboards/mechlovin/olly/jf/rev2/readme.md index b165c35778..10b902ee80 100644 --- a/keyboards/mechlovin/olly/jf/rev2/readme.md +++ b/keyboards/mechlovin/olly/jf/rev2/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: By keycode: Press the key mapped to `QK_BOOT` if it is available. By Bootloader: hold ESC key while plugging in (jump to bootloader) -By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) \ No newline at end of file +By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) diff --git a/keyboards/mechlovin/olly/orion/readme.md b/keyboards/mechlovin/olly/orion/readme.md index 1f29edaf87..a295483547 100644 --- a/keyboards/mechlovin/olly/orion/readme.md +++ b/keyboards/mechlovin/olly/orion/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to **Reset Key:** 3 ways to put the IF87.5 into bootloader: - By keycode: Tap RESET keycode. - By bootmagic: hold ESC key while plugging in. -- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. \ No newline at end of file +- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. diff --git a/keyboards/mechlovin/zed1800/zed1800.c b/keyboards/mechlovin/zed1800/zed1800.c index 975c8914dd..75928c7a5a 100644 --- a/keyboards/mechlovin/zed1800/zed1800.c +++ b/keyboards/mechlovin/zed1800/zed1800.c @@ -42,4 +42,4 @@ bool led_update_kb(led_t led_state) { rgblight_set_layer_state(2, led_state.scroll_lock); } return true; -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c index f4c829bedd..ccf1b49841 100644 --- a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c +++ b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json index 56103e44db..69bdc40377 100644 --- a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json @@ -245,4 +245,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mechstudio/ud_40_ortho/readme.md b/keyboards/mechstudio/ud_40_ortho/readme.md index 211f174520..e8f33715c2 100644 --- a/keyboards/mechstudio/ud_40_ortho/readme.md +++ b/keyboards/mechstudio/ud_40_ortho/readme.md @@ -19,4 +19,4 @@ Make example for this keyboard (after setting up your build environment): make mechstudio/ud_40_ortho:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/mechwild/bbs/bbs.c b/keyboards/mechwild/bbs/bbs.c index 341103c1ab..f427d60a97 100644 --- a/keyboards/mechwild/bbs/bbs.c +++ b/keyboards/mechwild/bbs/bbs.c @@ -19,4 +19,4 @@ bool dip_switch_update_kb(uint8_t index, bool active) { void eeconfig_init_kb(void) { steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT eeconfig_init_user(); -} \ No newline at end of file +} diff --git a/keyboards/mechwild/clunker/readme.md b/keyboards/mechwild/clunker/readme.md index b567e74190..f299b478c2 100644 --- a/keyboards/mechwild/clunker/readme.md +++ b/keyboards/mechwild/clunker/readme.md @@ -22,4 +22,4 @@ 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 top 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechwild/mercutio/readme.md b/keyboards/mechwild/mercutio/readme.md index a83942442c..0ab08b2b07 100644 --- a/keyboards/mechwild/mercutio/readme.md +++ b/keyboards/mechwild/mercutio/readme.md @@ -21,4 +21,4 @@ By default, Mercutio firmware has bootmagic enabled (lite). This means that inst -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). \ No newline at end of file +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/mechwild/mokulua/readme.md b/keyboards/mechwild/mokulua/readme.md index 5a6b69e66e..4d21e620fa 100644 --- a/keyboards/mechwild/mokulua/readme.md +++ b/keyboards/mechwild/mokulua/readme.md @@ -22,4 +22,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechwild/puckbuddy/readme.md b/keyboards/mechwild/puckbuddy/readme.md index 3bf6647932..b91b5a3e36 100644 --- a/keyboards/mechwild/puckbuddy/readme.md +++ b/keyboards/mechwild/puckbuddy/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press and hold the boot0 button on the blackpill, tap and release the nrst button on the blackpill, then release the boot0 button. * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. By default this is the top right key on layer 1. -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). \ No newline at end of file +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/mechwild/waka60/f401/mcuconf.h b/keyboards/mechwild/waka60/f401/mcuconf.h index 95339690cf..f903d8880f 100644 --- a/keyboards/mechwild/waka60/f401/mcuconf.h +++ b/keyboards/mechwild/waka60/f401/mcuconf.h @@ -24,4 +24,4 @@ #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE #undef STM32_GPT_USE_TIM4 -#define STM32_GPT_USE_TIM4 TRUE \ No newline at end of file +#define STM32_GPT_USE_TIM4 TRUE diff --git a/keyboards/meetlab/kafka60/readme.md b/keyboards/meetlab/kafka60/readme.md index ffc2bf93f8..e914fd0003 100644 --- a/keyboards/meetlab/kafka60/readme.md +++ b/keyboards/meetlab/kafka60/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kafka68/keyboard.json b/keyboards/meetlab/kafka68/keyboard.json index 418749ed43..deba6e30b5 100644 --- a/keyboards/meetlab/kafka68/keyboard.json +++ b/keyboards/meetlab/kafka68/keyboard.json @@ -98,4 +98,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/kafka68/readme.md b/keyboards/meetlab/kafka68/readme.md index ac8742a101..dcf1e6f8a4 100644 --- a/keyboards/meetlab/kafka68/readme.md +++ b/keyboards/meetlab/kafka68/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kafkasplit/keyboard.json b/keyboards/meetlab/kafkasplit/keyboard.json index 77e5ec3e13..a731474905 100644 --- a/keyboards/meetlab/kafkasplit/keyboard.json +++ b/keyboards/meetlab/kafkasplit/keyboard.json @@ -201,4 +201,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/kafkasplit/readme.md b/keyboards/meetlab/kafkasplit/readme.md index 7b332d784a..53181e9aa7 100644 --- a/keyboards/meetlab/kafkasplit/readme.md +++ b/keyboards/meetlab/kafkasplit/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kalice/config.h b/keyboards/meetlab/kalice/config.h index 052bfa4bdf..eec56fd2c3 100644 --- a/keyboards/meetlab/kalice/config.h +++ b/keyboards/meetlab/kalice/config.h @@ -20,4 +20,4 @@ #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 -#define WS2812_PWM_DMA_CHANNEL 5 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 5 diff --git a/keyboards/meetlab/kalice/keyboard.json b/keyboards/meetlab/kalice/keyboard.json index eb91d64466..cf5bb32c71 100644 --- a/keyboards/meetlab/kalice/keyboard.json +++ b/keyboards/meetlab/kalice/keyboard.json @@ -117,4 +117,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/kalice/keymaps/default/keymap.c b/keyboards/meetlab/kalice/keymaps/default/keymap.c index 071941063e..46c78d3fde 100644 --- a/keyboards/meetlab/kalice/keymaps/default/keymap.c +++ b/keyboards/meetlab/kalice/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/meetlab/kalice/readme.md b/keyboards/meetlab/kalice/readme.md index efa97f2d5e..ab3b9ea473 100644 --- a/keyboards/meetlab/kalice/readme.md +++ b/keyboards/meetlab/kalice/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/rena/keyboard.json b/keyboards/meetlab/rena/keyboard.json index 8787fb0ee8..b333170635 100644 --- a/keyboards/meetlab/rena/keyboard.json +++ b/keyboards/meetlab/rena/keyboard.json @@ -113,4 +113,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/rena/matrix_diagram.md b/keyboards/meetlab/rena/matrix_diagram.md index c671421bff..ced29dc3c8 100644 --- a/keyboards/meetlab/rena/matrix_diagram.md +++ b/keyboards/meetlab/rena/matrix_diagram.md @@ -14,4 +14,4 @@ │41 │42 │┌───────────────────────┐│4A │4C │ └────┴─────┘│46 │└─────┴────┘ └───────────────────────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/meetlab/rena/readme.md b/keyboards/meetlab/rena/readme.md index 3941525d74..6a62bb3448 100644 --- a/keyboards/meetlab/rena/readme.md +++ b/keyboards/meetlab/rena/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/melgeek/mach80/rev1/keyboard.json b/keyboards/melgeek/mach80/rev1/keyboard.json index 78a8dbf0f6..7faa507606 100644 --- a/keyboards/melgeek/mach80/rev1/keyboard.json +++ b/keyboards/melgeek/mach80/rev1/keyboard.json @@ -13,5 +13,106 @@ "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"], "rows": ["F0", "F1", "F4", "F5", "F6", "E6"] }, - "diode_direction": "ROW2COL" + "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4}, + {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4}, + {"x": 156, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4}, + {"x": 180, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4}, + {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4}, + {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4}, + {"x": 144, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4}, + {"x": 168, "y": 36, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4}, + {"x": 24, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4}, + {"x": 156, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"x": 180, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4}, + {"x": 36, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4}, + {"x": 60, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4}, + {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4}, + {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4}, + {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4}, + {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4}, + {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4}, + {"matrix": [5, 15], "x": 144, "y": 60, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c index a4b49610cc..aad1b71833 100755 --- a/keyboards/melgeek/mach80/rev1/rev1.c +++ b/keyboards/melgeek/mach80/rev1/rev1.c @@ -118,31 +118,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB111 */ {0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB112 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */ - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */ - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */ - { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */ - { 84, 85, 86, NO_LED, NO_LED, 88, NO_LED, NO_LED, NO_LED, 90, 91, 92, 93, 94, 95, 96 } /* R5 */ - }, { - {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16 - {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19 - {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17 - {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15 - {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17 - {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, {144, 60} //13 - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */ diff --git a/keyboards/melgeek/mach80/rev2/keyboard.json b/keyboards/melgeek/mach80/rev2/keyboard.json index 78a8dbf0f6..039e1711fd 100644 --- a/keyboards/melgeek/mach80/rev2/keyboard.json +++ b/keyboards/melgeek/mach80/rev2/keyboard.json @@ -13,5 +13,103 @@ "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"], "rows": ["F0", "F1", "F4", "F5", "F6", "E6"] }, - "diode_direction": "ROW2COL" + "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4}, + {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4}, + {"x": 156, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4}, + {"x": 180, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4}, + {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4}, + {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4}, + {"x": 144, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4}, + {"x": 168, "y": 36, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4}, + {"x": 24, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4}, + {"x": 156, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"x": 180, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 12, "y": 60, "flags": 4}, + {"x": 24, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 36, "y": 60, "flags": 4}, + {"x": 48, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 60, "y": 60, "flags": 4}, + {"matrix": [5, 12], "x": 72, "y": 60, "flags": 4}, + {"matrix": [5, 13], "x": 84, "y": 60, "flags": 4}, + {"matrix": [5, 14], "x": 96, "y": 60, "flags": 4}, + {"matrix": [5, 15], "x": 108, "y": 60, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c index 1a759f38c6..63fbbbedfc 100755 --- a/keyboards/melgeek/mach80/rev2/rev2.c +++ b/keyboards/melgeek/mach80/rev2/rev2.c @@ -115,32 +115,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS24, SW9_CS23, SW9_CS22}, /* RGB54 */ {0, SW4_CS39, SW4_CS38, SW4_CS37}, /* RGB101 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */ - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */ - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */ - { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */ - { 84, NO_LED, 85, NO_LED, NO_LED, 87, NO_LED, NO_LED, NO_LED, 89, NO_LED, NO_LED, 90, 91, 92, 93 } /* R5 */ - }, { - {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16 - {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19 - {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17 - {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15 - {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17 - {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60} - //10 - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */ diff --git a/keyboards/melgeek/mj61/rev1/keyboard.json b/keyboards/melgeek/mj61/rev1/keyboard.json index b388908579..e8dedb8ea5 100644 --- a/keyboards/melgeek/mj61/rev1/keyboard.json +++ b/keyboards/melgeek/mj61/rev1/keyboard.json @@ -10,5 +10,72 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 12], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 176, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mj61/rev1/rev1.c b/keyboards/melgeek/mj61/rev1/rev1.c index 8e0be62127..d543ad60c0 100644 --- a/keyboards/melgeek/mj61/rev1/rev1.c +++ b/keyboards/melgeek/mj61/rev1/rev1.c @@ -82,28 +82,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB62 */ {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB63 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED,}, /* R2 */ - { 52, NO_LED, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED }, /* R3 */ - { 53, 54, NO_LED, 55, 61, 56, 62, NO_LED, NO_LED, 57, 58, 59, 60, NO_LED }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj61/rev2/keyboard.json b/keyboards/melgeek/mj61/rev2/keyboard.json index fcff9e10a5..da6c60d7ed 100644 --- a/keyboards/melgeek/mj61/rev2/keyboard.json +++ b/keyboards/melgeek/mj61/rev2/keyboard.json @@ -10,5 +10,80 @@ "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 224, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4}, + {"x": 240, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 144, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj61/rev2/rev2.c b/keyboards/melgeek/mj61/rev2/rev2.c index 7b27fa44c3..e936998ace 100644 --- a/keyboards/melgeek/mj61/rev2/rev2.c +++ b/keyboards/melgeek/mj61/rev2/rev2.c @@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS21, SW9_CS20, SW9_CS19}, /* RGB42 */ {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ - { 46, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, NO_LED }, /* R3 */ - { 61, 62, NO_LED, 63, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, NO_LED, 70 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj63/rev1/keyboard.json b/keyboards/melgeek/mj63/rev1/keyboard.json index b388908579..0d0759910e 100644 --- a/keyboards/melgeek/mj63/rev1/keyboard.json +++ b/keyboards/melgeek/mj63/rev1/keyboard.json @@ -10,5 +10,74 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 192, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 160, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c index d6caeac0c1..bdd7f34352 100644 --- a/keyboards/melgeek/mj63/rev1/rev1.c +++ b/keyboards/melgeek/mj63/rev1/rev1.c @@ -86,28 +86,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */ {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */ - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43, 42, 41 }, /* R3 */ - { 61, 60, 59, NO_LED, 64, 62, 63, NO_LED, NO_LED, 58, 57, 56, 55, 54 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj63/rev2/keyboard.json b/keyboards/melgeek/mj63/rev2/keyboard.json index fcff9e10a5..8140afe4b8 100644 --- a/keyboards/melgeek/mj63/rev2/keyboard.json +++ b/keyboards/melgeek/mj63/rev2/keyboard.json @@ -10,5 +10,80 @@ "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 224, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c index 95f0b28f5d..20dfaaf684 100644 --- a/keyboards/melgeek/mj63/rev2/rev2.c +++ b/keyboards/melgeek/mj63/rev2/rev2.c @@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */ {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ - { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57, 58, 59 }, /* R3 */ - { 60, 61, 62, NO_LED, NO_LED, 64, NO_LED, NO_LED, NO_LED, 66, 67, 68, 69, 70 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj64/rev1/keyboard.json b/keyboards/melgeek/mj64/rev1/keyboard.json index b388908579..bddfc0bef5 100644 --- a/keyboards/melgeek/mj64/rev1/keyboard.json +++ b/keyboards/melgeek/mj64/rev1/keyboard.json @@ -10,5 +10,73 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 144, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c index ea3376a8c7..d5859cf5e4 100644 --- a/keyboards/melgeek/mj64/rev1/rev1.c +++ b/keyboards/melgeek/mj64/rev1/rev1.c @@ -84,27 +84,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS27, SW9_CS26, SW9_CS25}, /* RGB63 */ {0, SW1_CS30, SW1_CS29, SW1_CS28}, /* RGB64 */ }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, - { 62, 61, 60, NO_LED, NO_LED, 63, NO_LED, NO_LED, NO_LED, 59, 58, 57, 56, 55 } - }, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, - { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 208, 16 }, - { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, - { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, - { 0, 64 }, { 16, 64 }, { 32, 64 }, { 48, 64 }, { 64, 64 }, { 96, 64 }, { 112, 64 }, { 128, 64 }, { 144, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - #endif diff --git a/keyboards/melgeek/mj64/rev2/keyboard.json b/keyboards/melgeek/mj64/rev2/keyboard.json index b388908579..0a48604710 100644 --- a/keyboards/melgeek/mj64/rev2/keyboard.json +++ b/keyboards/melgeek/mj64/rev2/keyboard.json @@ -10,5 +10,75 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 160, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c index 17947282ce..0a236374c7 100644 --- a/keyboards/melgeek/mj64/rev2/rev2.c +++ b/keyboards/melgeek/mj64/rev2/rev2.c @@ -86,28 +86,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */ {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */ - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */ - { 62, 61, 60, NO_LED, 64, 63, 65, NO_LED, NO_LED, 59, 58, 57, 56, 55 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj64/rev3/keyboard.json b/keyboards/melgeek/mj64/rev3/keyboard.json index fcff9e10a5..fdc0371c25 100644 --- a/keyboards/melgeek/mj64/rev3/keyboard.json +++ b/keyboards/melgeek/mj64/rev3/keyboard.json @@ -10,5 +10,81 @@ "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 224, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 240, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c index 8555082e7d..9bd58016b3 100644 --- a/keyboards/melgeek/mj64/rev3/rev3.c +++ b/keyboards/melgeek/mj64/rev3/rev3.c @@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */ {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ - { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 }, /* R3 */ - { 61, 62, 63, NO_LED, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, 70, 71 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj65/rev3/keyboard.json b/keyboards/melgeek/mj65/rev3/keyboard.json index a4513b45e7..446e440d33 100644 --- a/keyboards/melgeek/mj65/rev3/keyboard.json +++ b/keyboards/melgeek/mj65/rev3/keyboard.json @@ -61,6 +61,84 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 255, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 240, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 255, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 144, "y": 32, "flags": 4}, + {"x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/mj65/rev3/rev3.c b/keyboards/melgeek/mj65/rev3/rev3.c index 0a020fad74..a6ef6359c0 100644 --- a/keyboards/melgeek/mj65/rev3/rev3.c +++ b/keyboards/melgeek/mj65/rev3/rev3.c @@ -96,28 +96,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW3_CS33, SW3_CS32, SW3_CS31}, /* RGB75 */ {0, SW4_CS33, SW4_CS32, SW4_CS31}, /* RGB76 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }, /* R0 */ - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, /* R1 */ - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, NO_LED, 47 }, /* R2 */ - { 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, 63 }, /* R3 */ - { 64, 65, 66, NO_LED, NO_LED, 68, NO_LED, NO_LED, NO_LED, 70, 71, 72, 73, 74, 75 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, {255, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - -#endif +#endif diff --git a/keyboards/melgeek/mojo68/rev1/keyboard.json b/keyboards/melgeek/mojo68/rev1/keyboard.json index 88f17665b4..db868c485a 100755 --- a/keyboards/melgeek/mojo68/rev1/keyboard.json +++ b/keyboards/melgeek/mojo68/rev1/keyboard.json @@ -56,6 +56,76 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 144, "y": 64, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c index af17d96c6d..d30a5817a8 100755 --- a/keyboards/melgeek/mojo68/rev1/rev1.c +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -89,29 +89,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB68 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14*/ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, /* R2 */ - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57 }, /* R3 */ - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB124 */ {0, SW2_CS6, SW2_CS5, SW2_CS4}, /* RGB125 */ diff --git a/keyboards/melgeek/mojo75/rev1/keyboard.json b/keyboards/melgeek/mojo75/rev1/keyboard.json index 0b0a722c90..339609c8f0 100644 --- a/keyboards/melgeek/mojo75/rev1/keyboard.json +++ b/keyboards/melgeek/mojo75/rev1/keyboard.json @@ -61,6 +61,100 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4}, + {"x": 240, "y": 16, "flags": 4}, + {"matrix": [1, 15], "x": 255, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 15], "x": 240, "y": 48, "flags": 4}, + {"x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 16, "y": 64, "flags": 4}, + {"x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 240, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 80, "flags": 4}, + {"matrix": [5, 1], "x": 16, "y": 80, "flags": 4}, + {"matrix": [5, 2], "x": 32, "y": 80, "flags": 4}, + {"x": 48, "y": 80, "flags": 4}, + {"matrix": [5, 5], "x": 64, "y": 80, "flags": 4}, + {"x": 80, "y": 80, "flags": 4}, + {"matrix": [5, 9], "x": 96, "y": 80, "flags": 4}, + {"matrix": [5, 10], "x": 112, "y": 80, "flags": 4}, + {"matrix": [5, 12], "x": 128, "y": 80, "flags": 4}, + {"matrix": [5, 13], "x": 144, "y": 80, "flags": 4}, + {"matrix": [5, 14], "x": 160, "y": 80, "flags": 4}, + {"matrix": [5, 15], "x": 176, "y": 80, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c index 60bb6eb850..93f8345604 100644 --- a/keyboards/melgeek/mojo75/rev1/rev1.c +++ b/keyboards/melgeek/mojo75/rev1/rev1.c @@ -112,31 +112,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB92 */ {0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB90 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, NO_LED, 32 }, /* R1 */ - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED, 47 }, /* R2 */ - { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, NO_LED, 61, NO_LED, 63 }, /* R3 */ - { 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, NO_LED, 77, NO_LED, 78, 79 }, /* R4 */ - { 80, 81, 82, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 86, 87, NO_LED, 88, 89, 90, 91 }, /* R5 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, {240, 64}, - {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, {128, 80}, {144, 80}, {160, 80}, {176, 80}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/tegic/rev1/keyboard.json b/keyboards/melgeek/tegic/rev1/keyboard.json index 5a1ca4f350..532792d27e 100644 --- a/keyboards/melgeek/tegic/rev1/keyboard.json +++ b/keyboards/melgeek/tegic/rev1/keyboard.json @@ -67,6 +67,99 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4}, + {"x": 156, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4}, + {"x": 180, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4}, + {"x": 144, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4}, + {"x": 168, "y": 36, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4}, + {"x": 24, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4}, + {"x": 156, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"x": 180, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 192, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4}, + {"x": 36, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4}, + {"x": 60, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4}, + {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4}, + {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4}, + {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4}, + {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4}, + {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/tegic/rev1/rev1.c b/keyboards/melgeek/tegic/rev1/rev1.c index b087264919..3b4e335c05 100755 --- a/keyboards/melgeek/tegic/rev1/rev1.c +++ b/keyboards/melgeek/tegic/rev1/rev1.c @@ -117,29 +117,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS36, SW9_CS35, SW9_CS34}, /* RGB143 */ {0, SW1_CS39, SW1_CS38, SW1_CS37}, /* RGB149 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31 }, /* R1 */ - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, /* R2 */ - { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, NO_LED, NO_LED }, /* R3 */ - { 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, NO_LED, 78, NO_LED }, /* R4 */ - { 79, 80, 81, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 85, 86, 87, 88, 89, 90 }, /* R5 */ - }, { - {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, //15 - {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, //17 - {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, //15 - {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15 - {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17 - {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, //12 - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; #endif diff --git a/keyboards/melgeek/z70ultra/rev1/keyboard.json b/keyboards/melgeek/z70ultra/rev1/keyboard.json index 5a8868265b..145f5dffdf 100644 --- a/keyboards/melgeek/z70ultra/rev1/keyboard.json +++ b/keyboards/melgeek/z70ultra/rev1/keyboard.json @@ -61,6 +61,77 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 32, "flags": 4}, + {"matrix": [5, 7], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 13], "x": 16, "y": 48, "flags": 4}, + {"matrix": [5, 9], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 11], "x": 16, "y": 64, "flags": 4}, + {"matrix": [3, 12], "x": 32, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 48, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 0, "y": 80, "flags": 4}, + {"matrix": [4, 5], "x": 16, "y": 80, "flags": 4}, + {"matrix": [4, 6], "x": 32, "y": 80, "flags": 4}, + {"matrix": [4, 9], "x": 48, "y": 80, "flags": 4}, + {"matrix": [4, 10], "x": 64, "y": 80, "flags": 4}, + {"matrix": [5, 11], "x": 80, "y": 80, "flags": 4}, + {"matrix": [5, 12], "x": 96, "y": 80, "flags": 4}, + {"matrix": [5, 13], "x": 112, "y": 80, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/z70ultra/rev1/rev1.c b/keyboards/melgeek/z70ultra/rev1/rev1.c index 1cb46df643..7eaf839763 100644 --- a/keyboards/melgeek/z70ultra/rev1/rev1.c +++ b/keyboards/melgeek/z70ultra/rev1/rev1.c @@ -91,31 +91,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW4_CS37, SW4_CS39, SW4_CS38}, /* RGB22 */ {0, SW9_CS37, SW9_CS39, SW9_CS38}, /* RGB27 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, }, /* R0 */ - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, }, /* R2 */ - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, }, /* R3 */ - { 58, 59, 60, NO_LED, 61, 62, 63, NO_LED, NO_LED, 64, 65, NO_LED, NO_LED, NO_LED, }, /* R4 */ - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 14, 29, 56, 43, 57, 66, 67, 68, }, /* R5 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, - {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - } -}; const is31fl3741_led_t g_is31_indicator_leds[6] = { {0, SW1_CS5, SW1_CS3, SW1_CS4}, /* RGB71 */ diff --git a/keyboards/merge/iso_macro/readme.md b/keyboards/merge/iso_macro/readme.md index 654ede4fd5..113e8102ab 100644 --- a/keyboards/merge/iso_macro/readme.md +++ b/keyboards/merge/iso_macro/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make merge/isomacro:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/merge/uc1/readme.md b/keyboards/merge/uc1/readme.md index 730b97516f..43cf4e6fd0 100644 --- a/keyboards/merge/uc1/readme.md +++ b/keyboards/merge/uc1/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make merge/uc1:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/merge/um70/config.h b/keyboards/merge/um70/config.h index 5f999594cf..d8e896c14b 100644 --- a/keyboards/merge/um70/config.h +++ b/keyboards/merge/um70/config.h @@ -19,7 +19,7 @@ #define SPLIT_USB_DETECT #define SPLIT_MODS_ENABLE -#define B6_AUDIO +#define AUDIO_PIN B6 #ifdef AUDIO_ENABLE #define STARTUP_SONG SONG(STARTUP_SOUND) diff --git a/keyboards/merge/um70/keyboard.json b/keyboards/merge/um70/keyboard.json index 7ebb61f7fe..0499ef5060 100644 --- a/keyboards/merge/um70/keyboard.json +++ b/keyboards/merge/um70/keyboard.json @@ -38,6 +38,91 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 13, "flags": 2}, + {"x": 224, "y": 26, "flags": 2}, + {"x": 148, "y": 39, "flags": 2}, + {"x": 185, "y": 52, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"matrix": [0, 0], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 32, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 192, "y": 16, "flags": 4}, + {"matrix": [4, 5], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 32, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 192, "y": 32, "flags": 4}, + {"matrix": [4, 6], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 32, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 192, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 64, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 128, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 160, "y": 64, "flags": 1}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 13, "flags": 2}, + {"x": 224, "y": 26, "flags": 2}, + {"x": 148, "y": 39, "flags": 2}, + {"x": 185, "y": 52, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 32, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 64, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 96, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 128, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 192, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 224, "y": 0, "flags": 1}, + {"matrix": [6, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 32, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 64, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 96, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 128, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 6], "x": 192, "y": 16, "flags": 4}, + {"matrix": [6, 7], "x": 223, "y": 16, "flags": 1}, + {"matrix": [8, 7], "x": 224, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 32, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 64, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 96, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 128, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 6], "x": 192, "y": 32, "flags": 1}, + {"matrix": [9, 7], "x": 223, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 96, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 128, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 160, "y": 48, "flags": 1}, + {"matrix": [8, 6], "x": 192, "y": 48, "flags": 4}, + {"matrix": [9, 0], "x": 0, "y": 46, "flags": 1}, + {"matrix": [9, 1], "x": 32, "y": 46, "flags": 1}, + {"matrix": [9, 2], "x": 64, "y": 64, "flags": 1}, + {"matrix": [9, 3], "x": 96, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 160, "y": 64, "flags": 4} + ], "split_count": [39, 44] }, "rgblight": { diff --git a/keyboards/merge/um70/keymaps/default/rules.mk b/keyboards/merge/um70/keymaps/default/rules.mk index 1888ce3a12..7e2126efab 100644 --- a/keyboards/merge/um70/keymaps/default/rules.mk +++ b/keyboards/merge/um70/keymaps/default/rules.mk @@ -1,2 +1,2 @@ WPM_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/merge/um70/readme.md b/keyboards/merge/um70/readme.md index 0c297a6402..c50a42c636 100644 --- a/keyboards/merge/um70/readme.md +++ b/keyboards/merge/um70/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make merge/um70:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/merge/um70/um70.c b/keyboards/merge/um70/um70.c deleted file mode 100644 index b63fcdbedd..0000000000 --- a/keyboards/merge/um70/um70.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright 2021 duoshock - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -/* - Underglow Underglow 13,14 = split bksp, 14 = 2u bksp - 07 08 09 10 11 12 13 01 01 07 08 09 10 11 12 13 14 - 14 15 16 17 18 19 02 02 15 16 17 18 19 20 21 22 23 -20 21 22 23 24 25 26 03 03 24 25 26 27 28 29 30 31 -27 28 29 30 31 32 33 04 04 32 33 34 35 36 37 38 -34 35 36 37 38 39 05 05 39 40 41 42 43 44 - 06 06 -*/ - -#define XX NO_LED - -led_config_t g_led_config = { { - { 6, 7, 8, 9, 10, 11, 12, XX }, - { 13, 14, 15, 16, 17, 18, XX, XX }, - { 20, 21, 22, 23, 24, 25, XX, XX }, - { 27, 28, 29, 30, 31, 32, XX, XX }, - { 34, 35, 36, 37, 38, 19, 26, 33 }, - - { 45, 46, 47, 48, 49, 50, 51, 52 }, - { 53, 54, 55, 56, 57, 58, 59, 60 }, - { 62, 63, 64, 65, 66, 67, 68, XX }, - { 70, 71, 72, 73, 74, 75, 76, 61 }, - { 77, 78, 79, 80, 81, 82, XX, 69 }, -}, { - { 224, 0 }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, { 224, 64 }, - - { 32, 0 }, { 64, 0 }, { 96, 0 }, { 128, 0 }, { 160, 0 }, { 192, 0 }, { 224, 0 }, - { 32, 16 }, { 64, 16 }, { 96, 16 }, { 128, 16 }, { 160, 16 }, { 192, 16 }, - { 0, 32 }, { 32, 32 }, { 64, 32 }, { 96, 32 }, { 128, 32 }, { 160, 32 }, { 192, 32 }, - { 0, 48 }, { 32, 48 }, { 64, 48 }, { 96, 48 }, { 128, 48 }, { 160, 48 }, { 192, 48 }, - { 0, 64 }, { 32, 64 }, { 64, 64 }, { 96, 64 }, { 128, 64 }, { 160, 64 }, - - { 224, 0 }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, { 224, 64 }, - - { 0, 0 }, { 32, 0 }, { 64, 0 }, { 96, 0 }, { 128, 0 }, { 160, 0 }, { 192, 0 }, { 224, 0 }, - { 0, 16 }, { 32, 16 }, { 64, 16 }, { 96, 16 }, { 128, 16 }, { 160, 16 }, { 192, 16 }, { 223, 16 }, { 224, 16 }, - { 0, 32 }, { 32, 32 }, { 64, 32 }, { 96, 32 }, { 128, 32 }, { 160, 32 }, { 192, 32 }, { 223, 32 }, - { 0, 48 }, { 32, 48 }, { 64, 48 }, { 96, 48 }, { 128, 48 }, { 160, 48 }, { 192, 48 }, - { 0, 46 }, { 32, 46 }, { 64, 64 }, { 96, 64 }, { 128, 64 }, { 160, 64 } - -}, { - 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, - 4, 1, 4, 4, 4, 4, 4, - 4, 1, 4, 4, 4, 4, 4, - 4, 1, 1, 1, 1, 1, - - 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 1, 4, - 1, 1, 1, 4, 4, 4 -} }; - -#endif \ No newline at end of file diff --git a/keyboards/merge/um80/keymaps/default/rules.mk b/keyboards/merge/um80/keymaps/default/rules.mk index 1888ce3a12..7e2126efab 100644 --- a/keyboards/merge/um80/keymaps/default/rules.mk +++ b/keyboards/merge/um80/keymaps/default/rules.mk @@ -1,2 +1,2 @@ WPM_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/merge/um80/readme.md b/keyboards/merge/um80/readme.md index ad9caf244f..b5bb9fca92 100644 --- a/keyboards/merge/um80/readme.md +++ b/keyboards/merge/um80/readme.md @@ -19,4 +19,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the Esc key on the left side or '7' key on the right side 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. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/merge/um80/um80.c b/keyboards/merge/um80/um80.c index d13f34562c..b22fc752b5 100644 --- a/keyboards/merge/um80/um80.c +++ b/keyboards/merge/um80/um80.c @@ -120,4 +120,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/merge/uma/keymaps/default/rules.mk b/keyboards/merge/uma/keymaps/default/rules.mk index 90fc9b184b..979fc59cc7 100644 --- a/keyboards/merge/uma/keymaps/default/rules.mk +++ b/keyboards/merge/uma/keymaps/default/rules.mk @@ -1 +1 @@ -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/merge/uma/uma.c b/keyboards/merge/uma/uma.c index 35c91b8a6e..250c180e78 100644 --- a/keyboards/merge/uma/uma.c +++ b/keyboards/merge/uma/uma.c @@ -106,4 +106,4 @@ bool oled_task_kb(void) { } return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c b/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c index e2c4d225f3..9654e8c757 100644 --- a/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______, _______,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c b/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c index 88779a9238..aa24cb7d9f 100644 --- a/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______, _______,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c b/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c index 48c145fad0..e43aa97843 100644 --- a/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c b/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c index 8a6b872066..d73de9f63b 100644 --- a/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/default/keymap.c b/keyboards/metamechs/timberwolf/keymaps/default/keymap.c index 5ef61f0200..d3447ec200 100644 --- a/keyboards/metamechs/timberwolf/keymaps/default/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/default/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c b/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c index a91b88123d..b3212d7e61 100644 --- a/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c b/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c index 4cb95c53ce..f2a1a64c44 100644 --- a/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/mexsistor/ludmila/matrix.c b/keyboards/mexsistor/ludmila/matrix.c index fd197f366d..be16612c1e 100644 --- a/keyboards/mexsistor/ludmila/matrix.c +++ b/keyboards/mexsistor/ludmila/matrix.c @@ -14,28 +14,22 @@ 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 "wait.h" -#include "util.h" #include "matrix.h" // Encoder things #define ENC_SW F7 -static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row); static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -/* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - - static void select_row(uint8_t row) { gpio_set_pin_output(row_pins[row]); gpio_write_pin_low(row_pins[row]); } -static void unselect_row(uint8_t row) { gpio_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < MATRIX_ROWS; x++) { @@ -57,9 +51,9 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Clear data in matrix row current_matrix[current_row] = 0; - // Select row and wait for row selecton to stabilize + // Select row and wait for row selection to stabilize select_row(current_row); - wait_us(30); + matrix_io_delay(); // For each col... for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { @@ -76,27 +70,6 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) return (last_row_value != current_matrix[current_row]); } - -void matrix_init_custom(void) { - // initialize key pins - gpio_set_pin_input(ENC_SW); - init_pins(); -} - -bool matrix_scan_custom(void) { - bool changed = false; - - // Set row, read cols - for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(raw_matrix, current_row); - } - - // Read encoder switches, already debounced - changed |= read_encoder_switches(matrix, 2); - - return changed; -} - static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) { // Store last value of row prior to reading matrix_row_t last_row_value = current_matrix[current_row]; @@ -104,15 +77,28 @@ static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current // Clear data in matrix row current_matrix[current_row] = 0; - // Debounce the encoder buttons using a shift register - static uint8_t btn_1_array; - bool btn_1_pressed = 0; - btn_1_array <<= 1; - btn_1_array |= gpio_read_pin(ENC_SW); - (btn_1_array == 0b11111111) ? (btn_1_pressed = 1) : (btn_1_pressed = 0); - // Populate the matrix row with the state of the encoder - current_matrix[current_row] |= btn_1_pressed ? (1 << 0) : 0; + current_matrix[current_row] |= gpio_read_pin(ENC_SW) ? (1 << 0) : 0; return (last_row_value != current_matrix[current_row]); } + +void matrix_init_custom(void) { + // initialize key pins + gpio_set_pin_input(ENC_SW); + init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS - 1; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); + } + + // Read encoder switches, already debounced + changed |= read_encoder_switches(current_matrix, 2); + + return changed; +} diff --git a/keyboards/miiiw/blackio83/rev_0100/rev_0100.h b/keyboards/miiiw/blackio83/rev_0100/rev_0100.h index ea371443e3..6b636a5ef8 100644 --- a/keyboards/miiiw/blackio83/rev_0100/rev_0100.h +++ b/keyboards/miiiw/blackio83/rev_0100/rev_0100.h @@ -27,4 +27,4 @@ enum custom_keycodes { DEV_RF24, ALT_TAB, RGB_RST, -}; \ No newline at end of file +}; diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c index 534ef6cdc6..ae275479ba 100644 --- a/keyboards/miller/gm862/gm862.c +++ b/keyboards/miller/gm862/gm862.c @@ -64,26 +64,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW11_CS13, SW10_CS13, SW12_CS13}, {0, SW8_CS14, SW7_CS14, SW9_CS14}, }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED,NO_LED, 52 }, - { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, NO_LED,59, 60 } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, - { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 204, 32 }, - { 10, 48 }, { 20, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 }, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 -} }; #endif bool rgb_matrix_indicators_kb(void) { diff --git a/keyboards/miller/gm862/keyboard.json b/keyboards/miller/gm862/keyboard.json index db08a580a9..15c6eb46ae 100644 --- a/keyboards/miller/gm862/keyboard.json +++ b/keyboards/miller/gm862/keyboard.json @@ -39,6 +39,69 @@ "solid_reactive": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/miller/gm862/keymaps/default/keymap.c b/keyboards/miller/gm862/keymaps/default/keymap.c index f6c2b264f7..1c54263a1c 100644 --- a/keyboards/miller/gm862/keymaps/default/keymap.c +++ b/keyboards/miller/gm862/keymaps/default/keymap.c @@ -14,4 +14,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - }; \ No newline at end of file + }; diff --git a/keyboards/millet/doksin/keyboard.json b/keyboards/millet/doksin/keyboard.json index a472eebc79..3d505e8ba2 100644 --- a/keyboards/millet/doksin/keyboard.json +++ b/keyboards/millet/doksin/keyboard.json @@ -27,4 +27,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mini_elixivy/keymaps/ansi/readme.md b/keyboards/mini_elixivy/keymaps/ansi/readme.md index 021d2891b3..15ae56d82e 100644 --- a/keyboards/mini_elixivy/keymaps/ansi/readme.md +++ b/keyboards/mini_elixivy/keymaps/ansi/readme.md @@ -1,2 +1,2 @@ # The ANSI keymap for mini_elixivy -This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file +This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. diff --git a/keyboards/mini_elixivy/keymaps/default/readme.md b/keyboards/mini_elixivy/keymaps/default/readme.md index 717b2c30ae..288de94976 100644 --- a/keyboards/mini_elixivy/keymaps/default/readme.md +++ b/keyboards/mini_elixivy/keymaps/default/readme.md @@ -1,2 +1,2 @@ # The default keymap for mini_elixivy -This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file +This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. diff --git a/keyboards/mini_elixivy/keymaps/iso/readme.md b/keyboards/mini_elixivy/keymaps/iso/readme.md index d67bd32328..22805e5e7d 100644 --- a/keyboards/mini_elixivy/keymaps/iso/readme.md +++ b/keyboards/mini_elixivy/keymaps/iso/readme.md @@ -1,2 +1,2 @@ # The ISO keymap for mini_elixivy -This is an ISO keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file +This is an ISO keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. diff --git a/keyboards/mini_elixivy/readme.md b/keyboards/mini_elixivy/readme.md index 6047a17346..5a3fc0fa04 100644 --- a/keyboards/mini_elixivy/readme.md +++ b/keyboards/mini_elixivy/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader: -* **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed) \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed) diff --git a/keyboards/mini_ten_key_plus/keymaps/default/readme.md b/keyboards/mini_ten_key_plus/keymaps/default/readme.md index a8f697f2cb..9e2dcb1e5d 100644 --- a/keyboards/mini_ten_key_plus/keymaps/default/readme.md +++ b/keyboards/mini_ten_key_plus/keymaps/default/readme.md @@ -1,2 +1,2 @@ # The default 1u keymap for mini_ten_key_plus -![mini_ten_key_plus](https://imgur.com/VuSTwfC.png) \ No newline at end of file +![mini_ten_key_plus](https://imgur.com/VuSTwfC.png) diff --git a/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md b/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md index 2cb470bef8..71535b59a8 100644 --- a/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md +++ b/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md @@ -1,2 +1,2 @@ # The standard numpad keymap for mini_ten_key_plus -![mini_ten_key_plus](https://imgur.com/x2BUc9J.png) \ No newline at end of file +![mini_ten_key_plus](https://imgur.com/x2BUc9J.png) diff --git a/keyboards/mini_ten_key_plus/mini_ten_key_plus.c b/keyboards/mini_ten_key_plus/mini_ten_key_plus.c index 6dc60c9de1..8393ebe49c 100644 --- a/keyboards/mini_ten_key_plus/mini_ten_key_plus.c +++ b/keyboards/mini_ten_key_plus/mini_ten_key_plus.c @@ -12,4 +12,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { tap_code16(KC_LEFT_PAREN); } return true; -} \ No newline at end of file +} diff --git a/keyboards/minimon/bartlesplit/matrix.c b/keyboards/minimon/bartlesplit/matrix.c index 4be8496dcf..df6a5a7b84 100644 --- a/keyboards/minimon/bartlesplit/matrix.c +++ b/keyboards/minimon/bartlesplit/matrix.c @@ -24,8 +24,6 @@ along with this program. If not, see . #include "matrix.h" #include "quantum.h" -#define ROW_SHIFTER ((uint16_t)1) - static const pin_t row_pins[] = MATRIX_ROW_PINS; static const pin_t col_pins[] = MATRIX_COL_PINS; @@ -74,7 +72,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // For each col... for (uint8_t col_index = 0; col_index < MATRIX_COLS / 2; col_index++) { - uint16_t column_index_bitmask = ROW_SHIFTER << ((col_index * 2) + 1); + uint16_t column_index_bitmask = MATRIX_ROW_SHIFTER << ((col_index * 2) + 1); // Check row pin state if (gpio_read_pin(col_pins[col_index*2])) { // Pin HI, clear col bit @@ -103,7 +101,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Store last value of row prior to reading matrix_row_t last_row_value = current_matrix[row_index]; - uint16_t column_index_bitmask = ROW_SHIFTER << (current_col * 2); + uint16_t column_index_bitmask = MATRIX_ROW_SHIFTER << (current_col * 2); // Check row pin state if (gpio_read_pin(row_pins[row_index])) { // Pin HI, clear col bit diff --git a/keyboards/miuni32/keyboard.json b/keyboards/miuni32/keyboard.json index 1ff7d1a39a..26c4c7dfff 100644 --- a/keyboards/miuni32/keyboard.json +++ b/keyboards/miuni32/keyboard.json @@ -3,8 +3,8 @@ "manufacturer": "Bigtuna.io", "maintainer": "qmk", "usb": { - "vid": "0xFEED", - "pid": "0x6060", + "vid": "0x41FA", + "pid": "0xAAEF", "device_version": "0.0.1" }, "rgblight": { @@ -80,8 +80,8 @@ {"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, "w": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2, "w": 2}, {"matrix": [2, 6], "x": 6, "y": 2}, {"matrix": [2, 7], "x": 7, "y": 2}, {"matrix": [2, 8], "x": 8, "y": 2}, diff --git a/keyboards/miuni32/keymaps/default/keymap.c b/keyboards/miuni32/keymaps/default/keymap.c index 878d095730..2bf2dab2b0 100644 --- a/keyboards/miuni32/keymaps/default/keymap.c +++ b/keyboards/miuni32/keymaps/default/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2025 BigTuna.io + * + * 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] = { diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md deleted file mode 100644 index 817bde28b3..0000000000 --- a/keyboards/mkbd65/README.md +++ /dev/null @@ -1,41 +0,0 @@ -![mkbd65](https://gitlab.com/mkbd65/qmk-firmware/-/raw/mkbd65/keyboards/mkbd65/mkbd65.png?inline=false) - -# mkbd65 - -A mobile keyboard addon for modern smartphones. - -- Keyboard Maintainer: [XenGi](https://xengi.de) -- Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb) -- Hardware Availability: - - -Flashing this keyboard with `en-us-intl` layout (after setting up your build environment): - -``` -qmk flash -kb mkbd65:rev1 -km en-us-intl -``` - -Available layouts: - - - en-us-intl (ansi) - - de (iso) - -You can find community provided layouts here: https://gitlab.com/mkbd65/community - -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). - ---- - -Copyright 2023 XenGi mkbd65@xengi.de @XenGi - -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 . diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h deleted file mode 100644 index 4b3907c132..0000000000 --- a/keyboards/mkbd65/config.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2023 XenGi -// SPDX-License-Identifier: GPL-2.0-or-later - -// optimize firmware -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE -#define LAYER_STATE_8BIT - -// disable features to save on code size -#define NO_ACTION_TAPPING -#define NO_ACTION_ONESHOT - diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md deleted file mode 100644 index f68aaf41fc..0000000000 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# The English US International keymap for mkbd65 rev0 by XenGi - -This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. - -It is based on the "English (intl., with AltGr dead keys)" layout. - -This is the key matrix (no label means the key from layer 0 will be used): - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod altgr -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c deleted file mode 100644 index b023feab91..0000000000 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -#include "quantum.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( /* Base layer */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT_ansi( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ) -}; diff --git a/keyboards/mkbd65/keymaps/de/README.md b/keyboards/mkbd65/keymaps/de/README.md deleted file mode 100644 index c37325f914..0000000000 --- a/keyboards/mkbd65/keymaps/de/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# The German keymap for mkbd65 rev1 by XenGi - -This is the german layout for the mkbd65 keyboard. You can use it as a reference for other ISO based layouts. - -This is the key matrix (no label means the key from layer 0 will be used): - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ z ║ u ║ i ║ o ║ p ║ ü ║ + ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ö ║ ä ║ # ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ y ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ - ║ ▲ ║ < ║Shft║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║Ctrl║ Fn ║Shft║AltG║ Space ║ ß ║ ´ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ° ║ ! ║ " ║ § ║ $ ║ % ║ & ║ / ║ ( ║ ) ║ = ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ Ü ║ * ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ Ö ║ Ä ║ ' ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ ; ║ : ║ _ ║ ║ > ║░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║░░░░║ ║ ║ ? ║ ` ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod altgr -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ ║ ║ { ║ [ ║ ] ║ } ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ @ ║ ║ € ║ ║ ║ ║ ║ ║ ║ ║ ║ ~ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ║ ║ | ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║░░░░║ ║ \ ║ ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ^ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ -║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/de/keymap.c b/keyboards/mkbd65/keymaps/de/keymap.c deleted file mode 100644 index 6ba90e876f..0000000000 --- a/keyboards/mkbd65/keymaps/de/keymap.c +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H -#include "keymap_german.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( /* Base layer */ - QK_GESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_BSPC, KC_BSPC, - DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, DE_PLUS, KC_ENT, - DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT, - DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_UP, DE_LABK, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, DE_SS, DE_ACUT, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, - _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ) -}; diff --git a/keyboards/mkbd65/keymaps/en_us_intl/README.md b/keyboards/mkbd65/keymaps/en_us_intl/README.md deleted file mode 100644 index f68aaf41fc..0000000000 --- a/keyboards/mkbd65/keymaps/en_us_intl/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# The English US International keymap for mkbd65 rev0 by XenGi - -This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. - -It is based on the "English (intl., with AltGr dead keys)" layout. - -This is the key matrix (no label means the key from layer 0 will be used): - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod altgr -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/en_us_intl/keymap.c b/keyboards/mkbd65/keymaps/en_us_intl/keymap.c deleted file mode 100644 index 96d7855ff8..0000000000 --- a/keyboards/mkbd65/keymaps/en_us_intl/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( /* Base layer */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, - 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT_all( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, - _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ) -}; diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md deleted file mode 100644 index 9a5f9b176f..0000000000 --- a/keyboards/mkbd65/keymaps/iso/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# The iso-like keymap for mkbd65 rev0 - -It's actually just ANSI but with an upright `Enter` key. - -``` -0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ \ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║AltG║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ | ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║░░░░║AltG║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod alt -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ¬ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║░░░░║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ -╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ -╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -``` - diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c deleted file mode 100644 index a7dd99463e..0000000000 --- a/keyboards/mkbd65/keymaps/iso/keymap.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include QMK_KEYBOARD_H - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( /* Base layer */ - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL - ), - - [1] = LAYOUT_iso( /* Function layer */ - QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_APP, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ - ), -}; diff --git a/keyboards/mkbd65/mkbd65.png b/keyboards/mkbd65/mkbd65.png deleted file mode 100644 index b873771c74..0000000000 Binary files a/keyboards/mkbd65/mkbd65.png and /dev/null differ diff --git a/keyboards/mkbd65/rev0/keyboard.json b/keyboards/mkbd65/rev0/keyboard.json deleted file mode 100644 index 35269aaa5c..0000000000 --- a/keyboards/mkbd65/rev0/keyboard.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "manufacturer": "XenGi", - "keyboard_name": "mkbd65", - "maintainer": "XenGi", - "bootloader": "atmel-dfu", - "bootloader_instructions": "Press the button marked RESET on the back of the PCB", - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, - "build": { - "lto": true - }, - "debounce": 5, - "diode_direction": "ROW2COL", - "encoder": { - "enabled": false - }, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": false, - "rgblight": false - }, - "matrix_pins": { - "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D5", "D3", "D2", "D1", "D0"] - }, - "processor": "atmega32u4", - "split": { - "enabled": false - }, - "tags": ["mobile", "65%"], - "url": "https://mkbd65.xengi.de", - "usb": { - "device_version": "0.0.1", - "pid": "0x4803", - "vid": "0x1209" - }, - "layouts": { - "LAYOUT_ansi": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, - {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, - {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, - {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, - {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, - {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, - {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, - {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, - {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, - {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, - {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, - {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, - {"label": "\\", "matrix": [1, 12], "x": 1, "y": 12}, - {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, - {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, - {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, - {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, - {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, - {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, - {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, - {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, - {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, - {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, - {"label": "Enter", "matrix": [2, 11], "x": 2, "y": 11, "w": 2}, - {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, - {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, - {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, - {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, - {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, - {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, - {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, - {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, - {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, - {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, - {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, - {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, - {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, - {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, - {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, - {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, - {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, - {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, - {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, - {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, - {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, - {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, - {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, - {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, - {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, - {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, - {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, - {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, - {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, - {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, - {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, - {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, - {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, - {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, - {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, - {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, - {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, - {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, - {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, - {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, - {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, - {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, - {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, - {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, - {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, - {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, - {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, - {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, - {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, - {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, - {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, - {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, - {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, - {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, - {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, - {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, - {"label": "\\", "matrix": [2, 11], "x": 2, "y": 11}, - {"label": "Enter", "matrix": [1, 12], "x": 1, "y": 12, "h": 2}, - {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, - {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, - {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, - {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, - {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, - {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, - {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, - {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, - {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, - {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, - {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, - {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, - {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, - {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, - {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, - {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, - {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, - {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, - {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, - {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, - {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, - {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, - {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} - ] - } - } -} \ No newline at end of file diff --git a/keyboards/mkbd65/rev0/mkbd65.c b/keyboards/mkbd65/rev0/mkbd65.c deleted file mode 100644 index 2cde260fa0..0000000000 --- a/keyboards/mkbd65/rev0/mkbd65.c +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "mkbd65.h" -#include "quantum.h" - diff --git a/keyboards/mkbd65/rev0/mkbd65.h b/keyboards/mkbd65/rev0/mkbd65.h deleted file mode 100644 index 798a87ce44..0000000000 --- a/keyboards/mkbd65/rev0/mkbd65.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#ifndef MKBD65_H -#define MKBD65_H - -/* LAYOUT_ansi - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤ - * │ │ │ │ │ 3.0U │ │ │ │ │ │ │ - * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘ - * This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ - K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ -) \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, KC_NO }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ - { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ -} - -/* LAYOUT_iso - * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══════╗ - * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ║ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ - * ╟───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───╢ - * ║ │ │ │ │ 3.0U │ │ │ │ │ │ ║ - * ╚═══╧═══╧═══╧═══╧═══════════╧═══╧═══╧═══╧═══╧═══╧═══╝ - */ -#define LAYOUT_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ - K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ -) \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, KC_NO }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ - { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ -} - -#endif diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk deleted file mode 100644 index de2da8afe1..0000000000 --- a/keyboards/mkbd65/rev0/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -F_CPU = 16000000 -ARCH = AVR8 -F_USB = $(F_CPU) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT diff --git a/keyboards/mkbd65/rev1/keyboard.json b/keyboards/mkbd65/rev1/keyboard.json deleted file mode 100644 index 2329e8bc52..0000000000 --- a/keyboards/mkbd65/rev1/keyboard.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "manufacturer": "XenGi", - "keyboard_name": "mkbd65", - "maintainer": "XenGi", - "bootloader": "atmel-dfu", - "diode_direction": "ROW2COL", - "debounce": 5, - "features": { - "bootmagic": true, - "command": false, - "console": false, - "extrakey": true, - "mousekey": true, - "nkro": true, - "rgb_matrix": false, - "rgblight": false - }, - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, - "matrix_pins": { - "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"], - "rows": ["B12", "B13", "B14", "B15", "A8"] - }, - "processor": "atmega32u4", - "url": "https://mkbd65.xengi.de", - "bootloader_instructions": "Press the button marked RESET on the back of the PCB", - "tags": ["mobile", "65%"], - "usb": { - "device_version": "1.0.0", - "pid": "0x4803", - "vid": "0x1209" - }, - "build": { - "lto": true - }, - "layouts": { - "LAYOUT_ansi": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, - { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, - { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, - { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, - { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, - { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, - { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, - { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, - { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, - { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, - { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, - { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, - { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, - - { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, - { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, - { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, - { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, - { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, - { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, - { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, - { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, - { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, - { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, - { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, - { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, - { "matrix": [1, 12], "x": 1, "y": 12, "label": "\\" }, - - { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, - { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, - { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, - { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, - { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, - { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, - { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, - { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, - { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, - { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, - { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, - { "matrix": [2, 11], "x": 2, "y": 11, "label": "Enter" }, - { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, - - { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, - { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, - { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, - { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, - { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, - { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, - { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, - { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, - { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, - { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, - { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, - { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "RShift" }, - { "matrix": [3, 12], "x": 3, "y": 11, "w": 2, "label": "RShift" }, - - { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, - { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, - { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, - { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, - { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, - { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, - { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, - { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, - { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, - { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, - { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, - { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, - { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } - ] - }, - "LAYOUT_iso": { - "layout": [ - { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, - { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, - { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, - { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, - { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, - { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, - { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, - { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, - { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, - { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, - { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, - { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, - { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, - - { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, - { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, - { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, - { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, - { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, - { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, - { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, - { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, - { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, - { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, - { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, - { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, - { "matrix": [1, 12], "x": 1, "y": 12, "label": "Enter" }, - - { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, - { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, - { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, - { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, - { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, - { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, - { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, - { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, - { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, - { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, - { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, - { "matrix": [2, 11], "x": 2, "y": 11, "label": "\\" }, - { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, - - { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, - { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, - { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, - { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, - { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, - { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, - { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, - { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, - { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, - { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, - { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, - { "matrix": [3, 11], "x": 3, "y": 11, "label": "RShift" }, - { "matrix": [3, 12], "x": 3, "y": 12, "label": "RShift" }, - - { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, - { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, - { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, - { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, - { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, - { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, - { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, - { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, - { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, - { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, - { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, - { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, - { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } - ] - } - } -} - diff --git a/keyboards/mkbd65/rev1/mkbd65.c b/keyboards/mkbd65/rev1/mkbd65.c deleted file mode 100644 index baca6508d4..0000000000 --- a/keyboards/mkbd65/rev1/mkbd65.c +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "mkbd65.h" diff --git a/keyboards/mkbd65/rev1/mkbd65.h b/keyboards/mkbd65/rev1/mkbd65.h deleted file mode 100644 index 759166bbcf..0000000000 --- a/keyboards/mkbd65/rev1/mkbd65.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2023 XenGi (@XenGi) -// SPDX-License-Identifier: GPL-2.0-or-later - -#ifndef MKBD65_H -#define MKBD65_H - -#include "quantum.h" - -/* LAYOUT - * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ - * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ - * ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝ - * This is a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 \ -) \ -{ \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 } \ -} - -#endif diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk deleted file mode 100644 index e5116166cc..0000000000 --- a/keyboards/mkbd65/rev1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -MCU = STM32F072 -BOOTLOADER = stm32-dfu diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk deleted file mode 100644 index 3287da9fbd..0000000000 --- a/keyboards/mkbd65/rules.mk +++ /dev/null @@ -1,19 +0,0 @@ -# AVR MCU Options -F_CPU = 16000000 -ARCH = AVR8 -F_USB = $(F_CPU) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - -# Feature Options -MAGIC_ENABLE = no -AUDIO_ENABLE = no -KEY_OVERRIDE_ENABLE = no -LEADER_ENABLE = no -MIDI_ENABLE = no -UNICODE_ENABLE = no -BLUETOOTH_ENABLE = no -MUSIC_ENABLE = no -SPACE_CADET_ENABLE = no -GRAVE_ESC_ENABLE = yes -AVR_USE_MINIMAL_PRINTF = yes - diff --git a/keyboards/ml/gas75/gas75.c b/keyboards/ml/gas75/gas75.c deleted file mode 100644 index 0744dd8092..0000000000 --- a/keyboards/ml/gas75/gas75.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2022 ML - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - //Key matrix (0 -> 2) - {224, 0}, {0 , 0}, {6 , 38}, -}, { - //Key matrix (0 -> 2) - 4, 1, 8, -} }; -#endif diff --git a/keyboards/ml/gas75/keyboard.json b/keyboards/ml/gas75/keyboard.json index 280735eb14..ac04365b6b 100644 --- a/keyboards/ml/gas75/keyboard.json +++ b/keyboards/ml/gas75/keyboard.json @@ -58,6 +58,11 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 1}, + {"x": 6, "y": 38, "flags": 8} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/ml/gas75/keymaps/default/keymap.c b/keyboards/ml/gas75/keymaps/default/keymap.c index 8e61e104ed..542e7732bb 100644 --- a/keyboards/ml/gas75/keymaps/default/keymap.c +++ b/keyboards/ml/gas75/keymaps/default/keymap.c @@ -31,22 +31,6 @@ enum layer_names { _FN, }; -enum user_rgb_mode { - RGB_MODE_ALL, - RGB_MODE_NONE, -}; - -typedef union { - uint32_t raw; - struct { - uint8_t rgb_mode :8; - }; -} user_config_t; - -user_config_t user_config; - -// enum layer_keycodes { }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -119,45 +103,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void keyboard_post_init_user(void) { - user_config.raw = eeconfig_read_user(); - switch (user_config.rgb_mode) { - case RGB_MODE_ALL: - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - break; - case RGB_MODE_NONE: - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - break; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_NONE; - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - user_config.rgb_mode = RGB_MODE_ALL; - } - break; - } - eeconfig_update_user(user_config.raw); - } - return false; - } - return true; -} - #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, diff --git a/keyboards/mode/m60h/config.h b/keyboards/mode/m60h/config.h index e51bff8ca5..e13ea3c33f 100644 --- a/keyboards/mode/m60h/config.h +++ b/keyboards/mode/m60h/config.h @@ -6,4 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mode/m60h/halconf.h b/keyboards/mode/m60h/halconf.h index 6c00f38084..612ce4fc4a 100644 --- a/keyboards/mode/m60h/halconf.h +++ b/keyboards/mode/m60h/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mode/m60h/keyboard.json b/keyboards/mode/m60h/keyboard.json index 39cbdb473f..94a42c152f 100644 --- a/keyboards/mode/m60h/keyboard.json +++ b/keyboards/mode/m60h/keyboard.json @@ -113,4 +113,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mode/m60h/mcuconf.h b/keyboards/mode/m60h/mcuconf.h index 0b044526b2..fe4c53e724 100644 --- a/keyboards/mode/m60h/mcuconf.h +++ b/keyboards/mode/m60h/mcuconf.h @@ -21,4 +21,4 @@ #define STM32_PWM_USE_TIM4 TRUE #undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 5 \ No newline at end of file +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/mode/m60h_f/config.h b/keyboards/mode/m60h_f/config.h index e51bff8ca5..e13ea3c33f 100644 --- a/keyboards/mode/m60h_f/config.h +++ b/keyboards/mode/m60h_f/config.h @@ -6,4 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mode/m60h_f/halconf.h b/keyboards/mode/m60h_f/halconf.h index 6c00f38084..612ce4fc4a 100644 --- a/keyboards/mode/m60h_f/halconf.h +++ b/keyboards/mode/m60h_f/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mode/m60h_f/keyboard.json b/keyboards/mode/m60h_f/keyboard.json index f04b599d84..a5d18025c8 100644 --- a/keyboards/mode/m60h_f/keyboard.json +++ b/keyboards/mode/m60h_f/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mode/m60h_f/mcuconf.h b/keyboards/mode/m60h_f/mcuconf.h index 0b044526b2..fe4c53e724 100644 --- a/keyboards/mode/m60h_f/mcuconf.h +++ b/keyboards/mode/m60h_f/mcuconf.h @@ -21,4 +21,4 @@ #define STM32_PWM_USE_TIM4 TRUE #undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 5 \ No newline at end of file +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/mode/m60s/config.h b/keyboards/mode/m60s/config.h index e51bff8ca5..e13ea3c33f 100644 --- a/keyboards/mode/m60s/config.h +++ b/keyboards/mode/m60s/config.h @@ -6,4 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mode/m60s/halconf.h b/keyboards/mode/m60s/halconf.h index 6c00f38084..612ce4fc4a 100644 --- a/keyboards/mode/m60s/halconf.h +++ b/keyboards/mode/m60s/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mode/m60s/keyboard.json b/keyboards/mode/m60s/keyboard.json index 993af9b798..f17494910a 100644 --- a/keyboards/mode/m60s/keyboard.json +++ b/keyboards/mode/m60s/keyboard.json @@ -177,4 +177,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mode/m60s/mcuconf.h b/keyboards/mode/m60s/mcuconf.h index 0b044526b2..fe4c53e724 100644 --- a/keyboards/mode/m60s/mcuconf.h +++ b/keyboards/mode/m60s/mcuconf.h @@ -21,4 +21,4 @@ #define STM32_PWM_USE_TIM4 TRUE #undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 5 \ No newline at end of file +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/mokey/ginkgo65/readme.md b/keyboards/mokey/ginkgo65/readme.md index 8caa629aef..bdc6c3de36 100644 --- a/keyboards/mokey/ginkgo65/readme.md +++ b/keyboards/mokey/ginkgo65/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: make mokey/ginkgo65: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). \ No newline at end of file +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/mokey/ginkgo65hot/readme.md b/keyboards/mokey/ginkgo65hot/readme.md index b3aa7ab562..aefe89e435 100644 --- a/keyboards/mokey/ginkgo65hot/readme.md +++ b/keyboards/mokey/ginkgo65hot/readme.md @@ -17,4 +17,4 @@ Flashing example for this keyboard: make mokey/ginkgo65hot: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). \ No newline at end of file +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/mokey/mokey12x2/readme.md b/keyboards/mokey/mokey12x2/readme.md index 75a87062c9..ccfc51a788 100644 --- a/keyboards/mokey/mokey12x2/readme.md +++ b/keyboards/mokey/mokey12x2/readme.md @@ -20,4 +20,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: * **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/moky/moky67/keyboard.json b/keyboards/moky/moky67/keyboard.json index 869dfc3389..2e03836318 100644 --- a/keyboards/moky/moky67/keyboard.json +++ b/keyboards/moky/moky67/keyboard.json @@ -229,4 +229,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/momokai/aurora/keymaps/default/keymap.c b/keyboards/momokai/aurora/keymaps/default/keymap.c index cb84cc87d9..791933f9b9 100644 --- a/keyboards/momokai/aurora/keymaps/default/keymap.c +++ b/keyboards/momokai/aurora/keymaps/default/keymap.c @@ -16,4 +16,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json index 1d5302985c..82f8925594 100644 --- a/keyboards/momokai/tap_duo/keyboard.json +++ b/keyboards/momokai/tap_duo/keyboard.json @@ -42,6 +42,12 @@ "solid_splash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 168, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/momokai/tap_duo/tap_duo.c b/keyboards/momokai/tap_duo/tap_duo.c deleted file mode 100644 index 4e0bc9f42c..0000000000 --- a/keyboards/momokai/tap_duo/tap_duo.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2022 Momokai - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, NO_LED, NO_LED, NO_LED} -}, { - // LED Index to Physical Position - { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64} -}, { - // LED Index to Flag - 4,4,2,2 -} }; - -#endif diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json index 41da5585f6..536ea91a30 100644 --- a/keyboards/momokai/tap_trio/keyboard.json +++ b/keyboards/momokai/tap_trio/keyboard.json @@ -42,6 +42,13 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/momokai/tap_trio/tap_trio.c b/keyboards/momokai/tap_trio/tap_trio.c deleted file mode 100644 index 73957745a9..0000000000 --- a/keyboards/momokai/tap_trio/tap_trio.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2022 Momokai - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, NO_LED, NO_LED, NO_LED} -}, { - // LED Index to Physical Position - { 56, 0}, { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64} -}, { - // LED Index to Flag - 4,4,4,2,2 -} }; - -#endif diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c index 6466b55412..4a7afe5562 100644 --- a/keyboards/monsgeek/m1/m1.c +++ b/keyboards/monsgeek/m1/m1.c @@ -164,32 +164,3 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { return true; } #endif - -// clang-format on - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - default: - return true; - } -} diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c index 0b26ef90a6..892e6d2b1d 100644 --- a/keyboards/monsgeek/m3/m3.c +++ b/keyboards/monsgeek/m3/m3.c @@ -140,30 +140,3 @@ void housekeeping_task_kb(void){ gpio_write_pin(LED_MAC_OS_PIN, (get_highest_layer(default_layer_state) == 3)); gpio_write_pin(LED_WIN_LOCK_PIN, keymap_config.no_gui); } - -bool process_record_kb(uint16_t keycode, keyrecord_t* record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - default: - return true; - } -} diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c index 180c370031..577c36e051 100644 --- a/keyboards/monsgeek/m6/m6.c +++ b/keyboards/monsgeek/m6/m6.c @@ -159,39 +159,3 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) } #endif -bool process_record_kb(uint16_t keycode, keyrecord_t *record) -{ - if (!process_record_user(keycode, record)) - { - return false; - } - switch (keycode) - { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) - { - switch (rgb_matrix_get_flags()) - { - case LED_FLAG_ALL: - { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: - { - rgb_matrix_set_flags(LED_FLAG_ALL); - } - break; - } - } - if (!rgb_matrix_is_enabled()) - { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable(); - } - return false; - default: - return true; - } -} \ No newline at end of file diff --git a/keyboards/monstargear/xo87/rgb/keyboard.json b/keyboards/monstargear/xo87/rgb/keyboard.json index 9ee83deb00..dc4015a266 100644 --- a/keyboards/monstargear/xo87/rgb/keyboard.json +++ b/keyboards/monstargear/xo87/rgb/keyboard.json @@ -58,6 +58,118 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"matrix": [5, 15], "x": 224, "y": 63, "flags": 1}, + {"matrix": [5, 14], "x": 215, "y": 63, "flags": 1}, + {"matrix": [5, 13], "x": 206, "y": 63, "flags": 1}, + {"matrix": [4, 15], "x": 180, "y": 63, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 63, "flags": 1}, + {"matrix": [5, 11], "x": 153, "y": 63, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 63, "flags": 1}, + {"matrix": [5, 6], "x": 101, "y": 63, "flags": 4}, + {"matrix": [5, 2], "x": 33, "y": 63, "flags": 1}, + {"matrix": [5, 1], "x": 22, "y": 63, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 63, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 198, "y": 48, "flags": 1}, + {"matrix": [4, 14], "x": 215, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 198, "y": 36, "flags": 1}, + {"matrix": [3, 11], "x": 180, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 161, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 146, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 131, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 101, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 86, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 71, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 41, "y": 36, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 67, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 97, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 127, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 142, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 157, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 187, "y": 24, "flags": 4}, + {"matrix": [4, 13], "x": 202, "y": 24, "flags": 1}, + {"matrix": [2, 13], "x": 206, "y": 24, "flags": 1}, + {"matrix": [2, 14], "x": 215, "y": 24, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 24, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 12, "flags": 1}, + {"matrix": [1, 14], "x": 215, "y": 12, "flags": 1}, + {"matrix": [1, 13], "x": 206, "y": 12, "flags": 1}, + {"matrix": [3, 13], "x": 202, "y": 12, "flags": 1}, + {"matrix": [1, 12], "x": 187, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 12, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"x": 0, "y": 0, "flags": 8}, + {"x": 0, "y": 0, "flags": 8}, + {"x": 0, "y": 0, "flags": 8}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 55, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 108, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 130, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 148, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 172, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 195, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 215, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1} + ], "max_brightness": 100, "sleep": true }, diff --git a/keyboards/monstargear/xo87/rgb/rgb.c b/keyboards/monstargear/xo87/rgb/rgb.c index c064953444..1e29c8b70b 100644 --- a/keyboards/monstargear/xo87/rgb/rgb.c +++ b/keyboards/monstargear/xo87/rgb/rgb.c @@ -15,56 +15,6 @@ */ #include "quantum.h" -led_config_t g_led_config = { { - // esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtscr scrl brk - { 91, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 }, - //tilde 1 2 3 4 5 6 7 8 9 0 - = ins home pgup - { 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 76, 75, 74 }, - //tab q w e r t y u i o p [ ] del end pgdn - { 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73 }, - //caps a s d f g h j k l ; ' return bspc - { 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 77, NO_LED, NO_LED }, - //lshift z x c v b n m , . / rshift bsls up rctl - { 31, NO_LED, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 70, 43, 23 }, - //ctrl win alt space alt win mod left down right - { 30, 29, 28, NO_LED, NO_LED, NO_LED, 27, NO_LED, NO_LED, NO_LED, 26, 25, 24, 22, 21, 20 }, - //underglow lights - //{ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, - //{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } - -}, { - // Underglow lights - { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, - // right down left rctl mod rwin ralt space lalt lwin lctl - { 225, 63 }, { 215, 63 }, { 206, 63 }, { 180, 63 }, { 168, 63}, { 153, 63 }, { 135, 63 }, { 101, 63 }, { 33, 63 }, { 22, 63 }, { 0, 63 }, - // lshift z x c v b n m comma period question rshift up - { 0, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 198, 48 }, { 215, 48}, - // return ' ; l k j h g f d s a capslock - { 198, 36 }, { 180, 36 }, { 176, 36 }, { 161, 36 }, { 146, 36 }, { 131, 36 }, { 116, 36 }, { 101, 36 }, { 86, 36 }, { 71, 36 }, { 56, 36 }, { 41, 36 }, { 0, 36 }, - // tab q w e r t y u i o p [ ] backslash del end pgdn - { 0, 24 }, { 22, 24}, { 37, 24 }, { 52, 24 }, { 67, 24 }, { 82, 24 }, { 97, 24 }, { 112, 24 }, { 127, 24 }, { 142, 24 }, { 157, 24 }, { 172, 24 }, { 187, 24 }, { 202, 24}, { 206, 24 }, {215, 24}, { 225, 24 }, - // pgup home ins backspace = - 0 9 8 7 6 5 4 3 2 1 tilde - { 225, 12 }, {215, 12}, { 206, 12 }, { 202, 12}, { 187, 12 }, { 172, 12 }, { 157, 12 }, { 142, 12 }, { 127, 12 }, { 112, 12 }, { 97, 12 }, { 82, 12 }, { 67, 12 }, { 52, 12 }, { 37, 12 }, { 22, 12}, { 0, 12 }, - // esc ind1 ind2 ind3 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 prtscr scrlck pause - { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 25, 0 }, { 40, 0 }, { 55, 0 }, { 82, 0 }, { 108, 0 }, { 120, 0 }, { 130, 0 }, { 148, 0 }, { 172, 0 }, { 187, 0 }, { 190, 0 }, { 195, 0 }, { 206, 0 }, { 215, 0}, { 225, 0 } -}, { - // underglow - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - // bottom row - 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, - // 2nd row up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // 3rd row up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // 4th row up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - // 5th row up - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // top row - 1, 8, 8, 8, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/morizon/keymaps/default/keymap.c b/keyboards/morizon/keymaps/default/keymap.c index c84ddeaeb3..4480ab73ca 100644 --- a/keyboards/morizon/keymaps/default/keymap.c +++ b/keyboards/morizon/keymaps/default/keymap.c @@ -47,4 +47,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/morningstar1/pttbutton/keyboard.json b/keyboards/morningstar1/pttbutton/keyboard.json new file mode 100644 index 0000000000..0d80d6c497 --- /dev/null +++ b/keyboards/morningstar1/pttbutton/keyboard.json @@ -0,0 +1,28 @@ +{ + "manufacturer": "Sebastian Morgenstern", + "keyboard_name": "pttbutton", + "maintainer": "morningstar1", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "extrakey": true + }, + "matrix_pins": { + "cols": ["B0"], + "rows": ["A0"] + }, + "processor": "STM32F042", + "url": "https://github.com/morningstar1/pttbutton", + "usb": { + "device_version": "1.0.0", + "vid": "0x736D", + "pid": "0xAFFE" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0} + ] + } + } +} diff --git a/keyboards/morningstar1/pttbutton/keymaps/default/keymap.c b/keyboards/morningstar1/pttbutton/keymaps/default/keymap.c new file mode 100644 index 0000000000..d6f74364eb --- /dev/null +++ b/keyboards/morningstar1/pttbutton/keymaps/default/keymap.c @@ -0,0 +1,10 @@ +// Copyright 2026 SEbastian Morgenstern +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F14 + ) +}; diff --git a/keyboards/40percentclub/ut47/ut47.c b/keyboards/morningstar1/pttbutton/pttbutton.c similarity index 51% rename from keyboards/40percentclub/ut47/ut47.c rename to keyboards/morningstar1/pttbutton/pttbutton.c index 867d8c0202..17a7b70cd3 100644 --- a/keyboards/40percentclub/ut47/ut47.c +++ b/keyboards/morningstar1/pttbutton/pttbutton.c @@ -1,4 +1,4 @@ -/* Copyright 2018 Carlos Filoteo +/* Copyright 2026 Sebastian Morgenstern * * 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 @@ -14,23 +14,29 @@ * along with this program. If not, see . */ #include "quantum.h" -#ifdef LED_ENABLE - #include "uart.h" +#include "hal.h" -void matrix_init_kb(void) { - uart_init(9600); - - matrix_init_user(); +void board_init(void) { + // Remap PA11->PA9 and PA12->PA10 for USB + SYSCFG->CFGR1 |= SYSCFG_CFGR1_PA11_PA12_RMP; } -#endif -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - if (record->event.pressed) { - #ifdef LED_ENABLE - uart_write((record->event.key.row*16)+record->event.key.col); - #endif - } - return process_record_user(keycode, record); +void keyboard_pre_init_kb(void) { + // Immediately set the LED pin as an output and set it ON + gpio_set_pin_output(A15); + gpio_write_pin_high(A15); + + keyboard_pre_init_user(); +} + +void keyboard_post_init_kb(void) { + // Blink the LED so we know everything is running OK + // Finish with LED OFF + gpio_write_pin_low(A15); + wait_ms(100); + gpio_write_pin_high(A15); + wait_ms(100); + gpio_write_pin_low(A15); + + keyboard_post_init_user(); } diff --git a/keyboards/morningstar1/pttbutton/readme.md b/keyboards/morningstar1/pttbutton/readme.md new file mode 100644 index 0000000000..279438e1b0 --- /dev/null +++ b/keyboards/morningstar1/pttbutton/readme.md @@ -0,0 +1,25 @@ +# pttbutton + +![pttbutton](https://github.com/morningstar1/PTTButton/blob/main/image/PTTButton.png?raw=true) + +A simple one button keyboard with a USB Hub. Primary intention is to use it as a Push To Talk (PTT) button. + +* Keyboard Maintainer: [Sebastian Morgenstern](https://github.com/morningstar1) +* Hardware Supported: [PTTButton V1.0](https://github.com/morningstar1/PTTButton) +* Hardware Availability: please contact me + +Make example for this keyboard (after setting up your build environment): + + make morningstar1/pttbutton:default + +Flashing example for this keyboard: + + make morningstar1/pttbutton: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 one way: + +* **Physical reset button**: Briefly press the small button on the PCB diff --git a/keyboards/mountainblocks/mb17/keymaps/default/keymap.c b/keyboards/mountainblocks/mb17/keymaps/default/keymap.c index 13c8cf8128..705c4fcb2e 100644 --- a/keyboards/mountainblocks/mb17/keymaps/default/keymap.c +++ b/keyboards/mountainblocks/mb17/keymaps/default/keymap.c @@ -57,4 +57,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, KC_DOWN, KC_PGDN, KC_INS, KC_DEL, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/mountainmechdesigns/teton_78/keyboard.json b/keyboards/mountainmechdesigns/teton_78/keyboard.json index ba7cfdd2c3..07bde308a5 100644 --- a/keyboards/mountainmechdesigns/teton_78/keyboard.json +++ b/keyboards/mountainmechdesigns/teton_78/keyboard.json @@ -107,4 +107,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mountainmechdesigns/teton_78/readme.md b/keyboards/mountainmechdesigns/teton_78/readme.md index 40ef5c436b..29cc77eacd 100644 --- a/keyboards/mountainmechdesigns/teton_78/readme.md +++ b/keyboards/mountainmechdesigns/teton_78/readme.md @@ -34,4 +34,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mss_studio/m63_rgb/keyboard.json b/keyboards/mss_studio/m63_rgb/keyboard.json index b798df21dd..5aa3a753e2 100644 --- a/keyboards/mss_studio/m63_rgb/keyboard.json +++ b/keyboards/mss_studio/m63_rgb/keyboard.json @@ -61,6 +61,83 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"x": 216, "y": 56, "flags": 2}, + {"x": 181, "y": 57, "flags": 2}, + {"x": 138, "y": 59, "flags": 2}, + {"x": 105, "y": 58, "flags": 2}, + {"x": 52, "y": 60, "flags": 2}, + {"x": 10, "y": 60, "flags": 2}, + {"x": 20, "y": 12, "flags": 2}, + {"x": 54, "y": 12, "flags": 2}, + {"x": 102, "y": 10, "flags": 2}, + {"x": 145, "y": 13, "flags": 2}, + {"x": 182, "y": 9, "flags": 2}, + {"x": 211, "y": 10, "flags": 2} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c b/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c index 8a59f2ec9f..ac26ed2de9 100644 --- a/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c +++ b/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c @@ -32,24 +32,6 @@ enum layer_names { _FN, }; -enum user_rgb_mode { - RGB_MODE_ALL, - RGB_MODE_KEYLIGHT, - RGB_MODE_UNDERGLOW, - RGB_MODE_NONE, -}; - -typedef union { - uint32_t raw; - struct { - uint8_t rgb_mode :8; - }; -} user_config_t; - -user_config_t user_config; - -// enum layer_keycodes { }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -108,66 +90,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void keyboard_post_init_user(void) { - user_config.raw = eeconfig_read_user(); - switch (user_config.rgb_mode) { - case RGB_MODE_ALL: - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - break; - case RGB_MODE_KEYLIGHT: - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - break; - case RGB_MODE_UNDERGLOW: - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - break; - case RGB_MODE_NONE: - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - break; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_KEYLIGHT; - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_UNDERGLOW; - } - break; - case (LED_FLAG_UNDERGLOW): { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_NONE; - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - user_config.rgb_mode = RGB_MODE_ALL; - } - break; - } - eeconfig_update_user(user_config.raw); - } - return false; - } - - return true; -} - bool rgb_matrix_indicators_user(void) { hsv_t hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); diff --git a/keyboards/mss_studio/m63_rgb/m63_rgb.c b/keyboards/mss_studio/m63_rgb/m63_rgb.c deleted file mode 100644 index 71a43720cc..0000000000 --- a/keyboards/mss_studio/m63_rgb/m63_rgb.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Mss Studio - * Copyright 2022 HorrorTroll - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 } -}, { - // Key matrix (0 -> 62) - {0 , 0}, {16 , 0}, {32 , 0}, {48 , 0}, {64 , 0}, {80 , 0}, {96 , 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4 , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {6 , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32}, - {10 , 48}, {36 , 48}, {52 , 48}, {68 , 48}, {84 , 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {186, 48}, {208, 48}, {224, 48}, - {2 , 64}, {22 , 64}, {42 , 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - - // Underglow (63 -> 74) - {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60}, - {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182, 9}, {211, 10}, -}, { - // Key matrix (0 -> 62) - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 4, 4, 4, - - // Underglow (63 -> 74) - 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/mss_studio/m64_rgb/keyboard.json b/keyboards/mss_studio/m64_rgb/keyboard.json index 083afec8c7..b2aa92d8f2 100644 --- a/keyboards/mss_studio/m64_rgb/keyboard.json +++ b/keyboards/mss_studio/m64_rgb/keyboard.json @@ -61,6 +61,84 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"x": 216, "y": 56, "flags": 2}, + {"x": 181, "y": 57, "flags": 2}, + {"x": 138, "y": 59, "flags": 2}, + {"x": 105, "y": 58, "flags": 2}, + {"x": 52, "y": 60, "flags": 2}, + {"x": 10, "y": 60, "flags": 2}, + {"x": 20, "y": 12, "flags": 2}, + {"x": 54, "y": 12, "flags": 2}, + {"x": 102, "y": 10, "flags": 2}, + {"x": 145, "y": 13, "flags": 2}, + {"x": 182, "y": 9, "flags": 2}, + {"x": 211, "y": 10, "flags": 2} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c b/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c index c3879b2b61..82180c7c21 100644 --- a/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c +++ b/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c @@ -28,24 +28,6 @@ enum layer_names { _FN, }; -enum user_rgb_mode { - RGB_MODE_ALL, - RGB_MODE_KEYLIGHT, - RGB_MODE_UNDERGLOW, - RGB_MODE_NONE, -}; - -typedef union { - uint32_t raw; - struct { - uint8_t rgb_mode :8; - }; -} user_config_t; - -user_config_t user_config; - -// enum layer_keycodes { }; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -104,66 +86,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void keyboard_post_init_user(void) { - user_config.raw = eeconfig_read_user(); - switch (user_config.rgb_mode) { - case RGB_MODE_ALL: - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - break; - case RGB_MODE_KEYLIGHT: - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - break; - case RGB_MODE_UNDERGLOW: - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - break; - case RGB_MODE_NONE: - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - break; - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_KEYLIGHT; - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_UNDERGLOW; - } - break; - case (LED_FLAG_UNDERGLOW): { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - user_config.rgb_mode = RGB_MODE_NONE; - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - user_config.rgb_mode = RGB_MODE_ALL; - } - break; - } - eeconfig_update_user(user_config.raw); - } - return false; - } - - return true; -} - bool rgb_matrix_indicators_user(void) { hsv_t hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); diff --git a/keyboards/mss_studio/m64_rgb/m64_rgb.c b/keyboards/mss_studio/m64_rgb/m64_rgb.c deleted file mode 100644 index f9b2778371..0000000000 --- a/keyboards/mss_studio/m64_rgb/m64_rgb.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Mss Studio - * Copyright 2022 HorrorTroll - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, - { 55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63 } -}, { - // Key matrix (0 -> 63) - {0 , 0}, {16 , 0}, {32 , 0}, {48 , 0}, {64 , 0}, {80 , 0}, {96 , 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4 , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {6 , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32}, - {8 , 48}, {32 , 48}, {48 , 48}, {64 , 48}, {80 , 48}, {96 , 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, - {2 , 64}, {22 , 64}, {42 , 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - - // Underglow (64 -> 75) - {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60}, - {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182, 9}, {211, 10}, -}, { - // Key matrix (0 -> 63) - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 4, 4, 4, - - // Underglow (64 -> 75) - 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/mwstudio/mw65_rgb/keyboard.json b/keyboards/mwstudio/mw65_rgb/keyboard.json index ce8e3f978c..5508e3b663 100644 --- a/keyboards/mwstudio/mw65_rgb/keyboard.json +++ b/keyboards/mwstudio/mw65_rgb/keyboard.json @@ -54,6 +54,91 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 180, "y": 52, "flags": 2}, + {"x": 146, "y": 52, "flags": 2}, + {"x": 86, "y": 52, "flags": 2}, + {"x": 45, "y": 52, "flags": 2}, + {"x": 7, "y": 52, "flags": 2}, + {"x": 7, "y": 36, "flags": 2}, + {"x": 7, "y": 20, "flags": 2}, + {"x": 7, "y": 4, "flags": 2}, + {"x": 45, "y": 4, "flags": 2}, + {"x": 86, "y": 4, "flags": 2}, + {"x": 146, "y": 4, "flags": 2}, + {"x": 180, "y": 4, "flags": 2}, + {"x": 217, "y": 4, "flags": 2}, + {"x": 217, "y": 20, "flags": 2}, + {"x": 217, "y": 36, "flags": 2}, + {"x": 217, "y": 52, "flags": 2}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 173, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 156, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 36, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 188, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 145, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 115, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 36, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 111, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 126, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 141, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 156, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "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, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mwstudio/mw65_rgb/mw65_rgb.c b/keyboards/mwstudio/mw65_rgb/mw65_rgb.c deleted file mode 100644 index 0cd8fdaa75..0000000000 --- a/keyboards/mwstudio/mw65_rgb/mw65_rgb.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2021 TW59420 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67 }, - { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, 40, 39 }, - { 25, NO_LED, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, - { 24, 23, 22, NO_LED, NO_LED, NO_LED, 21, NO_LED, NO_LED, NO_LED, 20, 19, 18, 17, 16 } -}, { - //Underglow (0 -> 15) - {180, 52}, {146, 52}, {86 , 52}, {45 , 52}, {7 , 52}, {7 , 36}, {7 , 20}, {7 , 4}, {45 , 4}, {86 , 4}, {146, 4}, {180, 4}, {217, 4}, {217, 20}, {217, 36}, {217, 52}, - - //Key matrix (16 -> 83) - {224, 64}, {209, 64}, {194, 64}, {173, 64}, {156, 64}, {96 , 64}, {36 , 64}, {19 , 64}, {2 , 64}, - {8 , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48}, {224, 48}, - {224, 32}, {200, 32}, {175, 32}, {160, 32}, {145, 32}, {130, 32}, {115, 32}, {100, 32}, {85 , 32}, {70 , 32}, {55 , 32}, {40 , 32}, {25 , 32}, {5 , 32}, - {3 , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16}, - {224, 0}, {202, 0}, {180, 0}, {165, 0}, {150, 0}, {135, 0}, {120, 0}, {105, 0}, {90 , 0}, {75 , 0}, {60 , 0}, {45 , 0}, {30 , 0}, {15 , 0}, {0 , 0}, -}, { - //Underglow (0 -> 15) - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - - //Key matrix (16 -> 82) - 4, 4, 4, 1, 1, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, -} }; -#endif diff --git a/keyboards/mwstudio/mw660/config.h b/keyboards/mwstudio/mw660/config.h index 58d0eee9e0..d39cc40330 100644 --- a/keyboards/mwstudio/mw660/config.h +++ b/keyboards/mwstudio/mw660/config.h @@ -21,4 +21,4 @@ //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). #define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mwstudio/mw75/keyboard.json b/keyboards/mwstudio/mw75/keyboard.json index 489e711c5b..4096bd943a 100644 --- a/keyboards/mwstudio/mw75/keyboard.json +++ b/keyboards/mwstudio/mw75/keyboard.json @@ -51,6 +51,105 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [5, 14], "x": 217, "y": 60, "flags": 1}, + {"matrix": [5, 13], "x": 203, "y": 60, "flags": 1}, + {"matrix": [5, 12], "x": 189, "y": 60, "flags": 1}, + {"matrix": [5, 11], "x": 166, "y": 60, "flags": 1}, + {"matrix": [5, 10], "x": 150, "y": 60, "flags": 1}, + {"matrix": [5, 6], "x": 95, "y": 60, "flags": 1}, + {"matrix": [5, 2], "x": 40, "y": 60, "flags": 1}, + {"matrix": [5, 1], "x": 24, "y": 60, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 60, "flags": 1}, + {"matrix": [4, 14], "x": 217, "y": 50, "flags": 1}, + {"matrix": [4, 13], "x": 203, "y": 50, "flags": 1}, + {"matrix": [4, 12], "x": 184, "y": 50, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 50, "flags": 1}, + {"matrix": [4, 10], "x": 151, "y": 50, "flags": 1}, + {"matrix": [4, 9], "x": 137, "y": 50, "flags": 1}, + {"matrix": [4, 8], "x": 123, "y": 50, "flags": 1}, + {"matrix": [4, 7], "x": 109, "y": 50, "flags": 1}, + {"matrix": [4, 6], "x": 95, "y": 50, "flags": 1}, + {"matrix": [4, 5], "x": 81, "y": 50, "flags": 1}, + {"matrix": [4, 4], "x": 67, "y": 50, "flags": 1}, + {"matrix": [4, 3], "x": 53, "y": 50, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 50, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 50, "flags": 1}, + {"matrix": [3, 14], "x": 217, "y": 40, "flags": 1}, + {"matrix": [3, 13], "x": 195, "y": 40, "flags": 1}, + {"matrix": [3, 11], "x": 172, "y": 40, "flags": 1}, + {"matrix": [3, 10], "x": 158, "y": 40, "flags": 1}, + {"matrix": [3, 9], "x": 144, "y": 40, "flags": 1}, + {"matrix": [3, 8], "x": 130, "y": 40, "flags": 1}, + {"matrix": [3, 7], "x": 116, "y": 40, "flags": 1}, + {"matrix": [3, 6], "x": 102, "y": 40, "flags": 1}, + {"matrix": [3, 5], "x": 88, "y": 40, "flags": 1}, + {"matrix": [3, 4], "x": 74, "y": 40, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 46, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 32, "y": 40, "flags": 1}, + {"matrix": [3, 0], "x": 13, "y": 40, "flags": 1}, + {"matrix": [2, 14], "x": 217, "y": 30, "flags": 1}, + {"matrix": [2, 13], "x": 199, "y": 30, "flags": 1}, + {"matrix": [2, 12], "x": 181, "y": 30, "flags": 1}, + {"matrix": [2, 11], "x": 165, "y": 30, "flags": 1}, + {"matrix": [2, 10], "x": 151, "y": 30, "flags": 1}, + {"matrix": [2, 9], "x": 137, "y": 30, "flags": 1}, + {"matrix": [2, 8], "x": 123, "y": 30, "flags": 1}, + {"matrix": [2, 7], "x": 109, "y": 30, "flags": 1}, + {"matrix": [2, 6], "x": 95, "y": 30, "flags": 1}, + {"matrix": [2, 5], "x": 81, "y": 30, "flags": 1}, + {"matrix": [2, 4], "x": 67, "y": 30, "flags": 1}, + {"matrix": [2, 3], "x": 53, "y": 30, "flags": 1}, + {"matrix": [2, 2], "x": 39, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 1}, + {"matrix": [2, 0], "x": 9, "y": 30, "flags": 1}, + {"matrix": [1, 14], "x": 217, "y": 20, "flags": 1}, + {"matrix": [1, 13], "x": 196, "y": 20, "flags": 1}, + {"matrix": [1, 12], "x": 175, "y": 20, "flags": 1}, + {"matrix": [1, 11], "x": 161, "y": 20, "flags": 1}, + {"matrix": [1, 10], "x": 147, "y": 20, "flags": 1}, + {"matrix": [1, 9], "x": 133, "y": 20, "flags": 1}, + {"matrix": [1, 8], "x": 119, "y": 20, "flags": 1}, + {"matrix": [1, 7], "x": 105, "y": 20, "flags": 1}, + {"matrix": [1, 6], "x": 91, "y": 20, "flags": 1}, + {"matrix": [1, 5], "x": 77, "y": 20, "flags": 1}, + {"matrix": [1, 4], "x": 63, "y": 20, "flags": 1}, + {"matrix": [1, 3], "x": 49, "y": 20, "flags": 1}, + {"matrix": [1, 2], "x": 35, "y": 20, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 20, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 1}, + {"matrix": [0, 14], "x": 217, "y": 5, "flags": 1}, + {"matrix": [0, 13], "x": 196, "y": 5, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 5, "flags": 1}, + {"matrix": [0, 11], "x": 168, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 154, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 133, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 119, "y": 5, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 5, "flags": 1}, + {"matrix": [0, 6], "x": 91, "y": 5, "flags": 1}, + {"matrix": [0, 5], "x": 70, "y": 5, "flags": 1}, + {"matrix": [0, 4], "x": 56, "y": 5, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 28, "y": 5, "flags": 1}, + {"matrix": [0, 1], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 0], "x": 14, "y": 14, "flags": 1}, + {"matrix": [6, 0], "x": 42, "y": 14, "flags": 1}, + {"matrix": [6, 1], "x": 98, "y": 14, "flags": 1}, + {"matrix": [6, 2], "x": 154, "y": 14, "flags": 1}, + {"matrix": [6, 3], "x": 182, "y": 14, "flags": 1}, + {"matrix": [6, 4], "x": 210, "y": 14, "flags": 1}, + {"matrix": [6, 5], "x": 210, "y": 25, "flags": 1}, + {"matrix": [6, 6], "x": 210, "y": 40, "flags": 1}, + {"matrix": [6, 7], "x": 210, "y": 55, "flags": 1}, + {"matrix": [6, 8], "x": 182, "y": 55, "flags": 1}, + {"matrix": [6, 9], "x": 126, "y": 55, "flags": 1}, + {"matrix": [6, 10], "x": 98, "y": 55, "flags": 1}, + {"matrix": [6, 11], "x": 42, "y": 55, "flags": 1}, + {"matrix": [6, 12], "x": 14, "y": 55, "flags": 1}, + {"matrix": [6, 13], "x": 14, "y": 40, "flags": 1}, + {"matrix": [6, 14], "x": 14, "y": 25, "flags": 1} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mwstudio/mw75/mw75.c b/keyboards/mwstudio/mw75/mw75.c deleted file mode 100644 index dda51cb971..0000000000 --- a/keyboards/mwstudio/mw75/mw75.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2021 TW59420 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67 }, - { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, - { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 }, - { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, NO_LED, 24, 23 }, - { 22, NO_LED, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, - { 8, 7, 6, NO_LED, NO_LED, NO_LED, 5, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 }, - { 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 } -}, { - { 217, 60 }, { 203, 60 }, { 189, 60 }, { 166, 60 }, { 150, 60 }, { 95, 60 }, { 40, 60 }, { 24, 60 }, { 8, 60 }, - { 217, 50 }, { 203, 50 }, { 184, 50 }, { 165, 50 }, { 151, 50 }, { 137, 50 }, { 123, 50 }, { 109, 50 }, { 95, 50 }, { 81, 50 }, { 67, 50 }, { 53, 50 }, { 39, 50 }, { 17, 50 }, - { 217, 40 }, { 195, 40 }, { 172, 40 }, { 158, 40 }, { 144, 40 }, { 130, 40 }, { 116, 40 }, { 102, 40 }, { 88, 40 }, { 74, 40 }, { 60, 40 }, { 46, 40 }, { 32, 40 }, { 13, 40 }, - { 217, 30 }, { 199, 30 }, { 181, 30 }, { 165, 30 }, { 151, 30 }, { 137, 30 }, { 123, 30 }, { 109, 30 }, { 95, 30 }, { 81, 30 }, { 67, 30 }, { 53, 30 }, { 39, 30 }, { 25, 30 }, { 9, 30 }, - { 217, 20 }, { 196, 20 }, { 175, 20 }, { 161, 20 }, { 147, 20 }, { 133, 20 }, { 119, 20 }, { 105, 20 }, { 91, 20 }, { 77, 20 }, { 63, 20 }, { 49, 20 }, { 35, 20 }, { 21, 20 }, { 7, 20 }, - { 217, 5 }, { 196, 5 }, { 182, 5 }, { 168, 5 }, { 154, 5 }, { 133, 5 }, { 119, 5 }, { 105, 5 }, { 91, 5 }, { 70, 5 }, { 56, 5 }, { 42, 5 }, { 28, 5 }, { 7, 5 }, - - { 14, 14 }, { 42, 14 }, { 98, 14 }, { 154, 14 }, { 182, 14 }, { 210, 14 }, { 210, 25 }, { 210, 40 }, - { 210, 55 },{ 182, 55 },{ 126, 55 },{ 98, 55 }, { 42, 55 }, { 14, 55 }, { 14, 40 }, { 14, 25 } -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/mwstudio/mw75r2/keyboard.json b/keyboards/mwstudio/mw75r2/keyboard.json index 10c6a226ca..6cb4269400 100644 --- a/keyboards/mwstudio/mw75r2/keyboard.json +++ b/keyboards/mwstudio/mw75r2/keyboard.json @@ -39,7 +39,30 @@ "pixel_fractal": true, "pixel_rain": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 105, "y": 60, "flags": 1}, + {"x": 70, "y": 60, "flags": 1}, + {"x": 35, "y": 60, "flags": 1}, + {"x": 0, "y": 60, "flags": 1}, + {"x": 0, "y": 40, "flags": 1}, + {"x": 0, "y": 20, "flags": 1}, + {"x": 0, "y": 0, "flags": 1}, + {"x": 42, "y": 0, "flags": 1}, + {"x": 84, "y": 0, "flags": 1}, + {"x": 126, "y": 0, "flags": 1}, + {"x": 168, "y": 0, "flags": 1}, + {"x": 210, "y": 0, "flags": 1}, + {"x": 210, "y": 20, "flags": 1}, + {"x": 210, "y": 40, "flags": 1}, + {"x": 40, "y": 20, "flags": 1}, + {"x": 120, "y": 20, "flags": 1}, + {"x": 40, "y": 40, "flags": 1}, + {"x": 120, "y": 40, "flags": 1}, + {"x": 210, "y": 60, "flags": 1}, + {"x": 175, "y": 60, "flags": 1}, + {"x": 140, "y": 60, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/mwstudio/mw75r2/mw75r2.c b/keyboards/mwstudio/mw75r2/mw75r2.c deleted file mode 100644 index ca058e9d8d..0000000000 --- a/keyboards/mwstudio/mw75r2/mw75r2.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2021 TW59420 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - { 105, 60 }, { 70, 60 }, { 35, 60 }, { 0, 60 }, { 0, 40 }, { 0, 20 }, { 0, 0 }, { 42, 0 }, { 84, 0 }, { 126, 0 }, { 168, 0 }, { 210, 0 }, { 210, 20 }, { 210, 40 }, { 40, 20 }, { 120, 20 }, { 40, 40 }, { 120, 40 }, { 210, 60 }, { 175, 60 },{ 140, 60 } -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/mysticworks/wyvern/keymaps/default/keymap.c b/keyboards/mysticworks/wyvern/keymaps/default/keymap.c index 3269631206..f22d4e62cf 100644 --- a/keyboards/mysticworks/wyvern/keymaps/default/keymap.c +++ b/keyboards/mysticworks/wyvern/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/nack/keyboard.json b/keyboards/nack/keyboard.json index cd08aac0af..2368786530 100644 --- a/keyboards/nack/keyboard.json +++ b/keyboards/nack/keyboard.json @@ -73,6 +73,60 @@ "val": 64 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 57, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 76, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 95, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 114, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 133, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 152, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 171, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 209, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 223, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4}, + {"matrix": [1, 12], "x": 223, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4}, + {"matrix": [2, 12], "x": 223, "y": 42, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 63, "flags": 4}, + {"matrix": [3, 1], "x": 19, "y": 63, "flags": 4}, + {"matrix": [3, 2], "x": 38, "y": 63, "flags": 4}, + {"matrix": [3, 3], "x": 57, "y": 63, "flags": 4}, + {"matrix": [3, 4], "x": 76, "y": 63, "flags": 4}, + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4}, + {"matrix": [3, 6], "x": 114, "y": 63, "flags": 4}, + {"matrix": [3, 7], "x": 133, "y": 63, "flags": 4}, + {"matrix": [3, 8], "x": 152, "y": 63, "flags": 4}, + {"matrix": [3, 9], "x": 171, "y": 63, "flags": 4}, + {"matrix": [3, 10], "x": 190, "y": 63, "flags": 4}, + {"matrix": [3, 11], "x": 209, "y": 63, "flags": 4}, + {"matrix": [3, 12], "x": 223, "y": 63, "flags": 4} + ], "hue_steps": 10, "sat_steps": 10, "val_steps": 10, diff --git a/keyboards/nack/nack.c b/keyboards/nack/nack.c deleted file mode 100644 index 27e029a9fd..0000000000 --- a/keyboards/nack/nack.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2020 farfalleflickan - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }, - { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 } - }, { - // LED Index to Physical Position - { 0, 0 }, { 19, 0 }, { 38, 0 }, { 57, 0 }, { 76, 0 }, { 95, 0 }, { 114, 0 }, { 133, 0 }, { 152, 0 }, { 171, 0 }, { 190, 0 }, { 209, 0 }, { 223, 0 }, - { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 223, 21 }, - { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 223, 42 }, - { 0, 63 }, { 19, 63 }, { 38, 63 }, { 57, 63 }, { 76, 63 }, { 95, 63 }, { 114, 63 }, { 133, 63 }, { 152, 63 }, { 171, 63 }, { 190, 63 }, { 209, 63 }, { 223, 63 } - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } }; -#endif diff --git a/keyboards/navi60/keymaps/default/keymap.c b/keyboards/navi60/keymaps/default/keymap.c index c49cc641d4..fba6f7bd5f 100644 --- a/keyboards/navi60/keymaps/default/keymap.c +++ b/keyboards/navi60/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, 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_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL ), -}; \ No newline at end of file +}; diff --git a/keyboards/nek_type_a/matrix.c b/keyboards/nek_type_a/matrix.c index 76613947f6..8e620db55e 100644 --- a/keyboards/nek_type_a/matrix.c +++ b/keyboards/nek_type_a/matrix.c @@ -50,15 +50,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -251,7 +248,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -312,12 +309,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 810e311b28..8dabf5efe1 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -381,4 +381,4 @@ bool led_update_kb(led_t led_state) return res; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/neson_design/700e/readme.md b/keyboards/neson_design/700e/readme.md index 8b25d00c25..24822eed01 100644 --- a/keyboards/neson_design/700e/readme.md +++ b/keyboards/neson_design/700e/readme.md @@ -18,4 +18,4 @@ 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 *RST* button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/neson_design/810e/keyboard.json b/keyboards/neson_design/810e/keyboard.json index ab52c1539e..b4181ccc24 100644 --- a/keyboards/neson_design/810e/keyboard.json +++ b/keyboards/neson_design/810e/keyboard.json @@ -114,4 +114,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index e4538257f1..bfee7ecb62 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -378,4 +378,4 @@ bool led_update_kb(led_t led_state) return res; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/neson_design/n6/readme.md b/keyboards/neson_design/n6/readme.md index f86668549a..e4d069e399 100644 --- a/keyboards/neson_design/n6/readme.md +++ b/keyboards/neson_design/n6/readme.md @@ -18,4 +18,4 @@ 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 *RST* button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/neson_design/nico/readme.md b/keyboards/neson_design/nico/readme.md index 9b821c16d0..c743ae55ea 100644 --- a/keyboards/neson_design/nico/readme.md +++ b/keyboards/neson_design/nico/readme.md @@ -18,4 +18,4 @@ 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 *RST* button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/nifty_numpad/config.h b/keyboards/nifty_numpad/config.h new file mode 100644 index 0000000000..50a59bae83 --- /dev/null +++ b/keyboards/nifty_numpad/config.h @@ -0,0 +1,6 @@ +// Copyright 2023 Isaac Rex (@Acliad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define EECONFIG_KB_DATA_SIZE 10 diff --git a/keyboards/nifty_numpad/keyboard.json b/keyboards/nifty_numpad/keyboard.json new file mode 100644 index 0000000000..3dce0cca35 --- /dev/null +++ b/keyboards/nifty_numpad/keyboard.json @@ -0,0 +1,150 @@ +{ + "manufacturer": "Isaac Rex", + "keyboard_name": "Nifty Numpad", + "maintainer": "Acliad", + "bootloader": "rp2040", + "diode_direction": "ROW2COL", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP17", "GP18", "GP15", "GP13", "GP14", "GP12"], + "rows": ["GP20", "GP21", "GP22", "GP23", "GP24", "GP25"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "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_up_down": true, + "jellybean_raindrops": true, + "multisplash": 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": false + }, + "default": { + "animation": "solid_color", + "hue": 127, + "speed": 100 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 43, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 139, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 181, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 43, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 96, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 181, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 43, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 96, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 139, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 181, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 35, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 43, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 96, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 139, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 181, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 43, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 139, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 181, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 224, "y": 58, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 43, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 117, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 181, "y": 64, "flags": 4} + ] + }, + "url": "https://gitlab.com/Acliad/nifty-numpad", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0x4E4E" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP19" + }, + "layouts": { + "LAYOUT_numpad_6x6": { + "layout": [ + {"label": "F13", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F19", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "BACKSPACE", "matrix": [0, 2], "x": 2.25, "y": 0}, + {"label": "TASK VIEW", "matrix": [0, 3], "x": 3.25, "y": 0}, + {"label": "EXPLORER", "matrix": [0, 4], "x": 4.25, "y": 0}, + {"label": "SCREENSHOT", "matrix": [0, 5], "x": 5.25, "y": 0}, + {"label": "F14", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "F20", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "NUM LOCK", "matrix": [1, 2], "x": 2.25, "y": 1.5}, + {"label": "/", "matrix": [1, 3], "x": 3.25, "y": 1.5}, + {"label": "*", "matrix": [1, 4], "x": 4.25, "y": 1.5}, + {"label": "-", "matrix": [1, 5], "x": 5.25, "y": 1.5}, + {"label": "F15", "matrix": [2, 0], "x": 0, "y": 2.5}, + {"label": "F21", "matrix": [2, 1], "x": 1, "y": 2.5}, + {"label": "7", "matrix": [2, 2], "x": 2.25, "y": 2.5}, + {"label": "8", "matrix": [2, 3], "x": 3.25, "y": 2.5}, + {"label": "9", "matrix": [2, 4], "x": 4.25, "y": 2.5}, + {"label": "+", "matrix": [2, 5], "x": 5.25, "y": 2.5, "h": 2}, + {"label": "F16", "matrix": [3, 0], "x": 0, "y": 3.5}, + {"label": "F22", "matrix": [3, 1], "x": 1, "y": 3.5}, + {"label": "4", "matrix": [3, 2], "x": 2.25, "y": 3.5}, + {"label": "5", "matrix": [3, 3], "x": 3.25, "y": 3.5}, + {"label": "6", "matrix": [3, 4], "x": 4.25, "y": 3.5}, + {"label": "F17", "matrix": [4, 0], "x": 0, "y": 4.5}, + {"label": "F23", "matrix": [4, 1], "x": 1, "y": 4.5}, + {"label": "1", "matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"label": "2", "matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"label": "3", "matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"label": "ENTER", "matrix": [4, 5], "x": 5.25, "y": 4.5, "h": 2}, + {"label": "F18", "matrix": [5, 0], "x": 0, "y": 5.5}, + {"label": "F24", "matrix": [5, 1], "x": 1, "y": 5.5}, + {"label": "0", "matrix": [5, 2], "x": 2.25, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [5, 4], "x": 4.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/nifty_numpad/keymaps/default/keymap.c b/keyboards/nifty_numpad/keymaps/default/keymap.c new file mode 100644 index 0000000000..89f3350bca --- /dev/null +++ b/keyboards/nifty_numpad/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +// Copyright 2023 Isaac Rex (@Acliad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Layers +// NOTE: LAYER_RGB is defined in nifty_numpad.h +enum LAYERS { + LAYER_BL, +}; + +// Setup keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BL] = LAYOUT_numpad_6x6( + KC_F13, KC_F19, LT(LAYER_RGB, KC_BSPC), RGUI(KC_TAB), RGUI(KC_E), RGUI(RSFT(KC_S)), + KC_F14, KC_F20, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_F15, KC_F21, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_F16, KC_F22, KC_P4, KC_P5, KC_P6, + KC_F17, KC_F23, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_F18, KC_F24, KC_P0, KC_PDOT + ), + + [LAYER_RGB] = LAYOUT_numpad_6x6( + _______, _______, _______, RM_HUEU, RM_SATU, RM_VALU, + _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, + _______, _______, _______, RM_NEXT, _______, RM_SPDU, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RM_SPDD, + _______, _______, _______, _______ + ) +}; diff --git a/keyboards/nifty_numpad/keymaps/idle_rgb_example/keymap.c b/keyboards/nifty_numpad/keymaps/idle_rgb_example/keymap.c new file mode 100644 index 0000000000..c3956848eb --- /dev/null +++ b/keyboards/nifty_numpad/keymaps/idle_rgb_example/keymap.c @@ -0,0 +1,107 @@ +// Copyright 2023 Isaac Rex (@Acliad) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Layers +// NOTE: LAYER_RGB is defined in nifty_numpad.h +enum LAYERS { + LAYER_BL = 0, + LAYER_MOD, +}; + +// Layer Indicator LED index +#define _NUM_LED_INDEX 8 + +// Tap Dance Declarations +enum { + TD_NUM_TOGGLE = 0, + TD_EDIT_GEN_TOGGLE, + TD_M1, + TD_M2, + TD_M3, + TD_M4, + TD_M5, + TD_M6, + TD_M7, + TD_M8, + TD_M9, + TD_M10, + TD_M11, + TD_M12, +}; + +// TD function for 1 tap, toggle layer; 2 taps, press numlock +void tap_dance_num_toggle(tap_dance_state_t *state, void *user_data){ + switch(state->count){ + case 1: + layer_invert(LAYER_MOD); + break; + case 2: + tap_code16(KC_NUM); + break; + } +} + +// Tap Dance Definitions +tap_dance_action_t tap_dance_actions[] = { + [TD_NUM_TOGGLE] = ACTION_TAP_DANCE_FN(tap_dance_num_toggle), + + [TD_M1] = ACTION_TAP_DANCE_DOUBLE(KC_F13, LCTL(KC_F13)), + [TD_M2] = ACTION_TAP_DANCE_DOUBLE(KC_F14, LCTL(KC_F14)), + [TD_M3] = ACTION_TAP_DANCE_DOUBLE(KC_F15, LCTL(KC_F15)), + [TD_M4] = ACTION_TAP_DANCE_DOUBLE(KC_F16, LCTL(KC_F16)), + [TD_M5] = ACTION_TAP_DANCE_DOUBLE(KC_F17, LCTL(KC_F17)), + [TD_M6] = ACTION_TAP_DANCE_DOUBLE(KC_F18, LCTL(KC_F18)), + [TD_M7] = ACTION_TAP_DANCE_DOUBLE(KC_F19, LCTL(KC_F19)), + [TD_M8] = ACTION_TAP_DANCE_DOUBLE(KC_F20, LCTL(KC_F20)), + [TD_M9] = ACTION_TAP_DANCE_DOUBLE(KC_F21, LCTL(KC_F21)), + [TD_M10] = ACTION_TAP_DANCE_DOUBLE(KC_F22, LCTL(KC_F22)), + [TD_M11] = ACTION_TAP_DANCE_DOUBLE(KC_F23, LCTL(KC_F23)), + [TD_M12] = ACTION_TAP_DANCE_DOUBLE(KC_F24, LCTL(KC_F24)) +}; + +// Setup keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_BL] = LAYOUT_numpad_6x6( + TD(TD_M1), TD(TD_M7) , LT(LAYER_RGB, KC_BSPC), RGUI(KC_TAB), RGUI(KC_E), RGUI(RSFT(KC_S)), + TD(TD_M2), TD(TD_M8) , TD(TD_NUM_TOGGLE), KC_PSLS, KC_PAST, KC_PMNS, + TD(TD_M3), TD(TD_M9) , KC_P7, KC_P8, KC_P9, KC_PPLS, + TD(TD_M4), TD(TD_M10), KC_P4, KC_P5, KC_P6, + TD(TD_M5), TD(TD_M11), KC_P1, KC_P2, KC_P3, KC_PENT, + TD(TD_M6), TD(TD_M12), KC_P0, KC_PDOT + ), + + [LAYER_MOD] = LAYOUT_numpad_6x6( + _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, + _______, _______, TD(TD_NUM_TOGGLE), RCTL(KC_PSLS), RCTL(KC_PAST), _______, + _______, _______, RCTL(KC_P7), RCTL(KC_P8), RCTL(KC_P9), _______, + _______, _______, RCTL(KC_P4), RCTL(KC_P5), RCTL(KC_P6), + _______, _______, RCTL(KC_P1), RCTL(KC_P2), RCTL(KC_P3), _______, + _______, _______, RCTL(KC_P0), RCTL(KC_PDOT) + ), + + [LAYER_RGB] = LAYOUT_numpad_6x6( + _______, _______, _______, RM_HUEU, RM_SATU, RM_VALU, + _______, _______, _______, RM_HUED, RM_SATD, RM_VALD, + _______, _______, _______, RM_DMOD, RM_IMOD, RM_SPDU, + _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, RM_SPDD, + _______, _______, _______, _______ + ) +}; + +// Set the layer toggle key to an indication of the active layer. This is a +// bit janky and should be done better, but I'm trying to avoid scope creep. +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (layer_state_is(LAYER_MOD) && !rgb_matrix_idle_mode()) { + // Get a hue that contrasts with current hue + uint8_t hue = rgb_matrix_get_hue() + 127; + // Make sure saturation is high enough to distiguish between hues + uint8_t sat = 255; + uint8_t val = MIN((uint16_t) rgb_matrix_get_val() + 50, 255); + RGB rgb = hsv_to_rgb((HSV) {hue, sat, val}); + rgb_matrix_set_color(_NUM_LED_INDEX, rgb.r, rgb.g, rgb.b); + } + return false; +} diff --git a/keyboards/nifty_numpad/keymaps/idle_rgb_example/rules.mk b/keyboards/nifty_numpad/keymaps/idle_rgb_example/rules.mk new file mode 100644 index 0000000000..ed2895bd20 --- /dev/null +++ b/keyboards/nifty_numpad/keymaps/idle_rgb_example/rules.mk @@ -0,0 +1,2 @@ +TAP_DANCE_ENABLE=yes +RGB_IDLE_ENABLE=yes diff --git a/keyboards/nifty_numpad/nifty_numpad.c b/keyboards/nifty_numpad/nifty_numpad.c new file mode 100644 index 0000000000..5e487fed7f --- /dev/null +++ b/keyboards/nifty_numpad/nifty_numpad.c @@ -0,0 +1,229 @@ +/* Copyright 2023 Acliad + * + * 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 + +#ifdef RGB_IDLE_ENABLE +typedef struct { + uint8_t mode; + uint8_t speed; + HSV hsv; +} rgb_matrix_state_t; + +_Static_assert(sizeof(rgb_matrix_state_t) == 5, "Invalid size for rgb_matrix_state_t"); + +typedef struct { + rgb_matrix_state_t active_rgb_matrix; + rgb_matrix_state_t idle_rgb_matrix; +} kb_config_t; + +_Static_assert(sizeof(kb_config_t) == EECONFIG_KB_DATA_SIZE, "Invalid size for kb_config_t"); + +bool rgb_idle_mode = false; +bool rgb_idle_edit_mode = false; +static rgb_matrix_state_t active_rgb_matrix; +static rgb_matrix_state_t idle_rgb_matrix; +static kb_config_t config; + +// Returns true if current RGB matrix mode is idle +bool rgb_matrix_idle_mode(void) { + return rgb_idle_mode; +} + +// Stores the current mode, HSV, and speed of the RGB matrix into state +void rgb_matrix_state_save(rgb_matrix_state_t* state) { + state->mode = rgb_matrix_get_mode(); + state->hsv = rgb_matrix_get_hsv(); + state->speed = rgb_matrix_get_speed(); +} + +// Restores the mode, HSV, and speed of the RGB matrix from previous state +void rgb_matrix_state_restore(rgb_matrix_state_t* state) { + HSV hsv = state->hsv; + rgb_matrix_mode_noeeprom(state->mode); + rgb_matrix_sethsv_noeeprom(hsv.h, hsv.s, hsv.v); + rgb_matrix_set_speed_noeeprom(state->speed); +} +#endif + +void housekeeping_task_kb(void) { +#ifdef RGB_IDLE_ENABLE + // Check if enough time has passed since last keypress to go into idle mode + if (last_input_activity_elapsed() > RGB_IDLE_TIMEOUT_MS && !rgb_idle_mode) { + rgb_matrix_state_save(&active_rgb_matrix); + rgb_idle_mode = true; + + rgb_matrix_state_restore(&idle_rgb_matrix); + } +#endif +}; + +layer_state_t layer_state_set_kb(layer_state_t state) { +#ifdef RGB_IDLE_ENABLE + // Track if the last layer was the RGB edit layer + static bool rgb_was_on = false; + + if (IS_LAYER_ON_STATE(state, LAYER_RGB)) { + rgb_was_on = true; + } + + // Not in RGB edit layer, but previously were + if (!IS_LAYER_ON_STATE(state, LAYER_RGB) && rgb_was_on) { + rgb_was_on = false; + if (rgb_idle_edit_mode) { + // If we were editing the RGB idle mode, we are done now. + // Restore to active mode + rgb_idle_edit_mode = false; + rgb_matrix_state_restore(&active_rgb_matrix); + } + // Done changing stuff, save settings in "EEPROM" + config.active_rgb_matrix = active_rgb_matrix; + config.idle_rgb_matrix = idle_rgb_matrix; + eeconfig_update_kb_datablock(&config, 0, EECONFIG_KB_DATA_SIZE); + } +#endif + + return layer_state_set_user(state); +} + +// Process custom keycodes +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { +#ifdef RGB_IDLE_ENABLE + // If we were idling and a key was pressed, restore active RGB + if (record->event.pressed) { + if (rgb_idle_mode) { + rgb_matrix_state_restore(&active_rgb_matrix); + rgb_idle_mode = false; + } + } +#endif + + switch (keycode) { +#ifdef RGB_IDLE_ENABLE + // Handle all the RGB settings + case RM_DMOD: + if (record->event.pressed) { + // Change the RGB matrix state to active if editing idle + if (rgb_idle_edit_mode) { + rgb_matrix_state_restore(&active_rgb_matrix); + rgb_idle_edit_mode = false; + } + rgb_matrix_step_noeeprom(); + rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_IMOD: + if (record->event.pressed) { + // Change the RGB matrix state to idle + if (!rgb_idle_edit_mode) { + rgb_matrix_state_restore(&idle_rgb_matrix); + rgb_idle_edit_mode = true; + } else { + rgb_matrix_step_noeeprom(); + rgb_matrix_state_save(&idle_rgb_matrix); + } + } + return false; + case RM_SATU: + if (record->event.pressed) { + rgb_matrix_increase_sat_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_SATD: + if (record->event.pressed) { + rgb_matrix_decrease_sat_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_VALU: + if (record->event.pressed) { + rgb_matrix_increase_val_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_VALD: + if (record->event.pressed) { + rgb_matrix_decrease_val_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_HUEU: + if (record->event.pressed) { + rgb_matrix_increase_hue_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_HUED: + if (record->event.pressed) { + rgb_matrix_decrease_hue_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_SPDU: + if (record->event.pressed) { + rgb_matrix_increase_speed_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; + case RM_SPDD: + if (record->event.pressed) { + rgb_matrix_decrease_speed_noeeprom(); + rgb_idle_edit_mode ? rgb_matrix_state_save(&idle_rgb_matrix) : rgb_matrix_state_save(&active_rgb_matrix); + } + return false; +#endif + } + return process_record_user(keycode, record); +}; + +void keyboard_post_init_kb(void) { +#ifdef RGB_IDLE_ENABLE + // Read in the RGB Matrices from before + eeconfig_read_kb_datablock(&config, 0, EECONFIG_KB_DATA_SIZE); + active_rgb_matrix = config.active_rgb_matrix; + idle_rgb_matrix = config.idle_rgb_matrix; + // Restore the active matrix + rgb_matrix_state_restore(&active_rgb_matrix); +#endif + + keyboard_post_init_user(); +} + +// Setup default EEPROM config values +void eeconfig_init_kb_datablock(void) { +#ifdef RGB_IDLE_ENABLE + rgb_matrix_state_t default_active_rgb_matrix; + rgb_matrix_state_t default_idle_rgb_matrix; + + default_active_rgb_matrix.mode = RGB_MATRIX_GRADIENT_UP_DOWN; + default_active_rgb_matrix.hsv = (HSV){127, 255, 100}; + default_active_rgb_matrix.speed = 127; + + default_idle_rgb_matrix.mode = RGB_MATRIX_BREATHING; + default_idle_rgb_matrix.hsv = (HSV){127, 255, 100}; + default_idle_rgb_matrix.speed = 127; + + config.active_rgb_matrix = default_active_rgb_matrix; + config.idle_rgb_matrix = default_idle_rgb_matrix; + + eeconfig_update_kb_datablock(&config, 0, EECONFIG_KB_DATA_SIZE); + +# if (EECONFIG_USER_DATA_SIZE) > 0 + eeconfig_init_user_datablock(); +# endif // EECONFIG_USER_DATA_SIZE +#endif // RGB_IDLE_ENABLE +} diff --git a/keyboards/paprikman/albacore/albacore.c b/keyboards/nifty_numpad/nifty_numpad.h similarity index 71% rename from keyboards/paprikman/albacore/albacore.c rename to keyboards/nifty_numpad/nifty_numpad.h index b6cf742a11..0e4bf8f7e3 100644 --- a/keyboards/paprikman/albacore/albacore.c +++ b/keyboards/nifty_numpad/nifty_numpad.h @@ -1,4 +1,4 @@ -/* Copyright 2021 paprikman +/* Copyright 2023 Acliad * * 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 @@ -14,17 +14,21 @@ * along with this program. If not, see . */ +#pragma once + #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3 }, - { 7, 6, 5, 4 } -}, { - { 56, 16 }, { 112, 16 }, { 168, 16 }, { 224, 16 }, - { 56, 24 }, { 112, 24 }, { 168, 24 }, { 224, 24 } -}, { - 1, 1, 1, 1, - 1, 1, 1, 1 -} }; +enum custom_keycodes { + RM_DMOD = QK_KB, + RM_IMOD +}; +#define LAYER_RGB (MAX_LAYER - 1) + +#ifdef RGB_IDLE_ENABLE + +#define RGB_IDLE_TIMEOUT_MS (10*60*1000) + +// Functions exposed by nifty_numpad.c +bool rgb_matrix_idle_mode(void); + #endif diff --git a/keyboards/nifty_numpad/post_rules.mk b/keyboards/nifty_numpad/post_rules.mk new file mode 100644 index 0000000000..be715cd22f --- /dev/null +++ b/keyboards/nifty_numpad/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(RGB_IDLE_ENABLE)), yes) + OPT_DEFS += -DRGB_IDLE_ENABLE +endif diff --git a/keyboards/nifty_numpad/readme.md b/keyboards/nifty_numpad/readme.md new file mode 100644 index 0000000000..37692dbdb0 --- /dev/null +++ b/keyboards/nifty_numpad/readme.md @@ -0,0 +1,35 @@ +# Nifty Numpad + +![Nifty Numpad](https://i.imgur.com/jfB8tfKh.png) + +Nifty Numpad is a full sized numpad with an extra row and two extra columns of macro keys. It was created because I wanted a companion to my TKL keyboard for work. My main workflow involves heavy use of ECAD programs, so the design was tailored for that, but it is generic enough to be nice for many workflows! + + +The main features are: +- Full sized numpad with row of macro/function keys on the top +- Two extra columns of macro keys +- Cherry MX style socketed switches +- Key Backlights +- 3D printable case (FDM or resin) + +### Development Information: +* Keyboard Maintainer: [Isaac Rex](https://github.com/Acliad/) +* Hardware Supported: RP2040 +* Hardware Availability: See [The GitLab Page](https://gitlab.com/Acliad/nifty-numpad) for full details + +Make example for this keyboard (after setting up your build environment): + + make nifty_numpad:default + +Flashing example for this keyboard: + + make nifty_numpad:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left) and plug in the keyboard +* **Physical reset button**: Press the `RST` button while holding the `BOOT_SEL` button on the back of the PCB diff --git a/keyboards/nightly_boards/alter/rev1/readme.md b/keyboards/nightly_boards/alter/rev1/readme.md index 81079f0646..fdef3dc05b 100644 --- a/keyboards/nightly_boards/alter/rev1/readme.md +++ b/keyboards/nightly_boards/alter/rev1/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make nightly_boards/alter/rev1:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/nightly_boards/conde60/keymaps/default/keymap.c b/keyboards/nightly_boards/conde60/keymaps/default/keymap.c index fd3e6882ab..bc4d818e4f 100644 --- a/keyboards/nightly_boards/conde60/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/conde60/keymaps/default/keymap.c @@ -50,4 +50,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -}; \ No newline at end of file +}; diff --git a/keyboards/nightly_boards/daily60/keymaps/default/keymap.c b/keyboards/nightly_boards/daily60/keymaps/default/keymap.c index cd6765355c..6f5141c323 100644 --- a/keyboards/nightly_boards/daily60/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/daily60/keymaps/default/keymap.c @@ -48,4 +48,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/nightly_boards/daily60/readme.md b/keyboards/nightly_boards/daily60/readme.md index 87e721943f..0afe78b839 100644 --- a/keyboards/nightly_boards/daily60/readme.md +++ b/keyboards/nightly_boards/daily60/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/nightly_boards/jisoo/keymaps/default/keymap.c b/keyboards/nightly_boards/jisoo/keymaps/default/keymap.c index e83c5eff08..b3d71c37f4 100644 --- a/keyboards/nightly_boards/jisoo/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/jisoo/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT ), -}; \ No newline at end of file +}; diff --git a/keyboards/nightly_boards/jisoo/readme.md b/keyboards/nightly_boards/jisoo/readme.md index 7d1354e4aa..43d956533c 100644 --- a/keyboards/nightly_boards/jisoo/readme.md +++ b/keyboards/nightly_boards/jisoo/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/nightly_boards/n60_s/config.h b/keyboards/nightly_boards/n60_s/config.h index 9e3016e53a..0f3c9b6814 100644 --- a/keyboards/nightly_boards/n60_s/config.h +++ b/keyboards/nightly_boards/n60_s/config.h @@ -18,6 +18,5 @@ along with this program. If not, see . #pragma once /* Audio */ - -#define B7_AUDIO +#define AUDIO_PIN B7 #define AUDIO_CLICKY diff --git a/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c b/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c index 3209f7ec36..35dd356883 100644 --- a/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c @@ -51,4 +51,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk b/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk +++ b/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightmare/keymaps/default/readme.md b/keyboards/nightmare/keymaps/default/readme.md index b044730cf5..ee3683eeb9 100644 --- a/keyboards/nightmare/keymaps/default/readme.md +++ b/keyboards/nightmare/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default keymap for nightmare -![Default Layout](https://imgur.com/G0Hh7F3.png) \ No newline at end of file +![Default Layout](https://imgur.com/G0Hh7F3.png) diff --git a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json index 9e99ef879a..104a4a84a6 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json +++ b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json @@ -20,7 +20,25 @@ "default": { "animation": "typing_heatmap" }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 42, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4} + ] }, "matrix_pins": { "cols": ["B6", "B1", "B3", "B2"], diff --git a/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c b/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c deleted file mode 100644 index e7807be5e8..0000000000 --- a/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2023 Ning (@ningjx) - * - * 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 "quantum.h" - -led_config_t g_led_config = { { - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9, 10, 11 }, - { 12, 13, 14, 15 } -}, { - {0,0},{75,0},{150,0},{224,0}, - {0,21},{75,21},{150,21},{224,21}, - {0,42},{75,42},{150,42},{224,42}, - {0,64},{75,64},{150,64},{224,64} -}, { - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 -} }; diff --git a/keyboards/nomis/rpi_pico_25x1/keyboard.json b/keyboards/nomis/rpi_pico_25x1/keyboard.json new file mode 100644 index 0000000000..0ac738ba87 --- /dev/null +++ b/keyboards/nomis/rpi_pico_25x1/keyboard.json @@ -0,0 +1,63 @@ +{ + "manufacturer": "uuid.uk", + "keyboard_name": "rpi pico 25x1 keyboard", + "maintainer": "nomis", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "joystick": true, + "nkro": true + }, + "joystick": { + "axes": {}, + "button_count": 25, + "driver": "digital" + }, + "matrix_pins": { + "direct": [ + ["GP0", "GP1", "GP2", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP15", "GP14", "GP13", "GP12", "GP19", "GP18", "GP17", "GP16", "GP20", "GP21", "GP22", "GP26", "GP27"] + ] + }, + "processor": "RP2040", + "url": "https://github.com/nomis/keyboard-pcb-rpi-pico-25x1", + "usb": { + "device_version": "1.0.0", + "pid": "0x5A19", + "vid": "0xFEED" + }, + "ws2812": { + "pin": "GP28" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 0, "y": 1}, + {"matrix": [0, 2], "x": 0, "y": 2}, + {"matrix": [0, 3], "x": 0, "y": 3}, + {"matrix": [0, 4], "x": 0, "y": 4}, + {"matrix": [0, 5], "x": 0, "y": 5.5}, + {"matrix": [0, 6], "x": 0, "y": 6.5}, + {"matrix": [0, 7], "x": 0, "y": 7.5}, + {"matrix": [0, 8], "x": 0, "y": 8.5}, + {"matrix": [0, 9], "x": 0, "y": 9.5}, + {"matrix": [0, 10], "x": 0, "y": 11}, + {"matrix": [0, 11], "x": 0, "y": 12}, + {"matrix": [0, 12], "x": 0, "y": 13}, + {"matrix": [0, 13], "x": 0, "y": 14}, + {"matrix": [0, 14], "x": 0, "y": 15}, + {"matrix": [0, 15], "x": 0, "y": 16.5}, + {"matrix": [0, 16], "x": 0, "y": 17.5}, + {"matrix": [0, 17], "x": 0, "y": 18.5}, + {"matrix": [0, 18], "x": 0, "y": 19.5}, + {"matrix": [0, 19], "x": 0, "y": 20.5}, + {"matrix": [0, 20], "x": 0, "y": 22}, + {"matrix": [0, 21], "x": 0, "y": 23}, + {"matrix": [0, 22], "x": 0, "y": 24}, + {"matrix": [0, 23], "x": 0, "y": 25}, + {"matrix": [0, 24], "x": 0, "y": 26} + ] + } + } +} diff --git a/keyboards/nomis/rpi_pico_25x1/keymaps/default/keymap.c b/keyboards/nomis/rpi_pico_25x1/keymaps/default/keymap.c new file mode 100644 index 0000000000..4ff6b48cc3 --- /dev/null +++ b/keyboards/nomis/rpi_pico_25x1/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +// Copyright 2025 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + JS_0, + JS_1, + JS_2, + JS_3, + JS_4, + JS_5, + JS_6, + JS_7, + JS_8, + JS_9, + JS_10, + JS_11, + JS_12, + JS_13, + JS_14, + JS_15, + JS_16, + JS_17, + JS_18, + JS_19, + JS_20, + JS_21, + JS_22, + JS_23, + JS_24 + ) +}; diff --git a/keyboards/nomis/rpi_pico_25x1/readme.md b/keyboards/nomis/rpi_pico_25x1/readme.md new file mode 100644 index 0000000000..32377ec012 --- /dev/null +++ b/keyboards/nomis/rpi_pico_25x1/readme.md @@ -0,0 +1,28 @@ +# rpi pico 25x1 + +![rpi-pico-25x1 PCB](https://i.imgur.com/eOIZH3p.png) + +Macropad keyboard with 25 keys in a single row/column powered by a Raspberry Pi +Pico. The default keymap is a 25 button joystick. + +* Keyboard Maintainer: [Simon Arlott](https://github.com/nomis) +* Hardware Supported: Raspberry Pi Pico +* Hardware Availability: Order/manufacture the [open source PCB](https://github.com/nomis/keyboard-pcb-rpi-pico-25x1) + +Make example for this keyboard (after setting up your build environment): + + make nomis/rpi_pico_25x1:default + +Flashing example for this keyboard: + + make nomis/rpi_pico_25x1: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 key and plug in the keyboard +* **Physical reset button**: Hold the BOOTSEL button on the Raspberry Pi Pico and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json index 25f7f7a533..120fdc3e76 100644 --- a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jabberwocky", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/jabberwocky/v1", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json index 784732a54a..dd22ce3d3b 100644 --- a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jabberwocky", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/jabberwocky/v2", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/kastenwagen1840/keyboard.json b/keyboards/nopunin10did/kastenwagen1840/keyboard.json index 7dea20455c..2e24077111 100644 --- a/keyboards/nopunin10did/kastenwagen1840/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen1840/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kastenwagen 1840", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/kastenwagen1840", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/kastenwagen48/keyboard.json b/keyboards/nopunin10did/kastenwagen48/keyboard.json index 0132d0fa61..82ce186b92 100644 --- a/keyboards/nopunin10did/kastenwagen48/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen48/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kastenwagen 48", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/kastenwagen48", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/railroad/rev0/keyboard.json b/keyboards/nopunin10did/railroad/rev0/keyboard.json index 92c878c571..695a5e05f3 100644 --- a/keyboards/nopunin10did/railroad/rev0/keyboard.json +++ b/keyboards/nopunin10did/railroad/rev0/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Railroad", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/railroad", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/styrkatmel/keyboard.json b/keyboards/nopunin10did/styrkatmel/keyboard.json index 033357d8f2..5b4f7fa3f4 100644 --- a/keyboards/nopunin10did/styrkatmel/keyboard.json +++ b/keyboards/nopunin10did/styrkatmel/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Styrka Atmel", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/styrkatmel", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/styrkatmel/readme.md b/keyboards/nopunin10did/styrkatmel/readme.md index df9656d1a6..a8362dc896 100644 --- a/keyboards/nopunin10did/styrkatmel/readme.md +++ b/keyboards/nopunin10did/styrkatmel/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at the top left in the macro columns (default: F1) 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`. For the default layout, hold down the rightmost 1.25u key on the bottom row, then tap the top-left key in the macro columns. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. For the default layout, hold down the rightmost 1.25u key on the bottom row, then tap the top-left key in the macro columns. diff --git a/keyboards/novelkeys/nk20/keyboard.json b/keyboards/novelkeys/nk20/keyboard.json index f2728967b4..e2560e0c30 100644 --- a/keyboards/novelkeys/nk20/keyboard.json +++ b/keyboards/novelkeys/nk20/keyboard.json @@ -66,6 +66,28 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 224, "y": 15, "flags": 1}, + {"matrix": [1, 2], "x": 149, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 75, "y": 15, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 149, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 34, "flags": 1}, + {"matrix": [3, 2], "x": 149, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 149, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 224, "y": 58, "flags": 1}, + {"matrix": [5, 2], "x": 149, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 37, "y": 64, "flags": 4} + ], "max_brightness": 210, "sleep": true }, diff --git a/keyboards/novelkeys/nk20/nk20.c b/keyboards/novelkeys/nk20/nk20.c deleted file mode 100644 index 23350e1037..0000000000 --- a/keyboards/novelkeys/nk20/nk20.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright 2022 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, NO_LED }, - { 6, 5, 4, 3 }, - { 7, 8, 9, 10 }, - { 13, 12, 11, NO_LED }, - { 14, 15, 16, 17 }, - { 19, NO_LED, 18, NO_LED }, -}, { - { 0,0 }, { 75,0 }, {149,0 }, {224,15 }, {149,15 }, { 75,15 }, { 0,15 }, { 0,27 }, { 75,27 }, {149,27 }, - {224,34 }, {149,40 }, { 75,40 }, { 0,40 }, { 0,52 }, { 75,52 }, {149,52 }, {224,58 }, {149,64 }, { 37,64 } -}, { - 1, 1, 1, - 1, 1, 1, 1, - 4, 4, 4, 1, - 4, 4, 4, - 4, 4, 4, 1, - 4, 4 -} }; -// clang-format on -#endif diff --git a/keyboards/novelkeys/nk65b/keyboard.json b/keyboards/novelkeys/nk65b/keyboard.json index 0c2794c120..74204a4413 100755 --- a/keyboards/novelkeys/nk65b/keyboard.json +++ b/keyboards/novelkeys/nk65b/keyboard.json @@ -66,6 +66,76 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 225, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 225, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 225, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 225, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"x": 225, "y": 64, "flags": 1} + ], "max_brightness": 130, "sleep": true }, diff --git a/keyboards/novelkeys/nk65b/nk65b.c b/keyboards/novelkeys/nk65b/nk65b.c index 369bab262f..400ab35ef3 100755 --- a/keyboards/novelkeys/nk65b/nk65b.c +++ b/keyboards/novelkeys/nk65b/nk65b.c @@ -28,27 +28,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) { gpio_write_pin(B3, !layer_state_cmp(state, 2)); return layer_state_set_user(state); } - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, NO_LED, 15 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 16, 43 }, - { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 61, 62, 63, 64, 65, 66 } -}, { - { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {120,0 }, {135,0 }, {150,0 }, {165,0 }, {180,0 }, {203,0 }, - {225,0 }, {225,16 }, {206,16 }, {188,16 }, {173,16 }, {158,16 }, {143,16 }, {128,16 }, {113,16 }, { 98,16 }, { 83,16 }, { 68,16 }, { 53,16 }, { 38,16 }, - { 23,16 }, { 4,16 }, { 6,32 }, { 26,32 }, { 41,32 }, { 56,32 }, { 71,32 }, { 86,32 }, {101,32 }, {116,32 }, {131,32 }, {146,32 }, {161,32 }, {176,32 }, - {201,32 }, {225,32 }, {225,48 }, {210,48 }, {189,48 }, {169,48 }, {154,48 }, {139,48 }, {124,48 }, {109,48 }, { 94,48 }, { 79,48 }, { 64,48 }, { 49,48 }, - { 34,48 }, { 9,48 }, { 2,64 }, { 21,64 }, { 39,64 }, { 96,64 }, {150,64 }, {165,64 }, {180,64 }, {195,64 }, {210,64 }, {225,64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/novelkeys/nk87b/keyboard.json b/keyboards/novelkeys/nk87b/keyboard.json index 563f502aae..2213dfa86d 100755 --- a/keyboards/novelkeys/nk87b/keyboard.json +++ b/keyboards/novelkeys/nk87b/keyboard.json @@ -66,6 +66,95 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 153, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 166, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 13], "x": 175, "y": 15, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 27, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 162, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 146, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 91, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1} + ], "max_brightness": 114, "sleep": true }, diff --git a/keyboards/novelkeys/nk87b/nk87b.c b/keyboards/novelkeys/nk87b/nk87b.c index 125b5d7404..9cd36e745f 100644 --- a/keyboards/novelkeys/nk87b/nk87b.c +++ b/keyboards/novelkeys/nk87b/nk87b.c @@ -29,30 +29,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) { gpio_write_pin(A4, !layer_state_cmp(state, 2)); return layer_state_set_user(state); } - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, - { 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17 }, - { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED, 48, 49, 50 }, - { 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 47, 51, NO_LED, NO_LED, NO_LED }, - { 64, NO_LED, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED }, - { 86, 85, 84, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, 77 }, -}, { - { 0,0 }, { 16,0 }, { 29,0 }, { 42,0 }, { 55,0 }, { 71,0 }, { 84,0 }, { 97,0 }, {110,0 }, {127,0 }, {140,0 }, {153,0 }, {166,0 }, {182,0 }, {198,0 }, {211,0 }, {224,0 }, - {224,15 }, {211,15 }, {198,15 }, {175,15 }, {156,15 }, {143,15 }, {130,15 }, {117,15 }, {104,15 }, { 91,15 }, { 78,15 }, { 65,15 }, { 52,15 }, { 39,15 }, { 26,15 }, { 13,15 }, { 0,15 }, - { 3,27 }, { 19,27 }, { 32,27 }, { 45,27 }, { 58,27 }, { 71,27 }, { 84,27 }, { 97,27 }, {110,27 }, {123,27 }, {136,27 }, {149,27 }, {162,27 }, {179,27 }, {198,27 }, {211,27 }, {224,27 }, - {174,40 }, {153,40 }, {140,40 }, {127,40 }, {114,40 }, {101,40 }, { 88,40 }, { 75,40 }, { 62,40 }, { 49,40 }, { 36,40 }, { 23,40 }, { 5,40 }, { 8,52 }, { 29,52 }, { 42,52 }, { 55,52 }, - { 68,52 }, { 81,52 }, { 94,52 }, {107,52 }, {120,52 }, {133,52 }, {146,52 }, {170,52 }, {211,52 }, {224,64 }, {211,64 }, {198,64 }, {179,64 }, {162,64 }, {146,64 }, { 91,64 }, { 36,64 }, - { 19,64 }, { 3,64 } -}, { - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c b/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c index 6f647f54f9..ce147c05bb 100644 --- a/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c @@ -15,10 +15,6 @@ */ #include QMK_KEYBOARD_H -enum my_keycodes { - RETRO_RGB = QK_USER_0 -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_ansi_tsangan( /* Base */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, @@ -34,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, - _______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______), + _______, _______, _______, RM_FLGN, _______, _______, _______, _______, _______, _______), }; @@ -50,24 +46,3 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } return false; } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case RETRO_RGB: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_INDICATOR); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } - break; - } - } - return false; // Skip all further processing of this key - default: - return true; // Process all other keycodes normally - } -} diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c b/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c index 23014881bd..77848ba7ee 100644 --- a/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk_classic_tkl_iso/keymaps/default/keymap.c @@ -15,10 +15,6 @@ */ #include QMK_KEYBOARD_H -enum my_keycodes { - RETRO_RGB = QK_USER_0 -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_tkl_iso_tsangan( /* Base */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, @@ -34,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_TOGG, RM_NEXT, RM_HUED, RM_HUEU, RM_SATD, RM_SATU, RM_VALD, RM_VALU, RM_SPDD, RM_SPDU, _______, _______, - _______, _______, _______, RETRO_RGB, _______, _______, _______, _______, _______, _______), + _______, _______, _______, RM_FLGN, _______, _______, _______, _______, _______, _______), }; @@ -50,24 +46,3 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } return false; } - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case RETRO_RGB: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_INDICATOR); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } - break; - } - } - return false; // Skip all further processing of this key - default: - return true; // Process all other keycodes normally - } -} diff --git a/keyboards/noxary/220/keymaps/default/readme.md b/keyboards/noxary/220/keymaps/default/readme.md index 40f25464a0..c3fd87ea4e 100644 --- a/keyboards/noxary/220/keymaps/default/readme.md +++ b/keyboards/noxary/220/keymaps/default/readme.md @@ -1,3 +1,3 @@ ![Noxary 220 Layout Image](https://i.imgur.com/jVQ50lt.png) -# The default keymap for Noxary 220 \ No newline at end of file +# The default keymap for Noxary 220 diff --git a/keyboards/noxary/280/keymaps/default/readme.md b/keyboards/noxary/280/keymaps/default/readme.md index 3b6bc24f32..8defe72bd0 100644 --- a/keyboards/noxary/280/keymaps/default/readme.md +++ b/keyboards/noxary/280/keymaps/default/readme.md @@ -1,3 +1,3 @@ ![Noxary 280 Layout Image](https://i.imgur.com/7Go0py2.png) -# The default keymap for Noxary 280 \ No newline at end of file +# The default keymap for Noxary 280 diff --git a/keyboards/noxary/x268/keymaps/default/keymap.c b/keyboards/noxary/x268/keymaps/default/keymap.c index bc47a72677..26fcc12e07 100644 --- a/keyboards/noxary/x268/keymaps/default/keymap.c +++ b/keyboards/noxary/x268/keymaps/default/keymap.c @@ -108,4 +108,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/nullbitsco/common/bitc_led.c b/keyboards/nullbitsco/common/bitc_led.c index 8f91e665f8..a39bad0e9b 100644 --- a/keyboards/nullbitsco/common/bitc_led.c +++ b/keyboards/nullbitsco/common/bitc_led.c @@ -34,4 +34,4 @@ void set_bitc_LED(uint8_t mode) { default: break; } -} \ No newline at end of file +} diff --git a/keyboards/nullbitsco/common/bitc_led.h b/keyboards/nullbitsco/common/bitc_led.h index c649f1c1dd..9e5a07c5f3 100644 --- a/keyboards/nullbitsco/common/bitc_led.h +++ b/keyboards/nullbitsco/common/bitc_led.h @@ -27,4 +27,4 @@ #define PIN_LED F0 -void set_bitc_LED(uint8_t mode); \ No newline at end of file +void set_bitc_LED(uint8_t mode); diff --git a/keyboards/nullbitsco/common/remote_kb.h b/keyboards/nullbitsco/common/remote_kb.h index 97d299189d..fc57b39da5 100644 --- a/keyboards/nullbitsco/common/remote_kb.h +++ b/keyboards/nullbitsco/common/remote_kb.h @@ -50,4 +50,4 @@ enum remote_macros { void matrix_init_remote_kb(void), process_record_remote_kb(uint16_t keycode, keyrecord_t *record), - matrix_scan_remote_kb(void); \ No newline at end of file + matrix_scan_remote_kb(void); diff --git a/keyboards/nullbitsco/nibble/matrix.c b/keyboards/nullbitsco/nibble/matrix.c index 7ea5a6c470..e13dd38774 100644 --- a/keyboards/nullbitsco/nibble/matrix.c +++ b/keyboards/nullbitsco/nibble/matrix.c @@ -93,4 +93,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { } return (uint8_t)changed; -} \ No newline at end of file +} diff --git a/keyboards/nullbitsco/scramble/v2/v2.h b/keyboards/nullbitsco/scramble/v2/v2.h index c86282f658..5daec11128 100644 --- a/keyboards/nullbitsco/scramble/v2/v2.h +++ b/keyboards/nullbitsco/scramble/v2/v2.h @@ -40,4 +40,4 @@ void set_scramble_LED_r_pwm(uint8_t pwm), set_scramble_LED_g_pwm(uint8_t pwm), set_scramble_LED_b_pwm(uint8_t pwm); - \ No newline at end of file + diff --git a/keyboards/nullbitsco/snap/matrix.c b/keyboards/nullbitsco/snap/matrix.c index 64b451641d..94716d4032 100644 --- a/keyboards/nullbitsco/snap/matrix.c +++ b/keyboards/nullbitsco/snap/matrix.c @@ -13,8 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "matrix.h" #include +#include "matrix.h" +#include "keyboard.h" #include "split_util.h" #include "wait.h" @@ -51,7 +52,7 @@ static void init_pins(void) { } // Set extended pin (only on right side) - if (!isLeftHand) { + if (!is_keyboard_left()) { // Set extended pin to input, pullup gpio_set_pin_input_high(MATRIX_EXT_PIN_RIGHT); } @@ -81,7 +82,7 @@ static void read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) static void read_ext_pin(matrix_row_t current_matrix[]) { // Read the state of the extended matrix pin - if (!isLeftHand) { + if (!is_keyboard_left()) { if (gpio_read_pin(MATRIX_EXT_PIN_RIGHT) == 0) { current_matrix[EXT_PIN_ROW] |= (COL_SHIFTER << EXT_PIN_COL); } else { @@ -91,7 +92,7 @@ static void read_ext_pin(matrix_row_t current_matrix[]) { } void matrix_init_custom(void) { - if (!isLeftHand) { + if (!is_keyboard_left()) { row_pins = row_pins_right; col_pins = col_pins_right; } diff --git a/keyboards/nulldesignco/null65ansi/v1/readme.md b/keyboards/nulldesignco/null65ansi/v1/readme.md index 308d4120e3..c51f665eb5 100755 --- a/keyboards/nulldesignco/null65ansi/v1/readme.md +++ b/keyboards/nulldesignco/null65ansi/v1/readme.md @@ -24,4 +24,4 @@ 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 boot button**: Hold the button labeled as "BOOT" on the back of the board or short the two pads on the front while you connect the keyboard to your computer. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/nulldesignco/null65iso/v1/readme.md b/keyboards/nulldesignco/null65iso/v1/readme.md index f7fdeac131..e73b27def1 100755 --- a/keyboards/nulldesignco/null65iso/v1/readme.md +++ b/keyboards/nulldesignco/null65iso/v1/readme.md @@ -24,4 +24,4 @@ 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 boot button**: Hold the button labeled as "BOOT" on the back of the board or short the two pads on the front while you connect the keyboard to your computer. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/nulldesignco/nullpad/v1/keyboard.json b/keyboards/nulldesignco/nullpad/v1/keyboard.json new file mode 100755 index 0000000000..e669e51d90 --- /dev/null +++ b/keyboards/nulldesignco/nullpad/v1/keyboard.json @@ -0,0 +1,126 @@ +{ + "manufacturer": "nulldesignco", + "keyboard_name": "nullpad", + "maintainer": "quark-works", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP8", "GP10"], + "rows": ["GP12", "GP25", "GP11", "GP26", "GP9", "GP21"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "flower_blooming": 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, + "riverflow": 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, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [5, 1], "x": 37, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 16, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 16, "flags": 4}, + {"matrix": [4, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 224, "y": 8, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 48, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 48, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 40, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 64, "flags": 4} + ], + "sleep": true + }, + "url": "https://nulldesignco.com/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0011", + "vid": "0x6E6C" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP18" + }, + "community_layouts": ["numpad_5x4"], + "layouts": { + "LAYOUT_numpad_5x4": { + "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": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "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": 1, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [5, 1], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 3, "h": 2} + ] + } + } +} diff --git a/keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c b/keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c new file mode 100755 index 0000000000..ac5482f4b2 --- /dev/null +++ b/keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2025 quark-works +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_numpad_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ) +}; + +bool rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().num_lock) { + rgb_matrix_set_color(16, 255, 0, 0); + } + return false; +} diff --git a/keyboards/nulldesignco/nullpad/v1/readme.md b/keyboards/nulldesignco/nullpad/v1/readme.md new file mode 100755 index 0000000000..6c3b5a401e --- /dev/null +++ b/keyboards/nulldesignco/nullpad/v1/readme.md @@ -0,0 +1,27 @@ +# nullpad v1 + +![sp](https://i.imgur.com/069rfPe.png) + +Numpad tray mount PCB with RGB per key. + +* Keyboard Maintainer: [Quark](https://github.com/quark-works) +* Hardware Supported: PCB +* Hardware Availability: https://nulldesignco.com/ + +Make example for this keyboard (after setting up your build environment): + + make nulldesignco/nullpad/v1:default + +Flashing example for this keyboard: + + make nulldesignco/nullpad/v1: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 (top left key or NumLock) and plug in the keyboard +* **Physical boot button**: Hold the button labeled as "BOOT" on the back of the board while you connect the keyboard to your computer. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/numatreus/readme.md b/keyboards/numatreus/readme.md index e945c31467..1f2c2a5a04 100644 --- a/keyboards/numatreus/readme.md +++ b/keyboards/numatreus/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make numatreus: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). \ No newline at end of file +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/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json index ebbb247035..aca9350a96 100644 --- a/keyboards/ocean/sus/keyboard.json +++ b/keyboards/ocean/sus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sus", "manufacturer": "Ocean", - "url": " ", "maintainer": "Ocean", "usb": { "vid": "0x9624", diff --git a/keyboards/om60/matrix.c b/keyboards/om60/matrix.c index 837abcdca1..b7d4116993 100644 --- a/keyboards/om60/matrix.c +++ b/keyboards/om60/matrix.c @@ -18,14 +18,6 @@ along with this program. If not, see . #include "matrix.h" #include "wait.h" -#if (MATRIX_COLS <= 8) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define ROW_SHIFTER ((uint32_t)1) -#endif - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -95,7 +87,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -123,12 +115,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/om60/readme.md b/keyboards/om60/readme.md index 5d9d096d56..9c8a650f7d 100644 --- a/keyboards/om60/readme.md +++ b/keyboards/om60/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c b/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c deleted file mode 100644 index 3fda310364..0000000000 --- a/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2021 omkbd - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, 5, 4, 3, 2, 1, 0 }, - { NO_LED, NO_LED, 6, 7, 8, 9, 10, 11 }, - { NO_LED, NO_LED, 17, 16, 15, 14, 13, 12 }, - { NO_LED, NO_LED, 18, 19, 20, 21, 22, 23 }, - { NO_LED, NO_LED, 29, 28, 27, 26, 25, 24 }, - { 37, 36, 35, 34, 33, 32, 31, 30 }, - { 38, 39, 40, 41, 42, 43, 44, 45 }, - { 53, 52, 51, 50, 49, 48, 47, 46 }, - { 54, 55, 56, 57, 58, 59, 60, 61 }, - { 69, 68, 67, 66, 65, 64, 63, 62 } -}, { - // LED Index to Physical Position - { 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 }, - { 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 }, - { 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 }, - { 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, - { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 }, - { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 }, - { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 }, { 121, 16 }, { 103, 16 }, - { 103, 32 }, { 121, 32 }, { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 }, - { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 }, - { 103, 64 }, { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 } -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; -#endif diff --git a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json index 2d912a1445..2033b0330d 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json +++ b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json @@ -15,6 +15,78 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 7], "x": 86, "y": 0, "flags": 255}, + {"matrix": [0, 6], "x": 69, "y": 0, "flags": 255}, + {"matrix": [0, 5], "x": 52, "y": 0, "flags": 255}, + {"matrix": [0, 4], "x": 34, "y": 0, "flags": 255}, + {"matrix": [0, 3], "x": 17, "y": 0, "flags": 255}, + {"matrix": [0, 2], "x": 0, "y": 0, "flags": 255}, + {"matrix": [1, 2], "x": 0, "y": 16, "flags": 255}, + {"matrix": [1, 3], "x": 17, "y": 16, "flags": 255}, + {"matrix": [1, 4], "x": 34, "y": 16, "flags": 255}, + {"matrix": [1, 5], "x": 52, "y": 16, "flags": 255}, + {"matrix": [1, 6], "x": 69, "y": 16, "flags": 255}, + {"matrix": [1, 7], "x": 86, "y": 16, "flags": 255}, + {"matrix": [2, 7], "x": 86, "y": 32, "flags": 255}, + {"matrix": [2, 6], "x": 69, "y": 32, "flags": 255}, + {"matrix": [2, 5], "x": 52, "y": 32, "flags": 255}, + {"matrix": [2, 4], "x": 34, "y": 32, "flags": 255}, + {"matrix": [2, 3], "x": 17, "y": 32, "flags": 255}, + {"matrix": [2, 2], "x": 0, "y": 32, "flags": 255}, + {"matrix": [3, 2], "x": 0, "y": 48, "flags": 255}, + {"matrix": [3, 3], "x": 17, "y": 48, "flags": 255}, + {"matrix": [3, 4], "x": 34, "y": 48, "flags": 255}, + {"matrix": [3, 5], "x": 52, "y": 48, "flags": 255}, + {"matrix": [3, 6], "x": 69, "y": 48, "flags": 255}, + {"matrix": [3, 7], "x": 86, "y": 48, "flags": 255}, + {"matrix": [4, 7], "x": 86, "y": 64, "flags": 255}, + {"matrix": [4, 6], "x": 69, "y": 64, "flags": 255}, + {"matrix": [4, 5], "x": 52, "y": 64, "flags": 255}, + {"matrix": [4, 4], "x": 34, "y": 64, "flags": 255}, + {"matrix": [4, 3], "x": 17, "y": 64, "flags": 255}, + {"matrix": [4, 2], "x": 0, "y": 64, "flags": 255}, + {"matrix": [5, 7], "x": 103, "y": 0, "flags": 255}, + {"matrix": [5, 6], "x": 121, "y": 0, "flags": 255}, + {"matrix": [5, 5], "x": 138, "y": 0, "flags": 255}, + {"matrix": [5, 4], "x": 155, "y": 0, "flags": 255}, + {"matrix": [5, 3], "x": 172, "y": 0, "flags": 255}, + {"matrix": [5, 2], "x": 190, "y": 0, "flags": 255}, + {"matrix": [5, 1], "x": 207, "y": 0, "flags": 255}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 255}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 255}, + {"matrix": [6, 1], "x": 207, "y": 16, "flags": 255}, + {"matrix": [6, 2], "x": 190, "y": 16, "flags": 255}, + {"matrix": [6, 3], "x": 172, "y": 16, "flags": 255}, + {"matrix": [6, 4], "x": 155, "y": 16, "flags": 255}, + {"matrix": [6, 5], "x": 138, "y": 16, "flags": 255}, + {"matrix": [6, 6], "x": 121, "y": 16, "flags": 255}, + {"matrix": [6, 7], "x": 103, "y": 16, "flags": 255}, + {"matrix": [7, 7], "x": 103, "y": 32, "flags": 255}, + {"matrix": [7, 6], "x": 121, "y": 32, "flags": 255}, + {"matrix": [7, 5], "x": 138, "y": 32, "flags": 255}, + {"matrix": [7, 4], "x": 155, "y": 32, "flags": 255}, + {"matrix": [7, 3], "x": 172, "y": 32, "flags": 255}, + {"matrix": [7, 2], "x": 190, "y": 32, "flags": 255}, + {"matrix": [7, 1], "x": 207, "y": 32, "flags": 255}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 255}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 255}, + {"matrix": [8, 1], "x": 207, "y": 48, "flags": 255}, + {"matrix": [8, 2], "x": 190, "y": 48, "flags": 255}, + {"matrix": [8, 3], "x": 172, "y": 48, "flags": 255}, + {"matrix": [8, 4], "x": 155, "y": 48, "flags": 255}, + {"matrix": [8, 5], "x": 138, "y": 48, "flags": 255}, + {"matrix": [8, 6], "x": 121, "y": 48, "flags": 255}, + {"matrix": [8, 7], "x": 103, "y": 48, "flags": 255}, + {"matrix": [9, 7], "x": 103, "y": 64, "flags": 255}, + {"matrix": [9, 6], "x": 121, "y": 64, "flags": 255}, + {"matrix": [9, 5], "x": 138, "y": 64, "flags": 255}, + {"matrix": [9, 4], "x": 155, "y": 64, "flags": 255}, + {"matrix": [9, 3], "x": 172, "y": 64, "flags": 255}, + {"matrix": [9, 2], "x": 190, "y": 64, "flags": 255}, + {"matrix": [9, 1], "x": 207, "y": 64, "flags": 255}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 255} + ], "split_count": [30, 40] }, "matrix_pins": { diff --git a/keyboards/orange75/readme.md b/keyboards/orange75/readme.md index 9106744062..58823e0ee8 100644 --- a/keyboards/orange75/readme.md +++ b/keyboards/orange75/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make orange75:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/org60/readme.md b/keyboards/org60/readme.md index 98a1e0315d..58d3d67fe3 100644 --- a/keyboards/org60/readme.md +++ b/keyboards/org60/readme.md @@ -24,4 +24,4 @@ Taken from [r/mk](https://www.reddit.com/r/MechanicalKeyboards/comments/6xsd5c/m MOSFET that drives the in switch LEDs is not connected to a PWM pin. (It is connected to pin F5). Fix mentioned in reddit post re-routes to pin B5. You will have to change the pin to B5 in `config.h` ## Build -To build the default keymap, simply run `make org60:default`. \ No newline at end of file +To build the default keymap, simply run `make org60:default`. diff --git a/keyboards/orthocode/readme.md b/keyboards/orthocode/readme.md index 4a2dfc01bf..ab62948487 100644 --- a/keyboards/orthocode/readme.md +++ b/keyboards/orthocode/readme.md @@ -14,4 +14,4 @@ Flashing example for this keyboard: make orthocode: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). \ No newline at end of file +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/orthodox/common/glcdfont.c b/keyboards/orthodox/common/glcdfont.c deleted file mode 100644 index d607d34b77..0000000000 --- a/keyboards/orthodox/common/glcdfont.c +++ /dev/null @@ -1,265 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, - 0x00, 0x18, 0x3C, 0x18, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, - 0x00, 0x18, 0x24, 0x18, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, - 0x30, 0x48, 0x3A, 0x06, 0x0E, - 0x26, 0x29, 0x79, 0x29, 0x26, - 0x40, 0x7F, 0x05, 0x05, 0x07, - 0x40, 0x7F, 0x05, 0x25, 0x3F, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, - 0x14, 0x22, 0x7F, 0x22, 0x14, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, - 0x06, 0x09, 0x7F, 0x01, 0x7F, - 0x00, 0x66, 0x89, 0x95, 0x6A, - 0x60, 0x60, 0x60, 0x60, 0x60, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, - 0x08, 0x04, 0x7E, 0x04, 0x08, - 0x10, 0x20, 0x7E, 0x20, 0x10, - 0x08, 0x08, 0x2A, 0x1C, 0x08, - 0x08, 0x1C, 0x2A, 0x08, 0x08, - 0x1E, 0x10, 0x10, 0x10, 0x10, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, - 0x30, 0x38, 0x3E, 0x38, 0x30, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, - 0x23, 0x13, 0x08, 0x64, 0x62, - 0x36, 0x49, 0x56, 0x20, 0x50, - 0x00, 0x08, 0x07, 0x03, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, - 0x08, 0x08, 0x3E, 0x08, 0x08, - 0x00, 0x80, 0x70, 0x30, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x60, 0x60, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, - 0x3E, 0x51, 0x49, 0x45, 0x3E, - 0x00, 0x42, 0x7F, 0x40, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, - 0x21, 0x41, 0x49, 0x4D, 0x33, - 0x18, 0x14, 0x12, 0x7F, 0x10, - 0x27, 0x45, 0x45, 0x45, 0x39, - 0x3C, 0x4A, 0x49, 0x49, 0x31, - 0x41, 0x21, 0x11, 0x09, 0x07, - 0x36, 0x49, 0x49, 0x49, 0x36, - 0x46, 0x49, 0x49, 0x29, 0x1E, - 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, - 0x14, 0x14, 0x14, 0x14, 0x14, - 0x00, 0x41, 0x22, 0x14, 0x08, - 0x02, 0x01, 0x59, 0x09, 0x06, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, - 0x7C, 0x12, 0x11, 0x12, 0x7C, - 0x7F, 0x49, 0x49, 0x49, 0x36, - 0x3E, 0x41, 0x41, 0x41, 0x22, - 0x7F, 0x41, 0x41, 0x41, 0x3E, - 0x7F, 0x49, 0x49, 0x49, 0x41, - 0x7F, 0x09, 0x09, 0x09, 0x01, - 0x3E, 0x41, 0x41, 0x51, 0x73, - 0x7F, 0x08, 0x08, 0x08, 0x7F, - 0x00, 0x41, 0x7F, 0x41, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, - 0x7F, 0x08, 0x14, 0x22, 0x41, - 0x7F, 0x40, 0x40, 0x40, 0x40, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, - 0x7F, 0x04, 0x08, 0x10, 0x7F, - 0x3E, 0x41, 0x41, 0x41, 0x3E, - 0x7F, 0x09, 0x09, 0x09, 0x06, - 0x3E, 0x41, 0x51, 0x21, 0x5E, - 0x7F, 0x09, 0x19, 0x29, 0x46, - 0x26, 0x49, 0x49, 0x49, 0x32, - 0x03, 0x01, 0x7F, 0x01, 0x03, - 0x3F, 0x40, 0x40, 0x40, 0x3F, - 0x1F, 0x20, 0x40, 0x20, 0x1F, - 0x3F, 0x40, 0x38, 0x40, 0x3F, - 0x63, 0x14, 0x08, 0x14, 0x63, - 0x03, 0x04, 0x78, 0x04, 0x03, - 0x61, 0x59, 0x49, 0x4D, 0x43, - 0x00, 0x7F, 0x41, 0x41, 0x41, - 0x02, 0x04, 0x08, 0x10, 0x20, - 0x00, 0x41, 0x41, 0x41, 0x7F, - 0x04, 0x02, 0x01, 0x02, 0x04, - 0x40, 0x40, 0x40, 0x40, 0x40, - 0x00, 0x03, 0x07, 0x08, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, - 0x7F, 0x28, 0x44, 0x44, 0x38, - 0x38, 0x44, 0x44, 0x44, 0x28, - 0x38, 0x44, 0x44, 0x28, 0x7F, - 0x38, 0x54, 0x54, 0x54, 0x18, - 0x00, 0x08, 0x7E, 0x09, 0x02, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, - 0x7F, 0x08, 0x04, 0x04, 0x78, - 0x00, 0x44, 0x7D, 0x40, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, - 0x7C, 0x08, 0x04, 0x04, 0x78, - 0x38, 0x44, 0x44, 0x44, 0x38, - 0xFC, 0x18, 0x24, 0x24, 0x18, - 0x18, 0x24, 0x24, 0x18, 0xFC, - 0x7C, 0x08, 0x04, 0x04, 0x08, - 0x48, 0x54, 0x54, 0x54, 0x24, - 0x04, 0x04, 0x3F, 0x44, 0x24, - 0x3C, 0x40, 0x40, 0x20, 0x7C, - 0x1C, 0x20, 0x40, 0x20, 0x1C, - 0x3C, 0x40, 0x30, 0x40, 0x3C, - 0x44, 0x28, 0x10, 0x28, 0x44, - 0x4C, 0x90, 0x90, 0x90, 0x7C, - 0x44, 0x64, 0x54, 0x4C, 0x44, - 0x00, 0x08, 0x36, 0x41, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, - 0x3C, 0x26, 0x23, 0x26, 0x3C, - 0x1E, 0xA1, 0xA1, 0x61, 0x12, - 0x3A, 0x40, 0x40, 0x20, 0x7A, - 0x38, 0x54, 0x54, 0x55, 0x59, - 0x21, 0x55, 0x55, 0x79, 0x41, - 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut - 0x21, 0x55, 0x54, 0x78, 0x40, - 0x20, 0x54, 0x55, 0x79, 0x40, - 0x0C, 0x1E, 0x52, 0x72, 0x12, - 0x39, 0x55, 0x55, 0x55, 0x59, - 0x39, 0x54, 0x54, 0x54, 0x59, - 0x39, 0x55, 0x54, 0x54, 0x58, - 0x00, 0x00, 0x45, 0x7C, 0x41, - 0x00, 0x02, 0x45, 0x7D, 0x42, - 0x00, 0x01, 0x45, 0x7C, 0x40, - 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut - 0xF0, 0x28, 0x25, 0x28, 0xF0, - 0x7C, 0x54, 0x55, 0x45, 0x00, - 0x20, 0x54, 0x54, 0x7C, 0x54, - 0x7C, 0x0A, 0x09, 0x7F, 0x49, - 0x32, 0x49, 0x49, 0x49, 0x32, - 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut - 0x32, 0x4A, 0x48, 0x48, 0x30, - 0x3A, 0x41, 0x41, 0x21, 0x7A, - 0x3A, 0x42, 0x40, 0x20, 0x78, - 0x00, 0x9D, 0xA0, 0xA0, 0x7D, - 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut - 0x3D, 0x40, 0x40, 0x40, 0x3D, - 0x3C, 0x24, 0xFF, 0x24, 0x24, - 0x48, 0x7E, 0x49, 0x43, 0x66, - 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, - 0xFF, 0x09, 0x29, 0xF6, 0x20, - 0xC0, 0x88, 0x7E, 0x09, 0x03, - 0x20, 0x54, 0x54, 0x79, 0x41, - 0x00, 0x00, 0x44, 0x7D, 0x41, - 0x30, 0x48, 0x48, 0x4A, 0x32, - 0x38, 0x40, 0x40, 0x22, 0x7A, - 0x00, 0x7A, 0x0A, 0x0A, 0x72, - 0x7D, 0x0D, 0x19, 0x31, 0x7D, - 0x26, 0x29, 0x29, 0x2F, 0x28, - 0x26, 0x29, 0x29, 0x29, 0x26, - 0x30, 0x48, 0x4D, 0x40, 0x20, - 0x38, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x38, - 0x2F, 0x10, 0xC8, 0xAC, 0xBA, - 0x2F, 0x10, 0x28, 0x34, 0xFA, - 0x00, 0x00, 0x7B, 0x00, 0x00, - 0x08, 0x14, 0x2A, 0x14, 0x22, - 0x22, 0x14, 0x2A, 0x14, 0x08, - 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code - 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block - 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block - 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x10, 0x10, 0x10, 0xFF, 0x00, - 0x14, 0x14, 0x14, 0xFF, 0x00, - 0x10, 0x10, 0xFF, 0x00, 0xFF, - 0x10, 0x10, 0xF0, 0x10, 0xF0, - 0x14, 0x14, 0x14, 0xFC, 0x00, - 0x14, 0x14, 0xF7, 0x00, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0xFF, - 0x14, 0x14, 0xF4, 0x04, 0xFC, - 0x14, 0x14, 0x17, 0x10, 0x1F, - 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0x1F, 0x00, - 0x10, 0x10, 0x10, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0xF0, 0x10, - 0x00, 0x00, 0x00, 0xFF, 0x10, - 0x10, 0x10, 0x10, 0x10, 0x10, - 0x10, 0x10, 0x10, 0xFF, 0x10, - 0x00, 0x00, 0x00, 0xFF, 0x14, - 0x00, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0x00, 0x1F, 0x10, 0x17, - 0x00, 0x00, 0xFC, 0x04, 0xF4, - 0x14, 0x14, 0x17, 0x10, 0x17, - 0x14, 0x14, 0xF4, 0x04, 0xF4, - 0x00, 0x00, 0xFF, 0x00, 0xF7, - 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0xF7, 0x00, 0xF7, - 0x14, 0x14, 0x14, 0x17, 0x14, - 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0xF4, 0x14, - 0x10, 0x10, 0xF0, 0x10, 0xF0, - 0x00, 0x00, 0x1F, 0x10, 0x1F, - 0x00, 0x00, 0x00, 0x1F, 0x14, - 0x00, 0x00, 0x00, 0xFC, 0x14, - 0x00, 0x00, 0xF0, 0x10, 0xF0, - 0x10, 0x10, 0xFF, 0x10, 0xFF, - 0x14, 0x14, 0x14, 0xFF, 0x14, - 0x10, 0x10, 0x10, 0x1F, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0x10, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0x38, 0x44, 0x44, 0x38, 0x44, - 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta - 0x7E, 0x02, 0x02, 0x06, 0x06, - 0x02, 0x7E, 0x02, 0x7E, 0x02, - 0x63, 0x55, 0x49, 0x41, 0x63, - 0x38, 0x44, 0x44, 0x3C, 0x04, - 0x40, 0x7E, 0x20, 0x1E, 0x20, - 0x06, 0x02, 0x7E, 0x02, 0x02, - 0x99, 0xA5, 0xE7, 0xA5, 0x99, - 0x1C, 0x2A, 0x49, 0x2A, 0x1C, - 0x4C, 0x72, 0x01, 0x72, 0x4C, - 0x30, 0x4A, 0x4D, 0x4D, 0x30, - 0x30, 0x48, 0x78, 0x48, 0x30, - 0xBC, 0x62, 0x5A, 0x46, 0x3D, - 0x3E, 0x49, 0x49, 0x49, 0x00, - 0x7E, 0x01, 0x01, 0x01, 0x7E, - 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, - 0x44, 0x44, 0x5F, 0x44, 0x44, - 0x40, 0x51, 0x4A, 0x44, 0x40, - 0x40, 0x44, 0x4A, 0x51, 0x40, - 0x00, 0x00, 0xFF, 0x01, 0x03, - 0xE0, 0x80, 0xFF, 0x00, 0x00, - 0x08, 0x08, 0x6B, 0x6B, 0x08, - 0x36, 0x12, 0x36, 0x24, 0x36, - 0x06, 0x0F, 0x09, 0x0F, 0x06, - 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x10, 0x10, 0x00, - 0x30, 0x40, 0xFF, 0x01, 0x01, - 0x00, 0x1F, 0x01, 0x01, 0x1E, - 0x00, 0x19, 0x1D, 0x17, 0x12, - 0x00, 0x3C, 0x3C, 0x3C, 0x3C, - 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP -}; diff --git a/keyboards/orthograph/keymaps/default/keymap.json b/keyboards/orthograph/keymaps/default/keymap.json index 128016b742..c5660d3ce7 100644 --- a/keyboards/orthograph/keymaps/default/keymap.json +++ b/keyboards/orthograph/keymaps/default/keymap.json @@ -21,4 +21,4 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_NEXT","KC_TRNS", "RM_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" ] ] -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/config.h b/keyboards/owlab/jelly_evolv/config.h index 95c5ca6048..e9f29e9771 100644 --- a/keyboards/owlab/jelly_evolv/config.h +++ b/keyboards/owlab/jelly_evolv/config.h @@ -20,4 +20,4 @@ /* RGB Strip*/ # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 # define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 -# define RGBLIGHT_EFFECT_BREATHE_MAX 100 \ No newline at end of file +# define RGBLIGHT_EFFECT_BREATHE_MAX 100 diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json b/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json index ec25908b60..6e0ad02084 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json @@ -90,4 +90,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c index 48dc032a4b..118fe1d73a 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md b/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md index 9bbd09d2cd..783fb8769a 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B of the PCB while plugging in the board. -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). \ No newline at end of file +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/owlab/jelly_evolv/hotswap/625u/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk index dfd7b8e208..2dab647e95 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk @@ -2,4 +2,4 @@ MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 DFU_SUFFIX_ARGS = -v 1688 -p 2220 BOOTLOADER_TYPE = stm32duino -OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json b/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json index dc62266add..35ab2ec1de 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json @@ -89,4 +89,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c index 4a0cbc599f..c1a81e1b36 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md b/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md index 31615a8486..4956ec7fe2 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B of the PCB while plugging in the board. -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). \ No newline at end of file +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/owlab/jelly_evolv/hotswap/7u/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk index dfd7b8e208..2dab647e95 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk @@ -2,4 +2,4 @@ MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 DFU_SUFFIX_ARGS = -v 1688 -p 2220 BOOTLOADER_TYPE = stm32duino -OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/jelly_evolv/info.json b/keyboards/owlab/jelly_evolv/info.json index cd67a95a8d..93ac2a4cb3 100644 --- a/keyboards/owlab/jelly_evolv/info.json +++ b/keyboards/owlab/jelly_evolv/info.json @@ -40,4 +40,4 @@ "max_brightness": 100, "saturation_steps": 8 } -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld b/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld index a40e12668a..57c50fd4eb 100644 --- a/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld +++ b/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld @@ -86,4 +86,4 @@ REGION_ALIAS("BSS_RAM", ram0); REGION_ALIAS("HEAP_RAM", ram0); /* Generic rules inclusion.*/ -INCLUDE rules.ld \ No newline at end of file +INCLUDE rules.ld diff --git a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c index ff6ab06e9c..59f1d39fc4 100644 --- a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/jelly_evolv/solder/readme.md b/keyboards/owlab/jelly_evolv/solder/readme.md index 89843dac2d..157d680ce8 100644 --- a/keyboards/owlab/jelly_evolv/solder/readme.md +++ b/keyboards/owlab/jelly_evolv/solder/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B of the PCB while plugging in the board. -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). \ No newline at end of file +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/owlab/jelly_evolv/solder/rules.mk b/keyboards/owlab/jelly_evolv/solder/rules.mk index dfd7b8e208..2dab647e95 100644 --- a/keyboards/owlab/jelly_evolv/solder/rules.mk +++ b/keyboards/owlab/jelly_evolv/solder/rules.mk @@ -2,4 +2,4 @@ MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 DFU_SUFFIX_ARGS = -v 1688 -p 2220 BOOTLOADER_TYPE = stm32duino -OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/link65/hotswap/keyboard.json b/keyboards/owlab/link65/hotswap/keyboard.json new file mode 100644 index 0000000000..5ae25cfdd8 --- /dev/null +++ b/keyboards/owlab/link65/hotswap/keyboard.json @@ -0,0 +1,107 @@ +{ + "manufacturer": "Owlab", + "keyboard_name": "LINK Hotswap", + "maintainer": "Owlab", + "bootloader": "custom", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "host": { + "default": { + "nkro": true + } + }, + "indicators": { + "caps_lock": "A0", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8", "A9", "A10", "A6", "A15"], + "rows": ["A1", "A2", "A3", "A4", "A5"] + }, + "processor": "STM32F103", + "url": "https://owlab.store", + "usb": { + "device_version": "0.0.1", + "pid": "0x4C49", + "vid": "0x4F53" + }, + "community_layouts": ["65_ansi_blocker"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "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, 13], "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, 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, 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, 4], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 7], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 8], "x": 11.25, "y": 4, "w": 1.25}, + {"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/owlab/link65/hotswap/keymaps/default/keymap.c b/keyboards/owlab/link65/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..9ad67679bb --- /dev/null +++ b/keyboards/owlab/link65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* +Copyright 2022 Owlab + +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_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 + ), + + [1] = LAYOUT_65_ansi_blocker( + 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_TRNS, KC_TRNS, KC_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/owlab/link65/hotswap/ld/STM32F103x8_0x08006000_bootloader.ld b/keyboards/owlab/link65/hotswap/ld/STM32F103x8_0x08006000_bootloader.ld new file mode 100644 index 0000000000..57c50fd4eb --- /dev/null +++ b/keyboards/owlab/link65/hotswap/ld/STM32F103x8_0x08006000_bootloader.ld @@ -0,0 +1,89 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + 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. +*/ + +/* + * STM32F103x8 memory setup for use with the STM32Duino bootloader. + */ +f103_flash_size = 128k; + +MEMORY +{ + /*Here we give 22K flash to bootloader*/ + /*0x08005800 : the application bin start address*/ + flash0 : org = 0x08006000, len = f103_flash_size - 0x6000 + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : 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/owlab/link65/hotswap/readme.md b/keyboards/owlab/link65/hotswap/readme.md new file mode 100644 index 0000000000..c16381f75d --- /dev/null +++ b/keyboards/owlab/link65/hotswap/readme.md @@ -0,0 +1,23 @@ +# LINK65 - Hotswap PCB + +![LINK65](https://i.imgur.com/tbeeWsph.jpeg) + +A 65% keyboard made by Owlab. + +* Keyboard Maintainer: [Owlab](https://github.com/owlab-git) +* Hardware Supported: LINK65 Hotswap PCB +* Hardware Availability: https://owlab.store + +Make example for this keyboard (after setting up your build environment): + + make owlab/link65/hotswap:default + +Flashing example for this keyboard: + + make owlab/link65/hotswap:default:flash + +**Bootloader:** This PCB uses the stm32duino bootloader with firmware starting at address `0x08006000`. To enter bootloader mode, hold the `B` key while plugging in USB. + +> ⚠️ **QMK Toolbox is not supported.** It flashes to the wrong address (`0x08000000`) and will overwrite the bootloader, bricking the board. Use `qmk flash` or `dfu-util` directly with `-s 0x08006000:leave`. + +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/owlab/link65/hotswap/rules.mk b/keyboards/owlab/link65/hotswap/rules.mk new file mode 100644 index 0000000000..44babc1f8f --- /dev/null +++ b/keyboards/owlab/link65/hotswap/rules.mk @@ -0,0 +1,7 @@ +MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader +BOARD = STM32_F103_STM32DUINO +DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 +# PID +DFU_SUFFIX_ARGS = -v 1688 -p 2220 + +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/spring/keymaps/default/keymap.c b/keyboards/owlab/spring/keymaps/default/keymap.c index f3564883e8..63b52c60cd 100644 --- a/keyboards/owlab/spring/keymaps/default/keymap.c +++ b/keyboards/owlab/spring/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c index 79179d1661..ec27cf9b75 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.c +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -86,29 +86,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB65-dn- */ {0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB66-right- */ }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED, 65, 66 } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, - { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 210, 16 }, { 224, 16 }, - { 4, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 196, 32 }, { 224, 32 }, - { 8, 48 }, { 24, 48 }, { 40, 48 }, { 56, 48 }, { 72, 48 }, { 88, 48 }, { 104, 48 }, { 120, 48 }, { 136, 48 }, { 152, 48 }, { 168, 48 }, { 184, 48 }, { 208, 48 }, { 224, 48 }, - { 2, 64 }, { 18, 64 }, { 34, 64 }, { 82, 64 }, { 146, 64 }, { 162, 64 }, { 178, 64 }, { 210, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - - #endif bool rgb_matrix_indicators_kb(void) { diff --git a/keyboards/owlab/voice65/hotswap/keyboard.json b/keyboards/owlab/voice65/hotswap/keyboard.json index 79ca2a57ed..e31a7b5e65 100644 --- a/keyboards/owlab/voice65/hotswap/keyboard.json +++ b/keyboards/owlab/voice65/hotswap/keyboard.json @@ -63,6 +63,75 @@ "val": 128 }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 32, "flags": 0}, + {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 196, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 24, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 88, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 104, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 152, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 184, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 82, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 146, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/owlab/voice65/soldered/keyboard.json b/keyboards/owlab/voice65/soldered/keyboard.json index edd79a064f..312b612561 100644 --- a/keyboards/owlab/voice65/soldered/keyboard.json +++ b/keyboards/owlab/voice65/soldered/keyboard.json @@ -63,6 +63,79 @@ "val": 128 }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 209, "y": 0, "flags": 4}, + {"matrix": [2, 13], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 2, "y": 32, "flags": 0}, + {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 202, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 60, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 95, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 132, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c index 23144914fe..5a47de96e8 100644 --- a/keyboards/owlab/voice65/soldered/soldered.c +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -90,29 +90,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB69-dn- */ {0, SW5_CS27, SW5_CS26, SW5_CS25}, /* RGB70-right- */ }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 15, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }, - { 60, 61, 62, 63, 64, NO_LED, 65, NO_LED, NO_LED, 66, 67, 68, 69, NO_LED, 70 } -}, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0}, { 180, 0}, { 195, 0 }, { 209, 0 }, { 224, 0 }, - { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 208, 16 }, { 224, 16 }, - { 2, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 202, 32 }, { 224, 32 }, - { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, { 224, 48 }, - { 0, 64 }, { 20, 64 }, { 40, 64 }, { 60, 64 }, { 95, 64 }, { 132, 64 }, { 152, 64 }, { 172, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; - - #endif bool rgb_matrix_indicators_kb(void) { diff --git a/keyboards/pablojimenezmateo/classic48/config.h b/keyboards/pablojimenezmateo/classic48/config.h new file mode 100644 index 0000000000..8716f34b75 --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/config.h @@ -0,0 +1,23 @@ +/* Copyright 2025 Pablo Jiménez Mateo (@pablojimenezmateo) + * + * 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 EE_HANDS + +#define MK_KINETIC_SPEED +#define MOUSEKEY_INITIAL_SPEED 200 +#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 2 +#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 16 diff --git a/keyboards/pablojimenezmateo/classic48/keyboard.json b/keyboards/pablojimenezmateo/classic48/keyboard.json new file mode 100644 index 0000000000..ba65022860 --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/keyboard.json @@ -0,0 +1,152 @@ +{ + "manufacturer": "Pablo Jim\u00e9nez Mateo", + "keyboard_name": "classic48", + "maintainer": "pablojimenezmateo", + "development_board": "promicro_rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP23", "GP21", "GP16", "GP15", "GP14", "GP13"], + "rows": ["GP27", "GP26", "GP22", "GP20"] + }, + "rgb_matrix": { + "default": { + "hue": 180, + "sat": 100, + "val": 60 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 240, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 220, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 200, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 180, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 140, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 100, "y": 20, "flags": 4}, + {"matrix": [5, 0], "x": 240, "y": 20, "flags": 4}, + {"matrix": [5, 1], "x": 220, "y": 20, "flags": 4}, + {"matrix": [5, 2], "x": 200, "y": 20, "flags": 4}, + {"matrix": [5, 3], "x": 180, "y": 20, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 20, "flags": 4}, + {"matrix": [5, 5], "x": 140, "y": 20, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 80, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 100, "y": 40, "flags": 4}, + {"matrix": [6, 0], "x": 240, "y": 40, "flags": 4}, + {"matrix": [6, 1], "x": 220, "y": 40, "flags": 4}, + {"matrix": [6, 2], "x": 200, "y": 40, "flags": 4}, + {"matrix": [6, 3], "x": 180, "y": 40, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 40, "flags": 4}, + {"matrix": [6, 5], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 60, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 60, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 60, "flags": 4}, + {"matrix": [7, 0], "x": 240, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 220, "y": 60, "flags": 4}, + {"matrix": [7, 2], "x": 200, "y": 60, "flags": 4}, + {"matrix": [7, 3], "x": 180, "y": 60, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 60, "flags": 4}, + {"matrix": [7, 5], "x": 140, "y": 60, "flags": 4} + ], + "max_brightness": 200 + }, + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP28" + }, + "transport": { + "sync": { + "layer_state": true + } + } + }, + "url": "https://github.com/pablojimenezmateo/classic48", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "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": [4, 5], "x": 7, "y": 0}, + {"matrix": [4, 4], "x": 8, "y": 0}, + {"matrix": [4, 3], "x": 9, "y": 0}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 1], "x": 11, "y": 0}, + {"matrix": [4, 0], "x": 12, "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": [5, 5], "x": 7, "y": 1}, + {"matrix": [5, 4], "x": 8, "y": 1}, + {"matrix": [5, 3], "x": 9, "y": 1}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 1], "x": 11, "y": 1}, + {"matrix": [5, 0], "x": 12, "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": [6, 5], "x": 7, "y": 2}, + {"matrix": [6, 4], "x": 8, "y": 2}, + {"matrix": [6, 3], "x": 9, "y": 2}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 1], "x": 11, "y": 2}, + {"matrix": [6, 0], "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": [7, 5], "x": 7, "y": 3}, + {"matrix": [7, 4], "x": 8, "y": 3}, + {"matrix": [7, 3], "x": 9, "y": 3}, + {"matrix": [7, 2], "x": 10, "y": 3}, + {"matrix": [7, 1], "x": 11, "y": 3}, + {"matrix": [7, 0], "x": 12, "y": 3} + ] + } + } +} diff --git a/keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c b/keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c new file mode 100644 index 0000000000..20dbf6269e --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2025 Pablo Jiménez Mateo (@pablojimenezmateo) + * + * 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 + +enum layer_names { + _MAIN, + _NUMBERS, + _SYMBOLS, + _NAVIGATION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT( + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_ESCAPE, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, MO(_NUMBERS), LT(3, KC_SPC), LT(2, KC_ENTER), KC_LSFT, KC_NO, KC_LGUI, KC_NO, LCTL(KC_F) + ), + [_NUMBERS] = LAYOUT( + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_NO, + KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO, KC_NO, + KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_SYMBOLS] = LAYOUT( + KC_NO, KC_PIPE, KC_AT, KC_LCBR, KC_RCBR, KC_CIRC, KC_QUOT, KC_DQUO, KC_EQL, KC_AMPR, KC_ASTR, KC_GRV, + KC_NO, KC_EXLM, KC_EXLM, KC_LPRN, KC_RPRN, KC_DLR, KC_EXLM, KC_QUES, KC_SLSH, KC_COLN, KC_SCLN, KC_PLUS, + KC_NO, KC_HASH, KC_PERC, KC_LBRC, KC_RBRC, KC_TILD, KC_LT, KC_GT, KC_MINS, KC_UNDS, KC_BSLS, KC_PSCR, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT + ), + [_NAVIGATION] = LAYOUT( + KC_NO, KC_NO, MS_BTN4, MS_UP, MS_BTN5, KC_NO, LSFT(KC_LEFT), LALT(KC_DOWN), LALT(KC_UP), LSFT(KC_RGHT), KC_NO, KC_VOLU, + KC_NO, KC_NO, MS_LEFT, MS_DOWN, MS_RGHT, KC_LEFT_CTRL, KC_HOME, MS_BTN1, MS_BTN3, MS_BTN2, KC_END, KC_VOLD, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_BRIU, + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, KC_NO, KC_NO, MS_WHLD, MS_WHLU, KC_NO, KC_NO, KC_NO, KC_BRID + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _MAIN: + /* Yellow */ + rgb_matrix_sethsv_noeeprom(50, 255, 255); break; + case _NUMBERS: + /* Cyan */ + rgb_matrix_sethsv_noeeprom(170, 255, 255); break; + case _SYMBOLS: + /* Purple */ + rgb_matrix_sethsv_noeeprom(200, 255, 255); break; + case _NAVIGATION: + /* Green */ + rgb_matrix_sethsv_noeeprom(85, 255, 255); break; + default: + /* Off */ + rgb_matrix_sethsv_noeeprom(0, 0, 0); break; + } + return state; +} diff --git a/keyboards/pablojimenezmateo/classic48/readme.md b/keyboards/pablojimenezmateo/classic48/readme.md new file mode 100644 index 0000000000..ff3dd072c5 --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/readme.md @@ -0,0 +1,28 @@ +# pablojimenezmateo/classic48 + +![pablojimenezmateo/classic48](https://i.imgur.com/czFWWhX.jpeg) + +A custom split keyboard with 48 keys and addressable LEDs. + +* Keyboard Maintainer: [Pablo Jimenez Mateo](https://github.com/pablojimenezmateo) +* Hardware Supported: RP2040 Pro Micro +* Hardware Availability: https://github.com/pablojimenezmateo/classic48 + +Make example for this keyboard (after setting up your build environment): + + make pablojimenezmateo/classic48:default + +Flashing example for this keyboard: + + qmk flash -kb pablojimenezmateo/classic48 -km default -bl uf2-split-left + qmk flash -kb pablojimenezmateo/classic48 -km default -bl uf2-split-right + +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/pad9/keyboard.json b/keyboards/pad9/keyboard.json new file mode 100644 index 0000000000..897e21251a --- /dev/null +++ b/keyboards/pad9/keyboard.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "prkrln", + "keyboard_name": "pad9", + "maintainer": "prkrln", + "diode_direction": "COL2ROW", + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "encoder": { + "rotary": [ + {"pin_a": "GP27", "pin_b": "GP26"} + ] + }, + "matrix_pins": { + "direct": [ + ["GP6", "GP1", "GP3"], + ["GP29", "GP7", "GP4"], + ["GP28", "GP0", "GP2"] + ] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x5009", + "vid": "0x504B" + }, + "community_layouts": ["ortho_3x3"], + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "encoder": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2} + ] + } + } +} diff --git a/keyboards/pad9/keymaps/default/keymap.c b/keyboards/pad9/keymaps/default/keymap.c new file mode 100644 index 0000000000..e600cc9ae0 --- /dev/null +++ b/keyboards/pad9/keymaps/default/keymap.c @@ -0,0 +1,18 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ) +}; diff --git a/keyboards/pad9/keymaps/default/rules.mk b/keyboards/pad9/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/pad9/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/pad9/readme.md b/keyboards/pad9/readme.md new file mode 100644 index 0000000000..4450f16f93 --- /dev/null +++ b/keyboards/pad9/readme.md @@ -0,0 +1,26 @@ +# pad9 + +![pad9](https://github.com/prkrln/pad9/blob/main/pad9.jpg) +A cheap small macropad with the mcu underneath the switches. + +* Keyboard Maintainer: [prkrln](https://github.com/prkrln) +* Hardware Supported: [XAIO RP2040](https://wiki.seeedstudio.com/XIAO-RP2040) +* Hardware Availability: [Seeed](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html), [Digikey](https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/102010428/14672129) + +Make example for this keyboard (after setting up your build environment): + + make pad9:default + +Flashing example for this keyboard: + + make pad9: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 encoder or top left key and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the MCU +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/pangorin/tan67/keyboard.json b/keyboards/pangorin/tan67/keyboard.json index 3c593d846b..175cf7cfb6 100644 --- a/keyboards/pangorin/tan67/keyboard.json +++ b/keyboards/pangorin/tan67/keyboard.json @@ -241,4 +241,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/pangorin/tan67/tan67.c b/keyboards/pangorin/tan67/tan67.c deleted file mode 100644 index 08568ddcc8..0000000000 --- a/keyboards/pangorin/tan67/tan67.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2023 Pangorin - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case (LED_FLAG_UNDERGLOW): { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - } - return process_record_user(keycode, record); -} -#endif - diff --git a/keyboards/paprikman/albacore/keyboard.json b/keyboards/paprikman/albacore/keyboard.json index 8706c67bcd..13862f4354 100644 --- a/keyboards/paprikman/albacore/keyboard.json +++ b/keyboards/paprikman/albacore/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Albacore", "manufacturer": "paprikman", - "url": "https://github.com/paprikman/qmk_firmware/tree/master/keyboards/paprikman/albacore", "maintainer": "paprikman", "usb": { "vid": "0x736D", @@ -10,6 +9,16 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"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, 3], "x": 0, "y": 64, "flags": 1}, + {"matrix": [1, 2], "x": 75, "y": 64, "flags": 1}, + {"matrix": [1, 1], "x": 150, "y": 64, "flags": 1}, + {"matrix": [1, 0], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 220, "sleep": true }, diff --git a/keyboards/pearlboards/zeuspad/matrix_diagram.md b/keyboards/pearlboards/zeuspad/matrix_diagram.md index 1dde3faef8..e0e79ce56e 100644 --- a/keyboards/pearlboards/zeuspad/matrix_diagram.md +++ b/keyboards/pearlboards/zeuspad/matrix_diagram.md @@ -18,4 +18,4 @@ ┌───────┐ │50 │ 2u P0 └───────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/percent/canoe_gen2/canoe_gen2.c b/keyboards/percent/canoe_gen2/canoe_gen2.c deleted file mode 100644 index 6cbbed412d..0000000000 --- a/keyboards/percent/canoe_gen2/canoe_gen2.c +++ /dev/null @@ -1,119 +0,0 @@ -/* -Copyright 2020 Evy Dekkers - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { { - // Key Matrix to LED Index - // 15, 44, 46, 48, - // 74, 75, 76 - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 13, 31 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 30, 45, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 }, - { 64, 65, 66, NO_LED, NO_LED, NO_LED, 67, NO_LED, NO_LED, 69, 70, NO_LED, 71, 72, 73 } -}, { - // LED Index to Physical Position - { 7, 8 }, // Esc - { 22, 8 }, // 1 - { 37, 8 }, // 2 - { 52, 8 }, // 3 - { 67, 8 }, // 4 - { 82, 8 }, // 5 - { 97, 8 }, // 6 - { 112, 8 }, // 7 - { 127, 8 }, // 8 - { 142, 8 }, // 9 - { 157, 8 }, // 0 - { 172, 8 }, // - - { 187, 8 }, // = - { 202, 8 }, // split bs - { 209, 8 }, // bs - { 217, 8 }, // split bs - { 231, 8 }, // ins - { 11, 24 }, // tab - { 30, 24 }, // q - { 45, 24 }, // w - { 60, 24 }, // e - { 75, 24 }, // r - { 90, 24 }, // t - { 104, 24 }, // y - { 119, 24 }, // u - { 134, 24 }, // i - { 149, 24 }, // o - { 164, 24 }, // p - { 179, 24 }, // [ - { 194, 24 }, // ] - { 212, 24 }, // backslash - { 231, 24 }, // del - { 11, 40 }, // caps - { 34, 40 }, // a - { 49, 40 }, // s - { 64, 40 }, // d - { 79, 40 }, // f - { 94, 40 }, // g - { 108, 40 }, // h - { 123, 40 }, // j - { 138, 40 }, // k - { 153, 40 }, // l - { 168, 40 }, // ; - { 183, 40 }, // ' - { 198, 40 }, // iso hash - { 200, 40 }, // ansi enter - { 215, 32 }, // iso enter - { 231, 40 }, // pgup - { 9, 56 }, // iso shift - { 17, 56 }, // ansi shift - { 26, 56 }, // iso nubs - { 41, 56 }, // z - { 56, 56 }, // x - { 71, 56 }, // c - { 86, 56 }, // v - { 101, 56 }, // b - { 116, 56 }, // n - { 131, 56 }, // m - { 146, 56 }, // , - { 161, 56 }, // . - { 175, 56 }, // ? - { 196, 56 }, // shift - { 217, 56 }, // up - { 231, 56 }, // pgdn - { 10, 72 }, // ctrl - { 29, 72 }, // win - { 48, 72 }, // alt - { 103, 72 }, // space - { 112, 72 }, // space - { 161, 72 }, // alt - { 176, 72 }, // fn - { 202, 72 }, // left - { 217, 72 }, // down - { 231, 72 }, // right - { 7, 40 }, // top 1 - { 119, 40 }, // top 2 - { 231, 40 } // top 3 -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, - 2, 2, 2 -} }; -#endif diff --git a/keyboards/percent/canoe_gen2/keyboard.json b/keyboards/percent/canoe_gen2/keyboard.json index b6a8a47a5f..45e1817ad5 100644 --- a/keyboards/percent/canoe_gen2/keyboard.json +++ b/keyboards/percent/canoe_gen2/keyboard.json @@ -61,6 +61,85 @@ "pixel_fractal": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 16, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 16, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 16, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 16, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 16, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 16, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 16, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 195, "y": 16, "flags": 4}, + {"matrix": [0, 13], "x": 210, "y": 16, "flags": 1}, + {"x": 217, "y": 16, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 28, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 28, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 28, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 28, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 28, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 28, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 28, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 28, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 28, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 28, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 28, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 28, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 206, "y": 28, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 28, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 40, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 40, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 40, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 40, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 40, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 40, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 40, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 40, "flags": 4}, + {"x": 192, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 40, "flags": 1}, + {"x": 209, "y": 40, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 40, "flags": 1}, + {"x": 5, "y": 52, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 52, "flags": 1}, + {"matrix": [3, 1], "x": 15, "y": 52, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 52, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 52, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 52, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 52, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 52, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 52, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 52, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 52, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 52, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 52, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 52, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 52, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 133, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 220, "y": 0, "flags": 2}, + {"x": 222, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/percent/readme.md b/keyboards/percent/readme.md index 8028edf03c..f5cc8d8150 100644 --- a/keyboards/percent/readme.md +++ b/keyboards/percent/readme.md @@ -3,4 +3,4 @@ [Website](https://percent.studio/) [Facebook](https://www.facebook.com/PercentStudio.CN/) [Instagram](https://www.instagram.com/percent.studio/) -[Taobao](https://shop140162967.world.taobao.com/?spm=a1z09.1.sellercard.15.15ec3606mPki7O) \ No newline at end of file +[Taobao](https://shop140162967.world.taobao.com/?spm=a1z09.1.sellercard.15.15ec3606mPki7O) diff --git a/keyboards/percent_studio_aftermarket/keyboard.json b/keyboards/percent_studio_aftermarket/keyboard.json new file mode 100644 index 0000000000..08840fde9b --- /dev/null +++ b/keyboards/percent_studio_aftermarket/keyboard.json @@ -0,0 +1,126 @@ +{ + "manufacturer": "Mike Tihonovich", + "keyboard_name": "percent_studio_aftermarket", + "maintainer": "Jubakuba", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], + "rows": ["GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP26", "GP27", "GP28"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0004", + "vid": "0x4A4B" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 1, "y": 0, "label": "Esc"}, + {"matrix": [0, 1], "x": 2, "y": 0, "label": "F1"}, + {"matrix": [0, 2], "x": 3, "y": 0, "label": "F2"}, + {"matrix": [0, 3], "x": 4, "y": 0, "label": "F3"}, + {"matrix": [0, 4], "x": 5, "y": 0, "label": "F4"}, + {"matrix": [0, 5], "x": 6, "y": 0, "label": "F5"}, + {"matrix": [0, 6], "x": 7, "y": 0, "label": "F6"}, + {"matrix": [0, 7], "x": 8, "y": 0, "label": "F7"}, + {"matrix": [0, 8], "x": 9, "y": 0, "label": "F8"}, + {"matrix": [0, 9], "x": 10, "y": 0, "label": "F9"}, + {"matrix": [6, 2], "x": 11, "y": 0, "label": "F10"}, + {"matrix": [6, 3], "x": 12, "y": 0, "label": "F11"}, + {"matrix": [6, 4], "x": 13, "y": 0, "label": "F12"}, + {"matrix": [6, 5], "x": 14, "y": 0, "label": "F13"}, + {"matrix": [6, 6], "x": 15, "y": 0, "label": "F14"}, + {"matrix": [6, 7], "x": 16.5, "y": 0, "label": "Print Screen"}, + {"matrix": [6, 8], "x": 17.5, "y": 0, "label": "Scroll Lock"}, + {"matrix": [6, 9], "x": 18.5, "y": 0, "label": "Pause"}, + {"matrix": [1, 0], "x": 1, "y": 2, "label": "Tilde"}, + {"matrix": [1, 1], "x": 2, "y": 2, "label": "1"}, + {"matrix": [1, 2], "x": 3, "y": 2, "w": 1.5, "label": "2"}, + {"matrix": [1, 3], "x": 4, "y": 2, "label": "3"}, + {"matrix": [1, 4], "x": 5, "y": 2, "label": "4"}, + {"matrix": [1, 5], "x": 6, "y": 2, "label": "5"}, + {"matrix": [1, 6], "x": 7, "y": 2, "label": "6"}, + {"matrix": [1, 7], "x": 8, "y": 2, "label": "7"}, + {"matrix": [1, 8], "x": 9, "y": 2, "label": "8"}, + {"matrix": [1, 9], "x": 10, "y": 2, "label": "9"}, + {"matrix": [6, 0], "x": 11, "y": 2, "label": "0"}, + {"matrix": [6, 1], "x": 12, "y": 2, "label": "Minus"}, + {"matrix": [7, 0], "x": 13, "y": 2, "label": "Equals"}, + {"matrix": [7, 1], "x": 14, "y": 2, "w": 2, "label": "Backspace"}, + {"matrix": [7, 2], "x": 16.5, "y": 2, "label": "Insert"}, + {"matrix": [7, 3], "x": 17.5, "y": 2, "label": "Home"}, + {"matrix": [7, 4], "x": 18.5, "y": 2, "label": "Page Up"}, + {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5, "label": "Tab"}, + {"matrix": [2, 1], "x": 2.5, "y": 3, "label": "Q"}, + {"matrix": [2, 2], "x": 3.5, "y": 3, "label": "W"}, + {"matrix": [2, 3], "x": 4.5, "y": 3, "label": "E"}, + {"matrix": [2, 4], "x": 5.5, "y": 3, "label": "R"}, + {"matrix": [2, 5], "x": 6.5, "y": 3, "label": "T"}, + {"matrix": [2, 6], "x": 7.5, "y": 3, "label": "Y"}, + {"matrix": [2, 7], "x": 8.5, "y": 3, "label": "U"}, + {"matrix": [2, 8], "x": 9.5, "y": 3, "label": "I"}, + {"matrix": [2, 9], "x": 10.5, "y": 3, "label": "O"}, + {"matrix": [7, 5], "x": 11.5, "y": 3, "label": "P"}, + {"matrix": [7, 6], "x": 12.5, "y": 3, "label": "["}, + {"matrix": [7, 7], "x": 13.5, "y": 3, "label": "]"}, + {"matrix": [7, 8], "x": 14.5, "y": 3, "w": 1.5, "label": "\\"}, + {"matrix": [7, 9], "x": 16.5, "y": 3, "label": "Delete"}, + {"matrix": [8, 0], "x": 17.5, "y": 3, "label": "End"}, + {"matrix": [8, 1], "x": 18.5, "y": 3, "label": "Page Down"}, + {"matrix": [3, 0], "x": 1, "y": 4, "w": 1.75, "label": "Caps Lock"}, + {"matrix": [3, 1], "x": 2.75, "y": 4, "label": "A"}, + {"matrix": [3, 2], "x": 3.75, "y": 4, "label": "S"}, + {"matrix": [3, 3], "x": 4.75, "y": 4, "label": "D"}, + {"matrix": [3, 4], "x": 5.75, "y": 4, "label": "F"}, + {"matrix": [3, 5], "x": 6.75, "y": 4, "label": "G"}, + {"matrix": [3, 6], "x": 7.75, "y": 4, "label": "H"}, + {"matrix": [3, 7], "x": 8.75, "y": 4, "label": "J"}, + {"matrix": [3, 8], "x": 9.75, "y": 4, "label": "K"}, + {"matrix": [3, 9], "x": 10.75, "y": 4, "label": "L"}, + {"matrix": [8, 2], "x": 11.75, "y": 4, "label": ";"}, + {"matrix": [8, 3], "x": 12.75, "y": 4, "label": "'"}, + {"matrix": [8, 4], "x": 13.75, "y": 4, "w": 2.25, "label": "Enter"}, + {"matrix": [4, 0], "x": 1, "y": 5, "w": 2.25, "label": "Shift"}, + {"matrix": [4, 1], "x": 3.25, "y": 5, "label": "Z"}, + {"matrix": [4, 2], "x": 4.25, "y": 5, "label": "X"}, + {"matrix": [4, 3], "x": 5.25, "y": 5, "label": "C"}, + {"matrix": [4, 4], "x": 6.25, "y": 5, "label": "V"}, + {"matrix": [4, 5], "x": 7.25, "y": 5, "label": "B"}, + {"matrix": [4, 6], "x": 8.25, "y": 5, "label": "N"}, + {"matrix": [4, 7], "x": 9.25, "y": 5, "label": "M"}, + {"matrix": [4, 8], "x": 10.25, "y": 5, "label": ","}, + {"matrix": [4, 9], "x": 11.25, "y": 5, "label": "."}, + {"matrix": [8, 5], "x": 12.25, "y": 5, "label": "/"}, + {"matrix": [8, 6], "x": 13.25, "y": 5, "w": 2.75, "label": "Right Shift"}, + {"matrix": [8, 7], "x": 17.5, "y": 5, "label": "Up"}, + {"matrix": [5, 0], "x": 1, "y": 6, "w": 1.5, "label": "Ctrl"}, + {"matrix": [5, 1], "x": 2.5, "y": 6, "label": "Win"}, + {"matrix": [5, 2], "x": 3.5, "y": 6, "w": 1.5, "label": "Alt"}, + {"matrix": [5, 3], "x": 5, "y": 6, "w": 7, "label": "Space"}, + {"matrix": [5, 4], "x": 12, "y": 6, "w": 1.5, "label": "Right Alt"}, + {"matrix": [5, 5], "x": 13.5, "y": 6, "label": "Right Win"}, + {"matrix": [5, 6], "x": 14.5, "y": 6, "w": 1.5, "label": "Right Ctrl"}, + {"matrix": [5, 7], "x": 16.5, "y": 6, "label": "Left"}, + {"matrix": [5, 8], "x": 17.5, "y": 6, "label": "Down"}, + {"matrix": [5, 9], "x": 18.5, "y": 6, "label": "Right"} + ] + } + }, + "rgblight": { + "led_count": 4, + "max_brightness": 120 + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + } +} diff --git a/keyboards/percent_studio_aftermarket/keymaps/default/keymap.c b/keyboards/percent_studio_aftermarket/keymaps/default/keymap.c new file mode 100644 index 0000000000..8e8ede6572 --- /dev/null +++ b/keyboards/percent_studio_aftermarket/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│F13│F14│ │PSc│Scr│Pse│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ ├───┼───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┬───┼───┴─┬─┴───┴───┴───┴───┴───┴───┴┬──┴───┼───┬──────┤ ┌───┼───┼───┐ + * │Ctrl│GUI│ Alt │ │Alt │GUI│ Ctrl │ │ ← │ ↓ │ → │ + * └────┴───┴─────┴──────────────────────────┴──────┴───┴──────┘ └───┴───┴───┘ + */ + [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, MO(2), MO(1), KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/percent_studio_aftermarket/percent_studio_aftermarket.c b/keyboards/percent_studio_aftermarket/percent_studio_aftermarket.c new file mode 100644 index 0000000000..1e6c1a2994 --- /dev/null +++ b/keyboards/percent_studio_aftermarket/percent_studio_aftermarket.c @@ -0,0 +1,132 @@ +/* +Copyright 2026 Jubakuba (Jubakuba@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 "quantum.h" + +typedef enum { + COLOR_NONE, + COLOR_BACKSPACE, + COLOR_ALPHA, + COLOR_NUM, + COLOR_SYMBOL, + COLOR_SPACE, + COLOR_QUANTUM, + COLOR_OTHER, +} key_type_t; + +key_type_t led_history[4] = {COLOR_NONE, COLOR_NONE, COLOR_NONE, COLOR_NONE}; + +key_type_t get_key_category(uint16_t keycode) { + bool shifted = (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))); + + switch (keycode) { + case QK_BASIC ... QK_BASIC_MAX: + switch (QK_MODS_GET_BASIC_KEYCODE(keycode)) { + case KC_BSPC: + return COLOR_BACKSPACE; + case KC_A ... KC_Z: + return COLOR_ALPHA; + case KC_SPACE: + return COLOR_SPACE; + case KC_1 ... KC_0: + if (shifted) { + return COLOR_SYMBOL; + } + return COLOR_NUM; + case KC_MINUS ... KC_SLASH: + return COLOR_SYMBOL; + case KC_NO: + case KC_TRNS: + return COLOR_NONE; + default: + return COLOR_OTHER; + } + case QK_MOMENTARY ... QK_MOMENTARY_MAX: + case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: + case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: + case QK_TO ... QK_TO_MAX: + case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: + case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: + case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + return COLOR_QUANTUM; + + default: + return COLOR_OTHER; + } +} + +void update_custom_leds(void) { + bool caps_on = host_keyboard_led_state().caps_lock; + + for (uint8_t i = 0; i < 4; i++) { + if (i == 0 && caps_on) { + rgblight_sethsv_at(HSV_RED, i); + continue; + } + + switch (led_history[i]) { + case COLOR_BACKSPACE: + rgblight_sethsv_at(HSV_RED, i); + break; + case COLOR_ALPHA: + rgblight_sethsv_at(HSV_BLUE, i); + break; + case COLOR_NUM: + rgblight_sethsv_at(HSV_WHITE, i); + break; + case COLOR_SYMBOL: + rgblight_sethsv_at(HSV_YELLOW, i); + break; + case COLOR_OTHER: + rgblight_sethsv_at(HSV_ORANGE, i); + break; + case COLOR_SPACE: + rgblight_sethsv_at(HSV_GREEN, i); + break; + case COLOR_QUANTUM: + rgblight_sethsv_at(HSV_PURPLE, i); + break; + default: + rgblight_sethsv_at(HSV_BLUE, i); + break; + } + } +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + key_type_t new_color = get_key_category(keycode); + + if (new_color != COLOR_NONE) { + led_history[0] = led_history[1]; + led_history[1] = led_history[2]; + led_history[2] = led_history[3]; + + led_history[3] = new_color; + + update_custom_leds(); + } + } + return process_record_user(keycode, record); +} + +bool led_update_kb(led_t led_state) { + update_custom_leds(); + return led_update_user(led_state); +} diff --git a/keyboards/percent_studio_aftermarket/readme.md b/keyboards/percent_studio_aftermarket/readme.md new file mode 100644 index 0000000000..3c81ee0281 --- /dev/null +++ b/keyboards/percent_studio_aftermarket/readme.md @@ -0,0 +1,27 @@ +# percent_studio_aftermarket + +![percent_studio_aftermarket](https://i.imgur.com/nQAFCH0.png) + +*This code is specifically for the aftermarket QMK PCB maintained by Jubakuba that enables QMK for the Volt80 by Percent Studio. This firmware should NOT be flashed on the stock PCB. The PCB needs to be ordered using a PCB provider using the hardware link below. This PCB will fit in the Volt 80 keyboard and work as expected.* + +* Keyboard Maintainer: [Mike Tihonovich](https://github.com/Jubakuba) +* Hardware Supported: [Custom PCB](https://github.com/Jubakuba/Volt-80-Kicad) +* Hardware Availability: https://github.com/Jubakuba/Volt-80-Kicad + +Make example for this keyboard (after setting up your build environment): + + make percent_studio_aftermarket:default + +Flashing example for this keyboard: + + make percent_studio_aftermarket: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/phage_studio/pila87/keyboard.json b/keyboards/phage_studio/pila87/keyboard.json index fbdf5f637a..135a4f0a81 100644 --- a/keyboards/phage_studio/pila87/keyboard.json +++ b/keyboards/phage_studio/pila87/keyboard.json @@ -62,6 +62,99 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 7], "x": 110, "y": 61, "flags": 4}, + {"matrix": [5, 6], "x": 104, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 65, "y": 61, "flags": 4}, + {"matrix": [5, 3], "x": 58, "y": 61, "flags": 4}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 8}, + {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 200 }, "processor": "STM32F103", diff --git a/keyboards/phage_studio/pila87/pila87.c b/keyboards/phage_studio/pila87/pila87.c index 619623cc09..f95ce98131 100644 --- a/keyboards/phage_studio/pila87/pila87.c +++ b/keyboards/phage_studio/pila87/pila87.c @@ -23,51 +23,6 @@ #include #include -led_config_t g_led_config = { { - { 75, NO_LED, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 }, - { 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28, NO_LED, NO_LED, NO_LED }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, NO_LED, NO_LED, 26, NO_LED, 27, NO_LED }, - { 14, 13, 12, 11, 10, 9, 8, 7, NO_LED, NO_LED, 6, 5, 4, 3, 2, 1, 0 } -}, { - {224, 64}, {211, 64}, {198, 64}, {180, 64}, {164, 64}, {148, 64}, {131, 64}, {110, 61}, {104, 61}, {83 , 64}, {65 , 61}, {58 , 61}, {34 , 64}, {18 , 64}, {2 , 64}, - {8 , 52}, {29 , 52}, {42 , 52}, {55 , 52}, {68 , 52}, {81 , 52}, {94 , 52}, {107, 52}, {120, 52}, {133, 52}, {146, 52}, {170, 52}, {211, 52}, - {174, 41}, {153, 41}, {140, 41}, {127, 41}, {114, 41}, {101, 41}, {88 , 41}, {75 , 41}, {62 , 41}, {49 , 41}, {36 , 41}, {23 , 41}, {5 , 41}, - {3 , 29}, {19 , 29}, {32 , 29}, {45 , 29}, {58 , 29}, {71 , 29}, {84 , 29}, {97 , 29}, {110, 29}, {123, 29}, {136, 29}, {149, 29}, {162, 29}, {179, 29}, {198, 29}, {211, 29}, {224, 29}, - {224, 17}, {211, 17}, {198, 17}, {175, 17}, {156, 17}, {143, 17}, {130, 17}, {117, 17}, {104, 17}, {91 , 17}, {78 , 17}, {65 , 17}, {52 , 17}, {39 , 17}, {26 , 17}, {13 , 17}, {0 , 17}, - {0 , 0}, {26 , 0}, {39 , 0}, {52 , 0}, {65 , 0}, {84 , 0}, {97 , 0}, {110, 0}, {123, 0}, {143, 0}, {156, 0}, {169, 0}, {182, 0}, {198, 0}, {211, 0}, {224, 0}, -}, { - 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, -} }; - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } - } - return false; - } - return process_record_user(keycode, record); -} - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/phase_studio/titan65/hotswap/hotswap.c b/keyboards/phase_studio/titan65/hotswap/hotswap.c deleted file mode 100644 index 1bcd581785..0000000000 --- a/keyboards/phase_studio/titan65/hotswap/hotswap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, 65, 66 }, - { 51, NO_LED, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 }, - { 23, NO_LED, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, NO_LED, 36 }, - { NO_LED, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, NO_LED, 11, 10, 9 }, - { 0, 1, NO_LED, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, 4, 5, NO_LED, 6, 7, 8 } - }, { - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }, - { 224, 48 }, { 210, 48 }, { 189, 48 }, { 154, 48 }, { 139, 48 }, { 124, 48 }, { 109, 48 }, { 94, 48 }, { 79, 48 }, { 64, 48 }, { 49, 48 }, { 34, 48 }, { 22, 48 }, { 5, 48 }, - { 6, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 181, 32 }, { 201, 32 }, { 224, 32 }, - { 224, 16 }, { 206, 16 },{ 188, 16 }, { 173, 16 }, { 158, 16 }, { 143, 16 }, { 128, 16 }, { 113, 16 }, { 98, 16 }, { 83, 16 }, { 68, 16 }, { 53, 16 }, { 38, 16 }, { 22, 16 }, { 4, 16 }, - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 } - }, { - 1, 1, 1, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1 - } -}; - -#endif diff --git a/keyboards/phase_studio/titan65/hotswap/keyboard.json b/keyboards/phase_studio/titan65/hotswap/keyboard.json index c9d1b0f726..599684322a 100644 --- a/keyboards/phase_studio/titan65/hotswap/keyboard.json +++ b/keyboards/phase_studio/titan65/hotswap/keyboard.json @@ -19,6 +19,75 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 5, "y": 48, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 181, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 206, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 203, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/phdesign/phac/keymaps/default/keymap.c b/keyboards/phdesign/phac/keymaps/default/keymap.c index 630cca64a7..d21ebd9ddf 100644 --- a/keyboards/phdesign/phac/keymaps/default/keymap.c +++ b/keyboards/phdesign/phac/keymaps/default/keymap.c @@ -19,4 +19,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BL] = { ENCODER_CCW_CW(MS_UP, MS_DOWN), ENCODER_CCW_CW(MS_LEFT, MS_RGHT) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/phdesign/phac/keymaps/default/rules.mk b/keyboards/phdesign/phac/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/phdesign/phac/keymaps/default/rules.mk +++ b/keyboards/phdesign/phac/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/phrygian/ph100/keymaps/default/keymap.c b/keyboards/phrygian/ph100/keymaps/default/keymap.c index 75b93783d1..18761c0509 100644 --- a/keyboards/phrygian/ph100/keymaps/default/keymap.c +++ b/keyboards/phrygian/ph100/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_RALT, KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT) -}; \ No newline at end of file +}; diff --git a/keyboards/pimoroni/keybow2040/mcuconf.h b/keyboards/pimoroni/keybow2040/mcuconf.h index 9bfd480c7c..e4864be318 100644 --- a/keyboards/pimoroni/keybow2040/mcuconf.h +++ b/keyboards/pimoroni/keybow2040/mcuconf.h @@ -7,4 +7,4 @@ #define RP_I2C_USE_I2C0 TRUE #undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 FALSE \ No newline at end of file +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/pisces/pisces.c b/keyboards/pisces/pisces.c index ca2016280d..45c9227e90 100644 --- a/keyboards/pisces/pisces.c +++ b/keyboards/pisces/pisces.c @@ -24,4 +24,4 @@ const matrix_row_t matrix_mask[MATRIX_ROWS] = { 0b00111111, 0b00111111, 0b01111111 -}; \ No newline at end of file +}; diff --git a/keyboards/planck/light/keyboard.json b/keyboards/planck/light/keyboard.json index 413c753f92..f445cca931 100644 --- a/keyboards/planck/light/keyboard.json +++ b/keyboards/planck/light/keyboard.json @@ -55,6 +55,57 @@ "solid_multisplash": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 223, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 223, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 223, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 63, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 63, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 63, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 63, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 63, "flags": 1}, + {"matrix": [3, 5], "x": 101, "y": 63, "flags": 4}, + {"x": 111, "y": 63, "flags": 4}, + {"matrix": [3, 6], "x": 122, "y": 63, "flags": 4}, + {"matrix": [3, 7], "x": 142, "y": 63, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 63, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 63, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 63, "flags": 1}, + {"matrix": [3, 11], "x": 223, "y": 63, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 43487e2e21..97ea06c467 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -77,25 +77,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_14, C8_14, C7_14} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, - { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }, - { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 }, - { 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48 } -}, { - { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 }, - { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 }, - { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 }, - { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 101, 63 }, { 111, 63 }, { 122, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 }, - { 223, 63 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, - 1 -} }; - void matrix_init_kb(void) { // Turn status LED on diff --git a/keyboards/planck/rev6/keyboard.json b/keyboards/planck/rev6/keyboard.json index b0028795fe..aee39c8b3a 100644 --- a/keyboards/planck/rev6/keyboard.json +++ b/keyboards/planck/rev6/keyboard.json @@ -17,6 +17,17 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255} + ], "sleep": true }, "features": { diff --git a/keyboards/planck/rev6/rev6.c b/keyboards/planck/rev6/rev6.c index 49f7d83123..e8439b1705 100644 --- a/keyboards/planck/rev6/rev6.c +++ b/keyboards/planck/rev6/rev6.c @@ -15,33 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 - -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -49,7 +22,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, - + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/planck/rev6_drop/keyboard.json b/keyboards/planck/rev6_drop/keyboard.json index ff301f8c86..4f089f83f3 100644 --- a/keyboards/planck/rev6_drop/keyboard.json +++ b/keyboards/planck/rev6_drop/keyboard.json @@ -29,6 +29,17 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/planck/rev6_drop/rev6_drop.c b/keyboards/planck/rev6_drop/rev6_drop.c index 8f613851dc..e8439b1705 100644 --- a/keyboards/planck/rev6_drop/rev6_drop.c +++ b/keyboards/planck/rev6_drop/rev6_drop.c @@ -15,34 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 - -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -50,7 +22,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, - + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/planck/rev7/keyboard.json b/keyboards/planck/rev7/keyboard.json index 691394d5d5..3bc274b1fa 100644 --- a/keyboards/planck/rev7/keyboard.json +++ b/keyboards/planck/rev7/keyboard.json @@ -14,6 +14,17 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/planck/rev7/keymaps/default/rules.mk b/keyboards/planck/rev7/keymaps/default/rules.mk index 13fc199bb6..199bad85f3 100644 --- a/keyboards/planck/rev7/keymaps/default/rules.mk +++ b/keyboards/planck/rev7/keymaps/default/rules.mk @@ -1 +1 @@ -DEFERRED_EXEC_ENABLE = yes \ No newline at end of file +DEFERRED_EXEC_ENABLE = yes diff --git a/keyboards/planck/rev7/rev7.c b/keyboards/planck/rev7/rev7.c index bb9d0ee1e8..09fd5901c2 100644 --- a/keyboards/planck/rev7/rev7.c +++ b/keyboards/planck/rev7/rev7.c @@ -15,34 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 - -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -50,7 +22,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, - + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c index e8ac5eb4e2..5f53fd41f7 100644 --- a/keyboards/playkbtw/pk64rgb/pk64rgb.c +++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c @@ -94,4 +94,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW10_CS10, SW11_CS10, SW12_CS10}, {0, SW10_CS15, SW11_CS15, SW12_CS15} }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/playkbtw/pk64rgb/readme.md b/keyboards/playkbtw/pk64rgb/readme.md index c5061bc0cc..102efc29ca 100644 --- a/keyboards/playkbtw/pk64rgb/readme.md +++ b/keyboards/playkbtw/pk64rgb/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: You can get into bootloader by pressing the reset button from the back of PCB. -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). \ No newline at end of file +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/ploopyco/mouse/post_rules.mk b/keyboards/ploopyco/mouse/post_rules.mk index 0d1a00b89e..fab9162dc6 100644 --- a/keyboards/ploopyco/mouse/post_rules.mk +++ b/keyboards/ploopyco/mouse/post_rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/nano_2/config.h b/keyboards/ploopyco/nano_2/config.h new file mode 100644 index 0000000000..7d2b96fd8e --- /dev/null +++ b/keyboards/ploopyco/nano_2/config.h @@ -0,0 +1,33 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * + * 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 UNUSABLE_PINS \ + { GP1, GP3, GP4, GP6, GP8, GP10, GP14, GP16, GP18, GP20, GP22, GP24, GP25, GP26, GP27, GP28, GP29 } + +#define MOUSE_EXTENDED_REPORT + +#define PLOOPY_DRAGSCROLL_MOMENTARY +#define PLOOPY_DRAGSCROLL_DIVISOR_H 64.0 +#define PLOOPY_DRAGSCROLL_DIVISOR_V 64.0 + +#define PAW3222_CS_PIN GP5 +#define PAW3222_MOTION_PIN GP9 +#define PAW3222_SPI_DIVISOR 64 +#define SPI_SCK_PIN GP2 +#define SPI_MISO_PIN GP0 +#define SPI_MOSI_PIN GP7 diff --git a/keyboards/ploopyco/nano_2/info.json b/keyboards/ploopyco/nano_2/info.json new file mode 100644 index 0000000000..ad69a0c04e --- /dev/null +++ b/keyboards/ploopyco/nano_2/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "Ploopy Nano 2 Trackball", + "manufacturer": "Ploopy Corporation", + "url": "www.ploopy.co", + "maintainer": "ploopyco", + "usb": { + "vid": "0x5043", + "pid": "0x4CE5", + "device_version": "0.0.1", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "pointing_device": true + }, + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]} + ] + } + } +} diff --git a/keyboards/labbe/labbeminiv1/labbeminiv1.c b/keyboards/ploopyco/nano_2/keymaps/default/keymap.c similarity index 66% rename from keyboards/labbe/labbeminiv1/labbeminiv1.c rename to keyboards/ploopyco/nano_2/keymaps/default/keymap.c index a2ce367c5b..9fa7252a66 100644 --- a/keyboards/labbe/labbeminiv1/labbeminiv1.c +++ b/keyboards/ploopyco/nano_2/keymaps/default/keymap.c @@ -1,4 +1,8 @@ -/* +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * Copyright 2019 Hiroyuki Okada + * * 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 @@ -12,25 +16,8 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#include QMK_KEYBOARD_H -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - {NO_LED, 0, NO_LED}, - {1, 2, 3} - }, - { - // LED Index to Physical Position - {112, 0}, - {0, 64}, {112, 64}, {224, 64}, - }, - { - // LED Index to Flag - 4, - 4, 4, 4 - } +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( DRAG_SCROLL ) }; -#endif \ No newline at end of file diff --git a/keyboards/ploopyco/nano_2/readme.md b/keyboards/ploopyco/nano_2/readme.md new file mode 100644 index 0000000000..02e46570d3 --- /dev/null +++ b/keyboards/ploopyco/nano_2/readme.md @@ -0,0 +1,38 @@ +# Ploopy Nano 2 Trackball + +![Ploopyco Trackball Nano 2](https://cdn.ploopy.co/nano2-media-assets/site-photos/_MG_2495.jpg) + +It's a DIY, QMK Powered Trackball...Nano! + +* Maintainer: [PloopyCo](https://github.com/ploopyco) +* Key contributors: [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) +* Hardware Supported: RP2040 +* Hardware Availability: [Store](https://ploopy.co/nano-2), [GitHub](https://github.com/ploopyco) + +Make example for this keyboard (after setting up your build environment): + + make ploopyco/nano_2/rev2_003:default + +Flashing example for this keyboard: + + make ploopyco/nano_2/rev2_003:default:flash + +# Building Firmware + +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). + +# Triggering the Bootloader + +[Do you see those two golden holes in the board](https://ploopy.co/wp-content/uploads/2023/11/boot.jpg)? Those are called **vias**. They act exactly like a switch does. Right now, that switch is OFF. However, if you take a paperclip or a pair of metal tweezers and touch those two vias, the two vias will form an electrical connection. Effectively, that switch turns ON. + +Go ahead and connect the two vias, and then (while the vias are connected) plug in the Nano 2 board into your computer. + +The computer should recognise that a mass storage device was just plugged in. Once this is done, you should be able to drag and drop files onto the Nano 2 board, as if the board was a USB drive. Feel free to remove the tweezers or paperclip at this point. + +If you want to upload a new firmware file (a ".uf2" file, like "nano-2-awesome-version.uf2" or something), just drag it into the folder, and it'll automatically install on the Nano 2 board and restart itself, in normal operating mode. You're done! + +**TIP**: If your firmware is in some kind of strange state and uploading new firmware isn't fixing it, try uploading [a flash nuke](https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython#flash-resetting-uf2-3083182) to the Nano 2 board before flashing the new firmware. It wipes the memory of the Nano 2 board completely clean, which can help clear a few types of errors. + +# Customizing your Ploopy Nano 2 + +You can find customziation options [here](../readme.md). diff --git a/keyboards/ploopyco/nano_2/rev2_003/keyboard.json b/keyboards/ploopyco/nano_2/rev2_003/keyboard.json new file mode 100644 index 0000000000..767a6ba154 --- /dev/null +++ b/keyboards/ploopyco/nano_2/rev2_003/keyboard.json @@ -0,0 +1,7 @@ +{ + "matrix_pins": { + "direct": [ + ["GP17"] + ] + } +} diff --git a/keyboards/ploopyco/nano_2/rev2_003/readme.md b/keyboards/ploopyco/nano_2/rev2_003/readme.md new file mode 100644 index 0000000000..052a17f396 --- /dev/null +++ b/keyboards/ploopyco/nano_2/rev2_003/readme.md @@ -0,0 +1 @@ +See the main readme for more details. This is just here for when future revisions of the board are released. diff --git a/keyboards/ploopyco/nano_2/rules.mk b/keyboards/ploopyco/nano_2/rules.mk new file mode 100644 index 0000000000..e468209eba --- /dev/null +++ b/keyboards/ploopyco/nano_2/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = paw3222 diff --git a/keyboards/ploopyco/trackball/post_rules.mk b/keyboards/ploopyco/trackball/post_rules.mk index 0d1a00b89e..fab9162dc6 100644 --- a/keyboards/ploopyco/trackball/post_rules.mk +++ b/keyboards/ploopyco/trackball/post_rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/trackball/rev1_005/readme.md b/keyboards/ploopyco/trackball/rev1_005/readme.md index 980f118a10..d0578942b8 100644 --- a/keyboards/ploopyco/trackball/rev1_005/readme.md +++ b/keyboards/ploopyco/trackball/rev1_005/readme.md @@ -1,3 +1,3 @@ See the [main readme](../readme.md) for more details. -This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board. \ No newline at end of file +This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board. diff --git a/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md b/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md index ebb90d2999..b19c879936 100644 --- a/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md +++ b/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md @@ -1,3 +1,3 @@ The default keymap for the Ploopy Trackball Mini. -Note that kits bought from PloopyCo actually ship with the VIA keymap, not this one. \ No newline at end of file +Note that kits bought from PloopyCo actually ship with the VIA keymap, not this one. diff --git a/keyboards/ploopyco/trackball_thumb/post_rules.mk b/keyboards/ploopyco/trackball_thumb/post_rules.mk index 0d1a00b89e..fab9162dc6 100644 --- a/keyboards/ploopyco/trackball_thumb/post_rules.mk +++ b/keyboards/ploopyco/trackball_thumb/post_rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md index 658a71df0a..80402ab05b 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md @@ -1,3 +1,3 @@ See the [main readme](../readme.md) for more details. -This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board. \ No newline at end of file +This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board. diff --git a/keyboards/pmk/posey_split/config.h b/keyboards/pmk/posey_split/config.h index f115e5fc2c..b4089fa81e 100644 --- a/keyboards/pmk/posey_split/config.h +++ b/keyboards/pmk/posey_split/config.h @@ -15,4 +15,4 @@ #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 +#define RGBLIGHT_EFFECT_BREATHE_CENTER 2.0 //1.0 to 2.7 diff --git a/keyboards/pmk/posey_split/v4/keyboard.json b/keyboards/pmk/posey_split/v4/keyboard.json index d9f165286a..038b7a1842 100644 --- a/keyboards/pmk/posey_split/v4/keyboard.json +++ b/keyboards/pmk/posey_split/v4/keyboard.json @@ -143,4 +143,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/pmk/posey_split/v5/keyboard.json b/keyboards/pmk/posey_split/v5/keyboard.json index cc2c8f2461..9a1d544684 100644 --- a/keyboards/pmk/posey_split/v5/keyboard.json +++ b/keyboards/pmk/posey_split/v5/keyboard.json @@ -143,4 +143,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/pohjolaworks/louhi/keyboard.json b/keyboards/pohjolaworks/louhi/keyboard.json index be00368632..e4fe50a398 100644 --- a/keyboards/pohjolaworks/louhi/keyboard.json +++ b/keyboards/pohjolaworks/louhi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Louhi", "manufacturer": "Pohjola Works", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/pohjolaworks/louhi", "maintainer": "ErkHal", "usb": { "vid": "0x5057", diff --git a/keyboards/preonic/rev3/keyboard.json b/keyboards/preonic/rev3/keyboard.json index 96cebf9ea0..9babc119b0 100644 --- a/keyboards/preonic/rev3/keyboard.json +++ b/keyboards/preonic/rev3/keyboard.json @@ -26,7 +26,18 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [9, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [8, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [8, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [9, 4], "x": 77, "y": 60, "flags": 255} + ] }, "features": { "audio": true, diff --git a/keyboards/preonic/rev3/rev3.c b/keyboards/preonic/rev3/rev3.c index 5a751cbba5..12a11c98eb 100644 --- a/keyboards/preonic/rev3/rev3.c +++ b/keyboards/preonic/rev3/rev3.c @@ -15,35 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 -#endif - - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/preonic/rev3_drop/keyboard.json b/keyboards/preonic/rev3_drop/keyboard.json index 22374fa5f7..ece6bf32f9 100644 --- a/keyboards/preonic/rev3_drop/keyboard.json +++ b/keyboards/preonic/rev3_drop/keyboard.json @@ -44,7 +44,18 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [9, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [8, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [8, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [9, 4], "x": 77, "y": 60, "flags": 255} + ] }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], diff --git a/keyboards/preonic/rev3_drop/mcuconf.h b/keyboards/preonic/rev3_drop/mcuconf.h index 32c615b3a2..6a8662748b 100644 --- a/keyboards/preonic/rev3_drop/mcuconf.h +++ b/keyboards/preonic/rev3_drop/mcuconf.h @@ -42,4 +42,4 @@ // enable i2c #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/preonic/rev3_drop/rev3_drop.c b/keyboards/preonic/rev3_drop/rev3_drop.c index 5a751cbba5..12a11c98eb 100644 --- a/keyboards/preonic/rev3_drop/rev3_drop.c +++ b/keyboards/preonic/rev3_drop/rev3_drop.c @@ -15,35 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 -#endif - - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/primekb/prime_r/keymaps/default/readme.md b/keyboards/primekb/prime_r/keymaps/default/readme.md index be92dce9b1..ba8e62bd72 100644 --- a/keyboards/primekb/prime_r/keymaps/default/readme.md +++ b/keyboards/primekb/prime_r/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default Prime_R layout, with nothing committed to function layer. -# Extracted from json at https://www.primekb.com/pages/programming \ No newline at end of file +# Extracted from json at https://www.primekb.com/pages/programming diff --git a/keyboards/printedpad/halconf.h b/keyboards/printedpad/halconf.h index 0534f72da2..4c8c7c1375 100644 --- a/keyboards/printedpad/halconf.h +++ b/keyboards/printedpad/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/printedpad/keyboard.json b/keyboards/printedpad/keyboard.json index 0dca5da74d..4be16e8a1d 100644 --- a/keyboards/printedpad/keyboard.json +++ b/keyboards/printedpad/keyboard.json @@ -40,4 +40,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/program_yoink/info.json b/keyboards/program_yoink/info.json index 36a2befc70..9c8b65c878 100644 --- a/keyboards/program_yoink/info.json +++ b/keyboards/program_yoink/info.json @@ -13,4 +13,4 @@ "resync": true } } -} \ No newline at end of file +} diff --git a/keyboards/projectcain/relic/keymaps/default/rules.mk b/keyboards/projectcain/relic/keymaps/default/rules.mk index dca6713d4f..fd8f01b90a 100644 --- a/keyboards/projectcain/relic/keymaps/default/rules.mk +++ b/keyboards/projectcain/relic/keymaps/default/rules.mk @@ -1,2 +1,2 @@ ENCODER_ENABLE = yes -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/projectcain/vault35/vault35.c b/keyboards/projectcain/vault35/vault35.c index 14aac7fdf7..6485ac854d 100644 --- a/keyboards/projectcain/vault35/vault35.c +++ b/keyboards/projectcain/vault35/vault35.c @@ -16,14 +16,16 @@ #include "quantum.h" +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); } else { - tap_code(KC_PGUP); + tap_code(KC_PGUP); } } return true; -} \ No newline at end of file +} +#endif diff --git a/keyboards/projectcain/vault45/keymaps/default/rules.mk b/keyboards/projectcain/vault45/keymaps/default/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/projectcain/vault45/keymaps/default/rules.mk +++ b/keyboards/projectcain/vault45/keymaps/default/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/projectcain/vault45/vault45.c b/keyboards/projectcain/vault45/vault45.c index 05908ba9d7..673ca8586c 100644 --- a/keyboards/projectcain/vault45/vault45.c +++ b/keyboards/projectcain/vault45/vault45.c @@ -16,20 +16,22 @@ #include "quantum.h" +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); } else { - tap_code(KC_PGUP); + tap_code(KC_PGUP); } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(KC_DOWN); + tap_code(KC_DOWN); } else { tap_code(KC_UP); } } return true; } +#endif diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c index f8700f624b..7e9f9cbaa3 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c @@ -90,4 +90,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, 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_R, RGB_G, RGB_B, RGB_W, SW_cy, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/projectkb/signature65/keymaps/default/keymap.c b/keyboards/projectkb/signature65/keymaps/default/keymap.c index 9b071b77af..0ce290b8e8 100644 --- a/keyboards/projectkb/signature65/keymaps/default/keymap.c +++ b/keyboards/projectkb/signature65/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/projectkb/signature87/keymaps/default/keymap.c b/keyboards/projectkb/signature87/keymaps/default/keymap.c index c6c7adabaa..30446b1636 100644 --- a/keyboards/projectkb/signature87/keymaps/default/keymap.c +++ b/keyboards/projectkb/signature87/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/projectkb/signature87/readme.md b/keyboards/projectkb/signature87/readme.md index 3f3ca1d63e..74086985a1 100644 --- a/keyboards/projectkb/signature87/readme.md +++ b/keyboards/projectkb/signature87/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make projectkb/signature87:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/prototypist/allison_numpad/keymaps/default/readme.md b/keyboards/prototypist/allison_numpad/keymaps/default/readme.md index b6b98a1815..3579cd491b 100644 --- a/keyboards/prototypist/allison_numpad/keymaps/default/readme.md +++ b/keyboards/prototypist/allison_numpad/keymaps/default/readme.md @@ -2,4 +2,4 @@ ![NUMPAD](https://i.imgur.com/1n2pl5p.png) -![NUMPAD FN1](https://i.imgur.com/1n2pl5p.png) \ No newline at end of file +![NUMPAD FN1](https://i.imgur.com/1n2pl5p.png) diff --git a/keyboards/prototypist/oceanographer/keymaps/default/keymap.c b/keyboards/prototypist/oceanographer/keymaps/default/keymap.c index ceeb224927..b98846f37f 100644 --- a/keyboards/prototypist/oceanographer/keymaps/default/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/default/keymap.c @@ -86,4 +86,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); return state; -} \ No newline at end of file +} diff --git a/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c b/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c index 185ce52c9b..ff1410f5df 100644 --- a/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c @@ -86,4 +86,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); return state; -} \ No newline at end of file +} diff --git a/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c b/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c index 0a1d1558dd..6820d2dfff 100644 --- a/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c @@ -86,4 +86,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); return state; -} \ No newline at end of file +} diff --git a/keyboards/prototypist/oceanographer/oceanographer.c b/keyboards/prototypist/oceanographer/oceanographer.c index ad9378b75c..e16fc882f8 100644 --- a/keyboards/prototypist/oceanographer/oceanographer.c +++ b/keyboards/prototypist/oceanographer/oceanographer.c @@ -51,4 +51,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/prototypist/pt80/readme.md b/keyboards/prototypist/pt80/readme.md index a102d9d6db..66c1282db1 100644 --- a/keyboards/prototypist/pt80/readme.md +++ b/keyboards/prototypist/pt80/readme.md @@ -32,4 +32,4 @@ 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 marked `RESET0`. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/protozoa/event_horizon/keyboard.json b/keyboards/protozoa/event_horizon/keyboard.json index 29c7c94fb9..8cc17b4abc 100644 --- a/keyboards/protozoa/event_horizon/keyboard.json +++ b/keyboards/protozoa/event_horizon/keyboard.json @@ -103,4 +103,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/protozoa/p01/keymaps/default/rules.mk b/keyboards/protozoa/p01/keymaps/default/rules.mk index d0790e6c3f..3beeda7684 100644 --- a/keyboards/protozoa/p01/keymaps/default/rules.mk +++ b/keyboards/protozoa/p01/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/purin/keyboard.json b/keyboards/purin/keyboard.json index 7e06f2ede9..9e9c2a55dc 100644 --- a/keyboards/purin/keyboard.json +++ b/keyboards/purin/keyboard.json @@ -102,4 +102,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/qck75/v1/keyboard.json b/keyboards/qck75/v1/keyboard.json index d97a719a52..878d404098 100644 --- a/keyboards/qck75/v1/keyboard.json +++ b/keyboards/qck75/v1/keyboard.json @@ -126,4 +126,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk b/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk +++ b/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk b/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk +++ b/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk b/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk +++ b/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk +++ b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/quarkeys/z40/keyboard.json b/keyboards/quarkeys/z40/keyboard.json index 05d81e5b6f..0f13d8aefd 100644 --- a/keyboards/quarkeys/z40/keyboard.json +++ b/keyboards/quarkeys/z40/keyboard.json @@ -29,6 +29,55 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 11], "x": 225, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 200, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 180, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 140, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 110, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 80, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [2, 11], "x": 225, "y": 42, "flags": 1}, + {"matrix": [2, 10], "x": 200, "y": 42, "flags": 2}, + {"matrix": [2, 9], "x": 180, "y": 42, "flags": 2}, + {"matrix": [2, 8], "x": 160, "y": 42, "flags": 2}, + {"matrix": [2, 7], "x": 140, "y": 42, "flags": 2}, + {"matrix": [2, 6], "x": 120, "y": 42, "flags": 2}, + {"matrix": [2, 5], "x": 100, "y": 42, "flags": 2}, + {"matrix": [2, 4], "x": 80, "y": 42, "flags": 2}, + {"x": 60, "y": 42, "flags": 2}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 2}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 2}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [1, 11], "x": 225, "y": 21, "flags": 1}, + {"matrix": [1, 10], "x": 200, "y": 21, "flags": 2}, + {"matrix": [1, 9], "x": 180, "y": 21, "flags": 2}, + {"matrix": [1, 8], "x": 160, "y": 21, "flags": 2}, + {"matrix": [1, 7], "x": 140, "y": 21, "flags": 2}, + {"matrix": [1, 6], "x": 120, "y": 21, "flags": 2}, + {"matrix": [2, 3], "x": 100, "y": 21, "flags": 2}, + {"matrix": [1, 4], "x": 80, "y": 21, "flags": 2}, + {"matrix": [1, 3], "x": 60, "y": 21, "flags": 2}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 2}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 2}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [0, 11], "x": 225, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 200, "y": 0, "flags": 2}, + {"matrix": [0, 9], "x": 180, "y": 0, "flags": 2}, + {"matrix": [0, 8], "x": 160, "y": 0, "flags": 2}, + {"matrix": [0, 7], "x": 140, "y": 0, "flags": 2}, + {"matrix": [0, 6], "x": 120, "y": 0, "flags": 2}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 2}, + {"matrix": [0, 4], "x": 80, "y": 0, "flags": 2}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 2}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 2}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/quarkeys/z40/z40.c b/keyboards/quarkeys/z40/z40.c deleted file mode 100644 index edd8946c11..0000000000 --- a/keyboards/quarkeys/z40/z40.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -/ Copyright 2022 quarkeys -/ 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - /* - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ - { k30, k31, k32, k33, k34, k35, XXX, k36, k37, k38, k39, k3A }\ - */ - { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 }, - { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23 }, - { 22, 21, 20, 29, 18, 17, 16, 15, 14, 13, 12, 11 }, - { 10, 9, 8, 7, 6, 5, NO_LED, 4, 3, 2, 1, 0 } - }, - { // Index to Physical Position - {225, 64}, {200, 64}, {180, 64}, {160, 64}, {140, 64}, {110, 64}, { 80, 64}, { 60, 64}, { 40, 64}, { 20, 64}, { 0, 64}, - {225, 42}, {200, 42}, {180, 42}, {160, 42}, {140, 42}, {120, 42}, {100, 42}, { 80, 42}, { 60, 42}, { 40, 42}, { 20, 42}, { 0, 42}, - {225, 21}, {200, 21}, {180, 21}, {160, 21}, {140, 21}, {120, 21}, {100, 21}, { 80, 21}, { 60, 21}, { 40, 21}, { 20, 21}, { 0, 21}, - {225, 0}, {200, 0}, {180, 0}, {160, 0}, {140, 0}, {120, 0}, {100, 0}, { 80, 0}, { 60, 0}, { 40, 0}, { 20, 0}, { 0, 0} - }, - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 - } -}; -#endif diff --git a/keyboards/qvex/lynepad2/keymaps/default/keymap.c b/keyboards/qvex/lynepad2/keymaps/default/keymap.c index edb2604390..77575bc367 100644 --- a/keyboards/qvex/lynepad2/keymaps/default/keymap.c +++ b/keyboards/qvex/lynepad2/keymaps/default/keymap.c @@ -139,4 +139,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { void keyboard_post_init_user(void) { rgblight_init(); rgblight_sethue_noeeprom(RGB_HUE_LAYER0); -} \ No newline at end of file +} diff --git a/keyboards/qvex/lynepad2/keymaps/default/rules.mk b/keyboards/qvex/lynepad2/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/qvex/lynepad2/keymaps/default/rules.mk +++ b/keyboards/qvex/lynepad2/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/qvex/lynepad2/matrix.c b/keyboards/qvex/lynepad2/matrix.c index 23b22cdb69..2dacbb89a6 100644 --- a/keyboards/qvex/lynepad2/matrix.c +++ b/keyboards/qvex/lynepad2/matrix.c @@ -15,14 +15,10 @@ along with this program. If not, see . */ #include "matrix.h" -#include "wait.h" static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - static void select_row(uint8_t row) { gpio_set_pin_output(row_pins[row]); gpio_write_pin_low(row_pins[row]); @@ -59,7 +55,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) current_matrix[current_row] = 0; select_row(current_row); - wait_us(30); + matrix_io_delay(); for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { uint8_t pin_state = gpio_read_pin(col_pins[col_index]); @@ -101,14 +97,14 @@ void matrix_init_custom(void) { init_pins(); } -bool matrix_scan_custom(void) { +bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool changed = false; for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(raw_matrix, current_row); + changed |= read_cols_on_row(current_matrix, current_row); } - changed |= read_encoder_switches(raw_matrix); + changed |= read_encoder_switches(current_matrix); return changed; -} \ No newline at end of file +} diff --git a/keyboards/qvex/lynepad2/rules.mk b/keyboards/qvex/lynepad2/rules.mk index c25bdff0cf..30ce5d293b 100644 --- a/keyboards/qvex/lynepad2/rules.mk +++ b/keyboards/qvex/lynepad2/rules.mk @@ -1,2 +1,2 @@ CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/qwertlekeys/calice/keymaps/default/keymap.c b/keyboards/qwertlekeys/calice/keymaps/default/keymap.c index d9876034de..c636eff5f7 100644 --- a/keyboards/qwertlekeys/calice/keymaps/default/keymap.c +++ b/keyboards/qwertlekeys/calice/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/qwertykeys/qk100/ansi/ansi.c b/keyboards/qwertykeys/qk100/ansi/ansi.c index 93af272e00..14358b8c27 100644 --- a/keyboards/qwertykeys/qk100/ansi/ansi.c +++ b/keyboards/qwertykeys/qk100/ansi/ansi.c @@ -140,4 +140,4 @@ bool led_update_kb(led_t led_state) { rgblight_set_layer_state(1, !led_state.num_lock); } return res; -} \ No newline at end of file +} diff --git a/keyboards/qwertykeys/qk100/ansi/halconf.h b/keyboards/qwertykeys/qk100/ansi/halconf.h index 0deaa06aa2..d93551de53 100644 --- a/keyboards/qwertykeys/qk100/ansi/halconf.h +++ b/keyboards/qwertykeys/qk100/ansi/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c index ae4a72af15..7ebaeef2dc 100644 --- a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c +++ b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALD, UG_VALU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/qwertykeys/qk100/ansi/mcuconf.h b/keyboards/qwertykeys/qk100/ansi/mcuconf.h index a8228a149f..a7dfd96937 100644 --- a/keyboards/qwertykeys/qk100/ansi/mcuconf.h +++ b/keyboards/qwertykeys/qk100/ansi/mcuconf.h @@ -22,4 +22,4 @@ * I2C driver system settings. */ #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/qwertykeys/qk100/ansi/readme.md b/keyboards/qwertykeys/qk100/ansi/readme.md index d3360b0420..b197ea7802 100644 --- a/keyboards/qwertykeys/qk100/ansi/readme.md +++ b/keyboards/qwertykeys/qk100/ansi/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B on PCB while plugging in the board. -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). \ No newline at end of file +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/qwertykeys/qk100/solder/config.h b/keyboards/qwertykeys/qk100/solder/config.h index 6a16c99f05..f95049c1c0 100644 --- a/keyboards/qwertykeys/qk100/solder/config.h +++ b/keyboards/qwertykeys/qk100/solder/config.h @@ -23,4 +23,4 @@ along with this program. If not, see . /*== customize breathing effect ==*/ #define RGBLIGHT_BREATHE_TABLE_SIZE 128 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 -#define RGBLIGHT_EFFECT_BREATHE_MAX 60 \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHE_MAX 60 diff --git a/keyboards/qwertykeys/qk100/solder/keyboard.json b/keyboards/qwertykeys/qk100/solder/keyboard.json index 64f8945b7f..44f4b879e2 100644 --- a/keyboards/qwertykeys/qk100/solder/keyboard.json +++ b/keyboards/qwertykeys/qk100/solder/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c index 738f321ded..3469e5000d 100644 --- a/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c +++ b/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALD, UG_VALU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/qwertykeys/qk100/solder/readme.md b/keyboards/qwertykeys/qk100/solder/readme.md index f660fe0d42..42b93a510b 100644 --- a/keyboards/qwertykeys/qk100/solder/readme.md +++ b/keyboards/qwertykeys/qk100/solder/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B on PCB while plugging in the board. -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). \ No newline at end of file +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/qwertykeys/qk100/solder/solder.c b/keyboards/qwertykeys/qk100/solder/solder.c index 8a3e46dab7..24ca9fcf8f 100644 --- a/keyboards/qwertykeys/qk100/solder/solder.c +++ b/keyboards/qwertykeys/qk100/solder/solder.c @@ -34,4 +34,4 @@ bool led_update_kb(led_t led_state) { rgblight_set_layer_state(1, !led_state.num_lock); } return res; -} \ No newline at end of file +} diff --git a/keyboards/qwertykeys/qk65/solder/readme.md b/keyboards/qwertykeys/qk65/solder/readme.md index 8987ebc586..52d6a27a9e 100644 --- a/keyboards/qwertykeys/qk65/solder/readme.md +++ b/keyboards/qwertykeys/qk65/solder/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. -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). \ No newline at end of file +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/rarepotato8de/3x3macropad/readme.md b/keyboards/rarepotato8de/3x3macropad/readme.md index 60a5caa222..34301f1f75 100644 --- a/keyboards/rarepotato8de/3x3macropad/readme.md +++ b/keyboards/rarepotato8de/3x3macropad/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) in the matrix (the top left one below the OLED) and plug in the keyboard * **Physical reset button**: Short the two through hole pins on the back of the PCB (positioned at the rotary encoder) -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/rart/rart75m/keymaps/default/keymap.c b/keyboards/rart/rart75m/keymaps/default/keymap.c index 6c1135a44e..3656b783cc 100644 --- a/keyboards/rart/rart75m/keymaps/default/keymap.c +++ b/keyboards/rart/rart75m/keymaps/default/keymap.c @@ -50,4 +50,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/rart/rartland/keyboard.json b/keyboards/rart/rartland/keyboard.json index 158cbb8639..d5aaf59da7 100644 --- a/keyboards/rart/rartland/keyboard.json +++ b/keyboards/rart/rartland/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RARTLAND", "manufacturer": "Alabahuy", - "url": " ", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rart/rartland/keymaps/default/keymap.c b/keyboards/rart/rartland/keymaps/default/keymap.c index 658e695e1b..dcc3cf1bd7 100644 --- a/keyboards/rart/rartland/keymaps/default/keymap.c +++ b/keyboards/rart/rartland/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/rate/pistachio/rev1/readme.md b/keyboards/rate/pistachio/rev1/readme.md index eae3776935..232d708417 100644 --- a/keyboards/rate/pistachio/rev1/readme.md +++ b/keyboards/rate/pistachio/rev1/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -[Build guide](https://ratelog.net/pistachio-build-guide/) \ No newline at end of file +[Build guide](https://ratelog.net/pistachio-build-guide/) diff --git a/keyboards/rate/pistachio/rev2/readme.md b/keyboards/rate/pistachio/rev2/readme.md index 12d9f6598f..9f7593a2f2 100644 --- a/keyboards/rate/pistachio/rev2/readme.md +++ b/keyboards/rate/pistachio/rev2/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -[Build guide](https://ratelog.net/pistachio-build-guide/) \ No newline at end of file +[Build guide](https://ratelog.net/pistachio-build-guide/) diff --git a/keyboards/rate/pistachio_pro/config.h b/keyboards/rate/pistachio_pro/config.h index 309d51f79c..d0b1ddcae8 100644 --- a/keyboards/rate/pistachio_pro/config.h +++ b/keyboards/rate/pistachio_pro/config.h @@ -42,7 +42,6 @@ along with this program. If not, see . /* OLED */ #define OLED_DISPLAY_128X64 -#define OLED_FONT_H "keyboards/rate/pistachio_pro/lib/glcdfont.c" #define OLED_FONT_WIDTH 6 #define OLED_FONT_HEIGHT 6 diff --git a/keyboards/rate/pistachio_pro/lib/glcdfont.c b/keyboards/rate/pistachio_pro/lib/glcdfont.c deleted file mode 100644 index 41041f12bb..0000000000 --- a/keyboards/rate/pistachio_pro/lib/glcdfont.c +++ /dev/null @@ -1,232 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, -0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, -0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, -0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, -0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, -0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, -0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x81, -0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, -0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, -0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, -0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, -0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, -0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x03, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x03, 0x01, 0x00, 0x00, 0x00, 0x00, -0x01, 0x03, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x03, 0x01, -0x00, 0x00, 0x00, 0x07, 0x07, 0x07, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 0x07, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x07, -0x07, 0x00, 0x00, 0x00, 0x01, 0x03, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x03, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/redox/rev1/proton_c/halconf.h b/keyboards/redox/rev1/proton_c/halconf.h index 0a2498a62f..7d740817a3 100644 --- a/keyboards/redox/rev1/proton_c/halconf.h +++ b/keyboards/redox/rev1/proton_c/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_SERIAL TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/redscarf_iiplus/verb/matrix.c b/keyboards/redscarf_iiplus/verb/matrix.c old mode 100755 new mode 100644 index 886704f9ef..aab10abe17 --- a/keyboards/redscarf_iiplus/verb/matrix.c +++ b/keyboards/redscarf_iiplus/verb/matrix.c @@ -22,21 +22,18 @@ along with this program. If not, see . #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif #ifdef DIRECT_PINS @@ -47,46 +44,34 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; #endif /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif #ifdef DIRECT_PINS @@ -47,46 +44,34 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; #endif /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif #ifdef DIRECT_PINS @@ -47,46 +44,34 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; #endif /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. -*/ - +// Copyright 2020 RGBKB +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGB_MATRIX_LED_COUNT 64 #define WS2812_LED_COUNT 64 diff --git a/keyboards/rgbkb/pan/info.json b/keyboards/rgbkb/pan/info.json index ad56ba5e4b..4358881075 100644 --- a/keyboards/rgbkb/pan/info.json +++ b/keyboards/rgbkb/pan/info.json @@ -66,23 +66,71 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "custom" - }, - "rgblight": { - "led_count": 64, - "max_brightness": 120, - "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 - } + "driver": "custom", + "layout": [ + {"x": 0, "y": 0, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 9, "y": 13, "flags": 1}, + {"matrix": [0, 1], "x": 28, "y": 13, "flags": 4}, + {"matrix": [0, 2], "x": 47, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 66, "y": 13, "flags": 4}, + {"matrix": [0, 4], "x": 84, "y": 13, "flags": 4}, + {"matrix": [0, 5], "x": 104, "y": 13, "flags": 4}, + {"matrix": [0, 6], "x": 123, "y": 13, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 13, "flags": 4}, + {"matrix": [0, 8], "x": 161, "y": 13, "flags": 4}, + {"matrix": [0, 9], "x": 180, "y": 13, "flags": 4}, + {"matrix": [0, 10], "x": 199, "y": 13, "flags": 4}, + {"matrix": [0, 12], "x": 215, "y": 13, "flags": 1}, + {"matrix": [1, 11], "x": 215, "y": 26, "flags": 1}, + {"matrix": [1, 10], "x": 199, "y": 26, "flags": 4}, + {"matrix": [1, 9], "x": 180, "y": 26, "flags": 4}, + {"matrix": [1, 8], "x": 161, "y": 26, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 123, "y": 26, "flags": 4}, + {"matrix": [1, 5], "x": 104, "y": 26, "flags": 4}, + {"matrix": [1, 4], "x": 84, "y": 26, "flags": 4}, + {"matrix": [1, 3], "x": 66, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 47, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 26, "flags": 4}, + {"matrix": [1, 0], "x": 9, "y": 26, "flags": 1}, + {"matrix": [2, 0], "x": 9, "y": 38, "flags": 1}, + {"matrix": [2, 1], "x": 28, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 47, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 66, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 84, "y": 38, "flags": 4}, + {"matrix": [2, 5], "x": 104, "y": 38, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 38, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 38, "flags": 4}, + {"matrix": [2, 8], "x": 161, "y": 38, "flags": 4}, + {"matrix": [2, 9], "x": 180, "y": 38, "flags": 4}, + {"matrix": [2, 10], "x": 199, "y": 38, "flags": 4}, + {"matrix": [2, 11], "x": 215, "y": 38, "flags": 1}, + {"matrix": [3, 12], "x": 215, "y": 51, "flags": 1}, + {"matrix": [3, 10], "x": 199, "y": 51, "flags": 4}, + {"matrix": [3, 9], "x": 180, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 161, "y": 51, "flags": 4}, + {"matrix": [3, 7], "x": 142, "y": 51, "flags": 4}, + {"matrix": [3, 6], "x": 123, "y": 51, "flags": 4}, + {"matrix": [3, 5], "x": 104, "y": 51, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 51, "flags": 4}, + {"matrix": [3, 3], "x": 66, "y": 51, "flags": 4}, + {"matrix": [3, 2], "x": 47, "y": 51, "flags": 4}, + {"matrix": [3, 1], "x": 28, "y": 51, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 28, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 47, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 66, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 84, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 104, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 123, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 161, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 199, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 215, "y": 64, "flags": 1} + ] }, "layouts": { "LAYOUT_all": { diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.c b/keyboards/rgbkb/pan/keymaps/default/keymap.c deleted file mode 100644 index 3647ae2ad6..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default/keymap.c +++ /dev/null @@ -1,116 +0,0 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY, - _COLEMAK, - _FN, - _ADJ -}; - -#define FN_ESC LT(_FN, KC_ESC) -#define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_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_BSLS, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - - [_COLEMAK] = LAYOUT_all( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - - [_FN] = LAYOUT_all( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, - _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, - _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJ] = LAYOUT_all( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK - ) -}; - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("RGBKB Pan\n"), false); - oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); - switch (layer) { - case _QWERTY: - oled_write_P(PSTR("Default\n"), false); - break; - case _COLEMAK: - oled_write_P(PSTR("Colemak\n"), false); - break; - case _FN: - oled_write_P(PSTR("Function\n"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - // Or use the write_ln shortcut over adding '\n' to the end of your string - //oled_write_ln_P(PSTR("Undefined"), false); - } - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); - oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); - - return false; -} -#endif - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { // First encoder - right - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { // Second encoder - left - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.json b/keyboards/rgbkb/pan/keymaps/default/keymap.json new file mode 100644 index 0000000000..e2f50556f0 --- /dev/null +++ b/keyboards/rgbkb/pan/keymaps/default/keymap.json @@ -0,0 +1,35 @@ +{ + "keyboard": "rgbkb/pan/rev1/32a", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "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", "SC_RSPC", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT" + ], + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_ENT", + "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "SC_RSPC", "KC_ENT", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT" + ], + [ + "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_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "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", + "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______", + "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______", + "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "KC_P0", "KC_PDOT", "KC_NUM", "DF(0)", "DF(1)" + ] + ] +} diff --git a/keyboards/rgbkb/pan/keymaps/default/rules.mk b/keyboards/rgbkb/pan/keymaps/default/rules.mk deleted file mode 100644 index c4f4ee04da..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# RGB layout selection -RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips -STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this. diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c deleted file mode 100644 index 2de45d88e6..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c +++ /dev/null @@ -1,116 +0,0 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY, - _COLEMAK, - _FN, - _ADJ -}; - -#define FN_ESC LT(_FN, KC_ESC) -#define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_eee( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSLS, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - [_COLEMAK] = LAYOUT_eee( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, 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_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - [_FN] = LAYOUT_eee( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, - _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, - _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJ] = LAYOUT_eee( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK - ) -}; - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("RGBKB Pan\n"), false); - oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); - switch (layer) { - case _QWERTY: - oled_write_P(PSTR("Default\n"), false); - break; - case _COLEMAK: - oled_write_P(PSTR("Colemak\n"), false); - break; - case _FN: - oled_write_P(PSTR("Function\n"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - // Or use the write_ln shortcut over adding '\n' to the end of your string - //oled_write_ln_P(PSTR("Undefined"), false); - } - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); - oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); - - return false; -} -#endif - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { // First encoder - right - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { // Second encoder - left - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json new file mode 100644 index 0000000000..c46fc40a3d --- /dev/null +++ b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json @@ -0,0 +1,35 @@ +{ + "keyboard": "rgbkb/pan/rev1/32a", + "keymap": "default_eee", + "layout": "LAYOUT_eee", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "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_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_ENT", + "KC_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "SC_RSPC", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "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_ENT", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_PSCR", + "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_PSCR", + "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______", + "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______", + "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "KC_P0", "KC_PDOT", "KC_NUM", "DF(0)", "DF(1)" + ] + ] +} diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk b/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk deleted file mode 100644 index c4f4ee04da..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# RGB layout selection -RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips -STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this. diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c deleted file mode 100644 index b0b8bd1898..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c +++ /dev/null @@ -1,116 +0,0 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY, - _COLEMAK, - _FN, - _ADJ -}; - -#define FN_ESC LT(_FN, KC_ESC) -#define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_sss( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_ADJ),KC_RCTL - ), - - [_COLEMAK] = LAYOUT_sss( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_ADJ),KC_RCTL - ), - - [_FN] = LAYOUT_sss( - 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_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, - _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJ] = LAYOUT_sss( - 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, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, _______, QWERTY, _______, COLEMAK - ) -}; - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("RGBKB Pan\n"), false); - oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); - switch (layer) { - case _QWERTY: - oled_write_P(PSTR("Default\n"), false); - break; - case _COLEMAK: - oled_write_P(PSTR("Colemak\n"), false); - break; - case _FN: - oled_write_P(PSTR("Function\n"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - // Or use the write_ln shortcut over adding '\n' to the end of your string - //oled_write_ln_P(PSTR("Undefined"), false); - } - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); - oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); - - return false; -} -#endif - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { // First encoder - right - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { // Second encoder - left - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json new file mode 100644 index 0000000000..ab216429f0 --- /dev/null +++ b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json @@ -0,0 +1,35 @@ +{ + "keyboard": "rgbkb/pan/rev1/32a", + "keymap": "default_sss", + "layout": "LAYOUT_sss", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "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_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(3)", "KC_RCTL" + ], + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_BSPC", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "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_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(3)", "KC_RCTL" + ], + [ + "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_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "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", + "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______", + "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______", + "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "DF(0)", "_______", "DF(1)" + ] + ] +} diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk b/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk deleted file mode 100644 index c4f4ee04da..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# RGB layout selection -RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips -STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this. diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index 20cc4dd248..ce5c2ae249 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -1,34 +1,15 @@ -/* Copyright 2020 RGBKB - * - * 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 . - */ +// Copyright 2020 RGBKB +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -#include "rgb_matrix_types.h" -#if defined RGB_MATRIX_ENABLE -# if defined(KEYBOARD_rgbkb_pan_rev1) -# include "ws2812.h" +#ifdef RGB_MATRIX_ENABLE +# include "ws2812.h" -// Set an led in the buffer to a color static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { -# if defined(RGB_ENCODERS) || defined(STAGGERED_RGB_ENCODERS) - if (i == 0 || i == 1) { // if encoder LEDs, change LEDs + if (i == 0 || i == 1) { // Encoder LEDs require GBR sequence ws2812_set_color(i, g, b, r); - } else -# endif - { + } else { ws2812_set_color(i, r, g, b); } } @@ -39,74 +20,35 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = setled, .set_color_all = ws2812_set_color_all, }; -# endif +#endif -// clang-format off - led_config_t g_led_config = { { - { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 0, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 1 }, - { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED } - }, { -# ifdef STAGGERED_RGB_ENCODERS - {0, -19},{228, -19}, - {0, 0}, {14, 0}, {33, 0}, {52, 0}, {71, 0}, {90, 0}, {109, 0}, {128, 0}, {147, 0}, {166, 0}, {185, 0}, {204, 0}, {223, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {223, 57}, {204, 57}, {185, 57}, {171, 57}, {147, 57}, {128, 57}, {109, 57}, {90, 57}, {71, 57}, {52, 57}, {33, 57}, {14, 57}, {0, 57}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, -# elif defined RGB_ENCODERS - {0, -19},{228, -19}, - {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, - {0, 95},{19, 95}, //not used -# elif defined STAGGERED_LAYOUT - {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, {0, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, {0, 0}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, - {0, 95},{19, 95},//not used -# else - {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, - {0, 0},{0, 0}, {0, 0},{0, 0},//not used -# endif - }, { -# ifdef STAGGERED_RGB_ENCODERS - 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# elif defined RGB_ENCODERS - 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# elif defined STAGGERED_LAYOUT - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# else - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# endif - } }; -// clang-format on +#ifdef OLED_ENABLE +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + oled_write_P(PSTR("RGBKB Pan\n"), false); + oled_write_P(PSTR("Layer: "), false); + uint8_t layer = get_highest_layer(layer_state | default_layer_state); + switch (layer) { + case 0: + oled_write_P(PSTR("Default\n"), false); + break; + case 1: + oled_write_P(PSTR("Colemak\n"), false); + break; + case 2: + oled_write_P(PSTR("Function\n"), false); + break; + case 3: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + oled_write_P(PSTR("Undefined\n"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); + oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); + return false; +} #endif diff --git a/keyboards/rgbkb/pan/post_rules.mk b/keyboards/rgbkb/pan/post_rules.mk deleted file mode 100644 index afa3b555b2..0000000000 --- a/keyboards/rgbkb/pan/post_rules.mk +++ /dev/null @@ -1,28 +0,0 @@ -RGB_MATRIX_KEYPRESSES ?= no # Enable reactive per-key effects. -RGB_MATRIX_FRAMEBUFFER_EFFECTS ?= no # Enable frame buffer effects like the typing heatmap. - -# RGB layout selection -STAGGERED_LAYOUT ?= no # If you soldered R1-A12 and R4-A12, enable this. -RGB_ENCODERS ?= yes # For RGB encoders, solder on both WS2811 chips - -ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) - OPT_DEFS += -DRGB_MATRIX_KEYPRESSES -endif - -ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes) - OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS -endif - -ifeq ($(strip $(STAGGERED_LAYOUT)), yes) - OPT_DEFS += -DSTAGGERED_LAYOUT -endif - -ifeq ($(strip $(RGB_ENCODERS)), yes) - OPT_DEFS += -DRGB_ENCODERS -endif - -ifeq ($(strip $(RGB_ENCODERS)), yes) - ifeq ($(strip $(STAGGERED_LAYOUT)), yes) - OPT_DEFS += -DSTAGGERED_RGB_ENCODERS=$(strip $(STAGGERED_RGB_ENCODERS)) - endif -endif diff --git a/keyboards/rgbkb/sol/keymaps/default/keymap.c b/keyboards/rgbkb/sol/keymaps/default/keymap.c index 54dab63736..e4b573e4fc 100644 --- a/keyboards/rgbkb/sol/keymaps/default/keymap.c +++ b/keyboards/rgbkb/sol/keymaps/default/keymap.c @@ -129,61 +129,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -// For RGBRST Keycode -#if defined(RGB_MATRIX_ENABLE) -void rgb_matrix_increase_flags(void) -{ - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } -} - -void rgb_matrix_decrease_flags(void) -{ - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); - } - break; - case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_enable_noeeprom(); - } - break; - } -} -#endif - #ifdef RGB_OLED_MENU uint8_t rgb_encoder_state = 4; @@ -195,7 +140,7 @@ const rgb_matrix_f rgb_matrix_functions[6][2] = { { rgb_matrix_increase_val, rgb_matrix_decrease_val }, { rgb_matrix_increase_speed, rgb_matrix_decrease_speed }, { rgb_matrix_step, rgb_matrix_step_reverse }, - { rgb_matrix_increase_flags, rgb_matrix_decrease_flags } + { rgb_matrix_flags_step, rgb_matrix_flags_step_reverse } }; #endif @@ -272,13 +217,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; -#if defined(RGB_MATRIX_ENABLE) && defined(KEYBOARD_rgbkb_sol_rev2) - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - rgb_matrix_increase_flags(); - } - return false; -#endif case RGB_MENU: #ifdef RGB_OLED_MENU if (record->event.pressed) { diff --git a/keyboards/rgbkb/sol/rev1/keyboard.json b/keyboards/rgbkb/sol/rev1/keyboard.json index 9a4c538e55..6bb41e1c37 100644 --- a/keyboards/rgbkb/sol/rev1/keyboard.json +++ b/keyboards/rgbkb/sol/rev1/keyboard.json @@ -63,7 +63,79 @@ "solid_multisplash": true }, "center_point": [112, 35], - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 91, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 112, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 18, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 18, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 18, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 18, "flags": 4}, + {"matrix": [1, 5], "x": 91, "y": 18, "flags": 4}, + {"matrix": [1, 6], "x": 108, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 35, "flags": 1}, + {"matrix": [2, 1], "x": 21, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 35, "flags": 4}, + {"matrix": [2, 4], "x": 73, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 91, "y": 35, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 31, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [3, 1], "x": 21, "y": 52, "flags": 4}, + {"matrix": [3, 2], "x": 38, "y": 52, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 52, "flags": 4}, + {"matrix": [3, 4], "x": 73, "y": 52, "flags": 4}, + {"matrix": [3, 5], "x": 91, "y": 52, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 70, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 70, "flags": 1}, + {"matrix": [4, 2], "x": 38, "y": 70, "flags": 1}, + {"matrix": [4, 3], "x": 56, "y": 70, "flags": 1}, + {"matrix": [4, 4], "x": 73, "y": 70, "flags": 1}, + {"matrix": [5, 5], "x": 89, "y": 91, "flags": 1}, + {"matrix": [5, 6], "x": 101, "y": 103, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [6, 1], "x": 203, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 186, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 151, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 133, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 112, "y": 0, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 18, "flags": 1}, + {"matrix": [7, 1], "x": 203, "y": 18, "flags": 4}, + {"matrix": [7, 2], "x": 186, "y": 18, "flags": 4}, + {"matrix": [7, 3], "x": 168, "y": 18, "flags": 4}, + {"matrix": [7, 4], "x": 151, "y": 18, "flags": 4}, + {"matrix": [7, 5], "x": 133, "y": 18, "flags": 4}, + {"matrix": [7, 6], "x": 116, "y": 13, "flags": 1}, + {"matrix": [8, 0], "x": 224, "y": 35, "flags": 1}, + {"matrix": [8, 1], "x": 203, "y": 35, "flags": 4}, + {"matrix": [8, 2], "x": 186, "y": 35, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 35, "flags": 4}, + {"matrix": [8, 4], "x": 151, "y": 35, "flags": 4}, + {"matrix": [8, 5], "x": 133, "y": 35, "flags": 4}, + {"matrix": [8, 6], "x": 116, "y": 31, "flags": 1}, + {"matrix": [9, 0], "x": 224, "y": 52, "flags": 1}, + {"matrix": [9, 1], "x": 203, "y": 52, "flags": 4}, + {"matrix": [9, 2], "x": 186, "y": 52, "flags": 4}, + {"matrix": [9, 3], "x": 168, "y": 52, "flags": 4}, + {"matrix": [9, 4], "x": 151, "y": 52, "flags": 4}, + {"matrix": [9, 5], "x": 133, "y": 52, "flags": 4}, + {"matrix": [9, 6], "x": 116, "y": 48, "flags": 1}, + {"matrix": [10, 0], "x": 224, "y": 70, "flags": 1}, + {"matrix": [10, 1], "x": 203, "y": 70, "flags": 1}, + {"matrix": [10, 2], "x": 186, "y": 70, "flags": 1}, + {"matrix": [10, 3], "x": 168, "y": 70, "flags": 1}, + {"matrix": [10, 4], "x": 151, "y": 70, "flags": 1}, + {"matrix": [11, 6], "x": 135, "y": 91, "flags": 1}, + {"x": 123, "y": 103, "flags": 1} + ] }, "rgblight": { "animations": { diff --git a/keyboards/rgbkb/sol/rev1/rev1.c b/keyboards/rgbkb/sol/rev1/rev1.c deleted file mode 100644 index f5997bac00..0000000000 --- a/keyboards/rgbkb/sol/rev1/rev1.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "sol.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6 }, - { 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20 }, - { 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, - { 35, 36, 37, 38, 39, 40, 41 }, - { 42, 43, 44, 45, 46, 47, 48 }, - { 49, 50, 51, 52, 53, 54, 55 }, - { 56, 57, 58, 59, 60, 61, 62 }, - { 63, 64, 65, 66, 67, 68, 68 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 } -}, { - // Left Hand Mapped Left to Right - { 0, 0 }, { 21, 0 }, { 38, 0 }, { 56, 0 }, { 73, 0 }, { 91, 0 }, { 112, 0 }, - { 0, 18 }, { 21, 18 }, { 38, 18 }, { 56, 18 }, { 73, 18 }, { 91, 18 }, { 108, 13 }, - { 0, 35 }, { 21, 35 }, { 38, 35 }, { 56, 35 }, { 73, 35 }, { 91, 35 }, { 108, 31 }, - { 0, 52 }, { 21, 52 }, { 38, 52 }, { 56, 52 }, { 73, 52 }, { 91, 52 }, { 108, 48 }, - { 0, 70 }, { 21, 70 }, { 38, 70 }, { 56, 70 }, { 73, 70 }, { 89, 91 }, { 101, 103 }, - // Left Hand Mapped Right to Left - { 224, 0 }, { 203, 0 }, { 186, 0 }, { 168, 0 }, { 151, 0 }, { 133, 0 }, { 112, 0 }, - { 224, 18 }, { 203, 18 }, { 186, 18 }, { 168, 18 }, { 151, 18 }, { 133, 18 }, { 116, 13 }, - { 224, 35 }, { 203, 35 }, { 186, 35 }, { 168, 35 }, { 151, 35 }, { 133, 35 }, { 116, 31 }, - { 224, 52 }, { 203, 52 }, { 186, 52 }, { 168, 52 }, { 151, 52 }, { 133, 52 }, { 116, 48 }, - { 224, 70 }, { 203, 70 }, { 186, 70 }, { 168, 70 }, { 151, 70 }, { 135, 91 }, { 123, 103 }, -}, { - // Left Hand Mapped Left to Right - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, - // Left Hand Mapped Right to Left - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1 -} }; - -#endif - diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json index dc9e6d4035..f7780ae37a 100644 --- a/keyboards/rgbkb/sol3/rev1/keyboard.json +++ b/keyboards/rgbkb/sol3/rev1/keyboard.json @@ -96,6 +96,164 @@ }, "center_point": [81, 28], "driver": "ws2812", + "layout": [ + {"x": 1, "y": 6, "flags": 2}, + {"x": 1, "y": 13, "flags": 2}, + {"x": 1, "y": 19, "flags": 2}, + {"x": 1, "y": 25, "flags": 2}, + {"x": 1, "y": 31, "flags": 2}, + {"x": 1, "y": 37, "flags": 2}, + {"x": 1, "y": 43, "flags": 2}, + {"x": 1, "y": 49, "flags": 2}, + {"x": 4, "y": 52, "flags": 2}, + {"x": 11, "y": 52, "flags": 2}, + {"x": 17, "y": 52, "flags": 2}, + {"x": 23, "y": 52, "flags": 2}, + {"x": 29, "y": 52, "flags": 2}, + {"x": 35, "y": 52, "flags": 2}, + {"x": 41, "y": 54, "flags": 2}, + {"x": 46, "y": 57, "flags": 2}, + {"x": 52, "y": 60, "flags": 2}, + {"x": 57, "y": 63, "flags": 2}, + {"x": 62, "y": 66, "flags": 2}, + {"x": 68, "y": 69, "flags": 2}, + {"x": 73, "y": 67, "flags": 2}, + {"x": 76, "y": 62, "flags": 2}, + {"x": 79, "y": 57, "flags": 2}, + {"x": 78, "y": 51, "flags": 2}, + {"x": 77, "y": 45, "flags": 2}, + {"x": 76, "y": 39, "flags": 2}, + {"x": 76, "y": 33, "flags": 2}, + {"x": 76, "y": 27, "flags": 2}, + {"x": 76, "y": 21, "flags": 2}, + {"x": 76, "y": 14, "flags": 2}, + {"x": 76, "y": 8, "flags": 2}, + {"x": 72, "y": 3, "flags": 2}, + {"x": 59, "y": 3, "flags": 2}, + {"x": 53, "y": 3, "flags": 2}, + {"x": 46, "y": 3, "flags": 2}, + {"x": 40, "y": 3, "flags": 2}, + {"x": 34, "y": 3, "flags": 2}, + {"x": 28, "y": 3, "flags": 2}, + {"x": 22, "y": 3, "flags": 2}, + {"x": 10, "y": 3, "flags": 2}, + {"x": 3, "y": 3, "flags": 2}, + {"matrix": [0, 0], "x": 9, "y": 6, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 6, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 6, "flags": 4}, + {"matrix": [0, 3], "x": 40, "y": 6, "flags": 4}, + {"matrix": [0, 4], "x": 49, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 59, "y": 6, "flags": 4}, + {"matrix": [0, 6], "x": 71, "y": 6, "flags": 1}, + {"matrix": [1, 6], "x": 71, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 59, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 49, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 9, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 9, "y": 25, "flags": 1}, + {"matrix": [2, 1], "x": 21, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 40, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 49, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 59, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 71, "y": 25, "flags": 1}, + {"matrix": [3, 6], "x": 71, "y": 35, "flags": 1}, + {"matrix": [3, 5], "x": 59, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 49, "y": 35, "flags": 4}, + {"matrix": [3, 3], "x": 40, "y": 35, "flags": 4}, + {"matrix": [3, 2], "x": 30, "y": 35, "flags": 4}, + {"matrix": [3, 1], "x": 21, "y": 35, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 35, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 44, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 44, "flags": 1}, + {"matrix": [4, 2], "x": 30, "y": 44, "flags": 1}, + {"matrix": [4, 3], "x": 40, "y": 44, "flags": 1}, + {"matrix": [4, 4], "x": 49, "y": 44, "flags": 1}, + {"matrix": [4, 5], "x": 66, "y": 50, "flags": 1}, + {"matrix": [4, 6], "x": 75, "y": 54, "flags": 1}, + {"matrix": [4, 7], "x": 70, "y": 62, "flags": 1}, + {"x": 60, "y": 60, "flags": 1}, + {"x": 160, "y": 6, "flags": 2}, + {"x": 160, "y": 13, "flags": 2}, + {"x": 160, "y": 19, "flags": 2}, + {"x": 160, "y": 25, "flags": 2}, + {"x": 160, "y": 31, "flags": 2}, + {"x": 160, "y": 37, "flags": 2}, + {"x": 160, "y": 43, "flags": 2}, + {"x": 160, "y": 49, "flags": 2}, + {"x": 157, "y": 52, "flags": 2}, + {"x": 151, "y": 52, "flags": 2}, + {"x": 145, "y": 52, "flags": 2}, + {"x": 138, "y": 52, "flags": 2}, + {"x": 132, "y": 52, "flags": 2}, + {"x": 126, "y": 52, "flags": 2}, + {"x": 120, "y": 54, "flags": 2}, + {"x": 115, "y": 57, "flags": 2}, + {"x": 110, "y": 60, "flags": 2}, + {"x": 105, "y": 63, "flags": 2}, + {"x": 99, "y": 66, "flags": 2}, + {"x": 94, "y": 69, "flags": 2}, + {"x": 89, "y": 67, "flags": 2}, + {"x": 86, "y": 62, "flags": 2}, + {"x": 83, "y": 57, "flags": 2}, + {"x": 83, "y": 51, "flags": 2}, + {"x": 85, "y": 45, "flags": 2}, + {"x": 86, "y": 39, "flags": 2}, + {"x": 86, "y": 33, "flags": 2}, + {"x": 86, "y": 27, "flags": 2}, + {"x": 86, "y": 21, "flags": 2}, + {"x": 86, "y": 14, "flags": 2}, + {"x": 86, "y": 8, "flags": 2}, + {"x": 90, "y": 3, "flags": 2}, + {"x": 103, "y": 3, "flags": 2}, + {"x": 109, "y": 3, "flags": 2}, + {"x": 115, "y": 3, "flags": 2}, + {"x": 121, "y": 3, "flags": 2}, + {"x": 127, "y": 3, "flags": 2}, + {"x": 133, "y": 3, "flags": 2}, + {"x": 140, "y": 3, "flags": 2}, + {"x": 152, "y": 3, "flags": 2}, + {"x": 158, "y": 3, "flags": 2}, + {"matrix": [6, 0], "x": 153, "y": 6, "flags": 1}, + {"matrix": [6, 1], "x": 141, "y": 6, "flags": 4}, + {"matrix": [6, 2], "x": 131, "y": 6, "flags": 4}, + {"matrix": [6, 3], "x": 122, "y": 6, "flags": 4}, + {"matrix": [6, 4], "x": 112, "y": 6, "flags": 4}, + {"matrix": [6, 5], "x": 103, "y": 6, "flags": 4}, + {"matrix": [6, 6], "x": 91, "y": 6, "flags": 1}, + {"matrix": [7, 6], "x": 91, "y": 16, "flags": 1}, + {"matrix": [7, 5], "x": 103, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 112, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 122, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 131, "y": 16, "flags": 4}, + {"matrix": [7, 1], "x": 141, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 153, "y": 16, "flags": 1}, + {"matrix": [8, 0], "x": 153, "y": 25, "flags": 1}, + {"matrix": [8, 1], "x": 141, "y": 25, "flags": 4}, + {"matrix": [8, 2], "x": 131, "y": 25, "flags": 4}, + {"matrix": [8, 3], "x": 122, "y": 25, "flags": 4}, + {"matrix": [8, 4], "x": 112, "y": 25, "flags": 4}, + {"matrix": [8, 5], "x": 103, "y": 25, "flags": 4}, + {"matrix": [8, 6], "x": 91, "y": 25, "flags": 1}, + {"matrix": [9, 6], "x": 91, "y": 35, "flags": 1}, + {"matrix": [9, 5], "x": 103, "y": 35, "flags": 4}, + {"matrix": [9, 4], "x": 112, "y": 35, "flags": 4}, + {"matrix": [9, 3], "x": 122, "y": 35, "flags": 4}, + {"matrix": [9, 2], "x": 131, "y": 35, "flags": 4}, + {"matrix": [9, 1], "x": 141, "y": 35, "flags": 4}, + {"matrix": [9, 0], "x": 153, "y": 35, "flags": 1}, + {"matrix": [10, 0], "x": 153, "y": 44, "flags": 1}, + {"matrix": [10, 1], "x": 141, "y": 44, "flags": 1}, + {"matrix": [10, 2], "x": 131, "y": 44, "flags": 1}, + {"matrix": [10, 3], "x": 122, "y": 44, "flags": 1}, + {"matrix": [10, 4], "x": 112, "y": 44, "flags": 1}, + {"matrix": [10, 5], "x": 96, "y": 50, "flags": 1}, + {"matrix": [10, 6], "x": 87, "y": 54, "flags": 1}, + {"matrix": [10, 7], "x": 92, "y": 62, "flags": 1}, + {"x": 102, "y": 60, "flags": 1} + ], "led_flush_limit": 33, "led_process_limit": 10, "sleep": true, diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c index 086ce0af01..1f1149e1ba 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.c +++ b/keyboards/rgbkb/sol3/rev1/rev1.c @@ -43,7 +43,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } case 1: { // Handle RGB Encoder switch press - action_exec(MAKE_KEYEVENT(isLeftHand ? 4 : 10, 6, active)); + action_exec(MAKE_KEYEVENT(is_keyboard_left() ? 4 : 10, 6, active)); break; } } @@ -80,92 +80,6 @@ void matrix_slave_scan_kb(void) { matrix_slave_scan_user(); } -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 41, 42, 43, 44, 45, 46, 47, NO_LED }, - { 54, 53, 52, 51, 50, 49, 48, NO_LED }, - { 55, 56, 57, 58, 59, 60, 61, NO_LED }, - { 68, 67, 66, 65, 64, 63, 62, NO_LED }, - { 69, 70, 71, 72, 73, 74, 75, 76 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 119, 120, 121, 122, 123, 124, 125, NO_LED }, - { 132, 131, 130, 129, 128, 127, 126, NO_LED }, - { 133, 134, 135, 136, 137, 138, 139, NO_LED }, - { 146, 145, 144, 143, 142, 141, 140, NO_LED }, - { 147, 148, 149, 150, 151, 152, 153, 154 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { // ALL XY VALUES DIVIDE BY 2, THEN ADD 5 - { 1, 6 }, { 1, 13 }, { 1, 19 }, { 1, 25 }, { 1, 31 }, { 1, 37 }, { 1, 43 }, { 1, 49 }, { 4, 52 }, { 11, 52 }, - { 17, 52 }, { 23, 52 }, { 29, 52 }, { 35, 52 }, { 41, 54 }, { 46, 57 }, { 52, 60 }, { 57, 63 }, { 62, 66 }, { 68, 69 }, - { 73, 67 }, { 76, 62 }, { 79, 57 }, { 78, 51 }, { 77, 45 }, { 76, 39 }, { 76, 33 }, { 76, 27 }, { 76, 21 }, { 76, 14 }, - { 76, 8 }, { 72, 3 }, { 59, 3 }, { 53, 3 }, { 46, 3 }, { 40, 3 }, { 34, 3 }, { 28, 3 }, { 22, 3 }, { 10, 3 }, { 3, 3 }, - { 9, 6 }, { 21, 6 }, { 30, 6 }, { 40, 6 }, { 49, 6 }, { 59, 6 }, { 71, 6 }, - { 71, 16 }, { 59, 16 }, { 49, 16 }, { 40, 16 }, { 30, 16 }, { 21, 16 }, { 9, 16 }, - { 9, 25 }, { 21, 25 }, { 30, 25 }, { 40, 25 }, { 49, 25 }, { 59, 25 }, { 71, 25 }, - { 71, 35 }, { 59, 35 }, { 49, 35 }, { 40, 35 }, { 30, 35 }, { 21, 35 }, { 9, 35 }, - { 9, 44 }, { 21, 44 }, { 30, 44 }, { 40, 44 }, { 49, 44 }, { 66, 50 }, { 75, 54 }, { 70, 62 }, { 60, 60 }, - - { 160, 6 }, { 160, 13 }, { 160, 19 }, { 160, 25 }, { 160, 31 }, { 160, 37 }, { 160, 43 }, { 160, 49 }, { 157, 52 }, { 151, 52 }, - { 145, 52 }, { 138, 52 }, { 132, 52 }, { 126, 52 }, { 120, 54 }, { 115, 57 }, { 110, 60 }, { 105, 63 }, { 99, 66 }, { 94, 69 }, - { 89, 67 }, { 86, 62 }, { 83, 57 }, { 83, 51 }, { 85, 45 }, { 86, 39 }, { 86, 33 }, { 86, 27 }, { 86, 21 }, { 86, 14 }, - { 86, 8 }, { 90, 3 }, { 103, 3 }, { 109, 3 }, { 115, 3 }, { 121, 3 }, { 127, 3 }, { 133, 3 }, { 140, 3 }, { 152, 3 }, { 158, 3 }, - { 153, 6 }, { 141, 6 }, { 131, 6 }, { 122, 6 }, { 112, 6 }, { 103, 6 }, { 91, 6 }, - { 91, 16 }, { 103, 16 }, { 112, 16 }, { 122, 16 }, { 131, 16 }, { 141, 16 }, { 153, 16 }, - { 153, 25 }, { 141, 25 }, { 131, 25 }, { 122, 25 }, { 112, 25 }, { 103, 25 }, { 91, 25 }, - { 91, 35 }, { 103, 35 }, { 112, 35 }, { 122, 35 }, { 131, 35 }, { 141, 35 }, { 153, 35 }, - { 153, 44 }, { 141, 44 }, { 131, 44 }, { 122, 44 }, { 112, 44 }, { 96, 50 }, { 87, 54 }, { 92, 62 }, { 102, 60 }, -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -// clang-format on - -void rgb_matrix_increase_flags(void) -{ - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: { - rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); - rgb_matrix_set_color_all(0, 0, 0); - } - break; - case LED_FLAG_UNDERGLOW: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_disable_noeeprom(); - } - break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - rgb_matrix_enable_noeeprom(); - } - break; - } -} -#endif - - __attribute__((weak)) void render_layer_status(void) { // Keymap specific, expected to be overridden @@ -242,22 +156,6 @@ bool oled_task_kb(void) { return false; } -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) - return false; - - switch(keycode) { -#ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - rgb_matrix_increase_flags(); - } - return false; -#endif - } - return true; -}; - void keyboard_post_init_kb(void) { touch_encoder_init(); transaction_register_rpc(TOUCH_ENCODER_SYNC, touch_encoder_slave_sync); diff --git a/keyboards/rgbkb/sol3/rev1/rev1.h b/keyboards/rgbkb/sol3/rev1/rev1.h index 6f08563e79..1a2d2a0e1a 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.h +++ b/keyboards/rgbkb/sol3/rev1/rev1.h @@ -18,8 +18,3 @@ void render_layer_status(void); void render_leds_status(void); void render_touch_status(void); void render_audio_status(void); - -#ifdef RGB_MATRIX_ENABLE -// utility function to cycle active led zones -void rgb_matrix_increase_flags(void); -#endif \ No newline at end of file diff --git a/keyboards/rgbkb/zygomorph/common/glcdfont.c b/keyboards/rgbkb/zygomorph/common/glcdfont.c deleted file mode 100644 index 697d58886e..0000000000 --- a/keyboards/rgbkb/zygomorph/common/glcdfont.c +++ /dev/null @@ -1,233 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, - 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8, - 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F, - 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, - 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF, - 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE, - 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, - 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, - 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C, - 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF, - 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF, - 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0, - 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, - 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3, - 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC, - 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF, - 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7, - 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, - 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB, - 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE, - 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E, - 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, - 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F, - 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F, - 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C, - 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06, - 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F, - 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F, - 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E, - 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, - 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F, - 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01, - 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7E, 0x78, 0x70, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; diff --git a/keyboards/ristretto/readme.md b/keyboards/ristretto/readme.md index d047e70994..05bcf80076 100644 --- a/keyboards/ristretto/readme.md +++ b/keyboards/ristretto/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build envionment): make ristretto:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/rmi_kb/tkl_ff/keymaps/default/keymap.c b/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c index d49d9d0b77..65c5560556 100644 --- a/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c +++ b/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c @@ -42,25 +42,19 @@ const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user(led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; + for (uint8_t i=0; i<3; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 3) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c b/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c index 90319d52e6..4414fa2832 100644 --- a/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c +++ b/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c @@ -42,25 +42,19 @@ const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user(led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; + for (uint8_t i=0; i<3; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 3) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c b/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c index 3916d18366..067a278381 100644 --- a/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c +++ b/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c @@ -73,25 +73,19 @@ const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( ll_slcl ); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb (led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; - for (uint8_t i=0; i<7; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 7) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user (led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; + for (uint8_t i=0; i<7; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 7) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c b/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c index 12933c4b57..66e8f7e8da 100644 --- a/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c +++ b/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c @@ -73,25 +73,19 @@ const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( ll_slcl ); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb (led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; - for (uint8_t i=0; i<7; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 7) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user (led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; + for (uint8_t i=0; i<7; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 7) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md index a75a385869..5eff19a448 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md +++ b/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md @@ -4,4 +4,4 @@ This layout takes my own personal layout (in development at the Colemak forum) a The testing was comducted on my Windows gaming PC, though it was not exhaustive, all the many layers and useful navigation shortcuts worked fine. # TODO: references to extend layer and symbol layers -# TODO: more information \ No newline at end of file +# TODO: more information diff --git a/keyboards/rose75/keyboard.json b/keyboards/rose75/keyboard.json index 09d0b7af19..43f01362f5 100644 --- a/keyboards/rose75/keyboard.json +++ b/keyboards/rose75/keyboard.json @@ -127,4 +127,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c index 45f7117989..95da758683 100755 --- a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c +++ b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_A, RGB_M_P, KC_D, KC_F, KC_G, KC_H, RM_SATD, RM_SATU, RM_TOGG, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, RGB_M_B, KC_N, KC_M, KC_RCTL, RM_VALU, DF(0), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, _______, RM_HUED, RM_VALD, RM_HUEU), -}; \ No newline at end of file +}; diff --git a/keyboards/rot13labs/hackboard/readme.md b/keyboards/rot13labs/hackboard/readme.md index c14b742326..da76458698 100644 --- a/keyboards/rot13labs/hackboard/readme.md +++ b/keyboards/rot13labs/hackboard/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to You can enter the bootloader to flash on new firmware in one of two ways: * **Bootmagic**: Hold the ESC key (top left key) and hit reset -* **Boot button**: Hold the boot button on the top of the PCB and hit reset \ No newline at end of file +* **Boot button**: Hold the boot button on the top of the PCB and hit reset diff --git a/keyboards/rot13labs/rotc0n/keyboard.json b/keyboards/rot13labs/rotc0n/keyboard.json index fa5ac19edb..fb17a73a7b 100644 --- a/keyboards/rot13labs/rotc0n/keyboard.json +++ b/keyboards/rot13labs/rotc0n/keyboard.json @@ -33,4 +33,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c b/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c index e8afbe3224..4d4489202b 100755 --- a/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c +++ b/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c @@ -29,4 +29,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1(QK_USER_1), -}; \ No newline at end of file +}; diff --git a/keyboards/rotor/keymaps/default/rules.mk b/keyboards/rotor/keymaps/default/rules.mk index 910bd64a59..ae71c4baca 100644 --- a/keyboards/rotor/keymaps/default/rules.mk +++ b/keyboards/rotor/keymaps/default/rules.mk @@ -1,2 +1,2 @@ CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no \ No newline at end of file +COMMAND_ENABLE = no diff --git a/keyboards/rotor/keymaps/default_all/rules.mk b/keyboards/rotor/keymaps/default_all/rules.mk index 910bd64a59..ae71c4baca 100644 --- a/keyboards/rotor/keymaps/default_all/rules.mk +++ b/keyboards/rotor/keymaps/default_all/rules.mk @@ -1,2 +1,2 @@ CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no \ No newline at end of file +COMMAND_ENABLE = no diff --git a/keyboards/royal_kludge/rk61/config.h b/keyboards/royal_kludge/rk61/config.h new file mode 100644 index 0000000000..22c9d1d3e9 --- /dev/null +++ b/keyboards/royal_kludge/rk61/config.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 + +#define CAPS_LOCK_LED_INDEX 40 diff --git a/keyboards/royal_kludge/rk61/halconf.h b/keyboards/royal_kludge/rk61/halconf.h new file mode 100644 index 0000000000..b7fd8398a2 --- /dev/null +++ b/keyboards/royal_kludge/rk61/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/royal_kludge/rk61/keyboard.json b/keyboards/royal_kludge/rk61/keyboard.json new file mode 100644 index 0000000000..d98ce4765b --- /dev/null +++ b/keyboards/royal_kludge/rk61/keyboard.json @@ -0,0 +1,223 @@ +{ + "manufacturer": "Royal Kludge", + "keyboard_name": "RK61", + "maintainer": "DEREFERENC3D", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 16 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A10", "A9", "B2", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], + "rows": ["A6", "A5", "A4", "A3", "A2"] + }, + "processor": "STM32F072", + "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, + "flower_blooming": 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, + "riverflow": 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, + "starlight": true, + "starlight_dual_hue": true, + "starlight_dual_sat": true, + "starlight_smooth": true, + "typing_heatmap": true + }, + "default": { + "hue": 170, + "val": 150 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 12], "x": 216, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 212, "y": 48, "flags": 1}, + {"matrix": [4, 12], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ], + "max_brightness": 200, + "sleep": true + }, + "url": "http://en.rkgaming.com/", + "usb": { + "device_version": "1.0.1", + "pid": "0x6461", + "vid": "0x1480" + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "!", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "\"", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "$", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "%", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "^", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "&", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "*", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "(", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": ")", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "_", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "+", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 1], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 2], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 3], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 4], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 5], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 6], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 7], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 8], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 9], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 10], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 11], "x": 12.25, "y": 3, "w": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "AltGr", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/royal_kludge/rk61/keymaps/default/keymap.c b/keyboards/royal_kludge/rk61/keymaps/default/keymap.c new file mode 100644 index 0000000000..2efc47913b --- /dev/null +++ b/keyboards/royal_kludge/rk61/keymaps/default/keymap.c @@ -0,0 +1,111 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + WIN_BASE, + WIN_T, + WIN_ALT, + ARROW_FN, + LWIN_DIS, + WIN_FN, + WIN_T_FN, + WIN_ALT_FN, + MAC_BASE, + MAC_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [WIN_BASE] = LAYOUT_60_ansi( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT, MO(WIN_FN) + ), + [WIN_FN] = LAYOUT_60_ansi( + 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_PSCR, KC_SCRL, KC_PAUS, _______, _______, RM_VALD, RM_VALU, RM_NEXT, + _______, _______, DF(MAC_BASE), _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, RM_SPDD, RM_SPDU, TG(ARROW_FN), + _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, RM_HUEU, _______, _______, + DF(WIN_ALT), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______ + ), + [WIN_T] = LAYOUT_60_ansi( + 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, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(WIN_T_FN) + ), + [WIN_T_FN] = LAYOUT_60_ansi( + KC_ESC, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, DF(MAC_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(ARROW_FN), + DF(WIN_BASE), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______ + ), + [WIN_ALT] = LAYOUT_60_ansi( + 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_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(WIN_ALT_FN) + ), + [WIN_ALT_FN] = LAYOUT_60_ansi( + KC_ESC, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, + _______, _______, _______, _______, _______, _______, KC_Y, KC_U, KC_I, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_H, KC_J, KC_K, _______, _______, _______, TG(ARROW_FN), + _______, _______, _______, _______, _______, _______, KC_N, KC_M, KC_COMM, _______, _______, _______, + DF(WIN_T), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______ + ), + [MAC_BASE] = LAYOUT_60_ansi( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_APP, KC_RCTL, MO(MAC_FN) + ), + [MAC_FN] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, DF(WIN_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, + _______, _______, _______, _______, _______, KC_F1, KC_RCTL, KC_F2 + ), + [ARROW_FN] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, + _______, _______, _______, _______, KC_RALT, KC_APP, KC_RCTL, _______ + ), + [LWIN_DIS] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_NO, _______, _______, _______, _______, _______, _______ + ), +}; + +#ifdef CAPS_LOCK_LED_INDEX +bool rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + + if (layer_state_is(LWIN_DIS)) { + rgb_matrix_set_color(59, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + rgb_matrix_set_color(59, 0, 0, 0); + } + } + + return false; +} +#endif diff --git a/keyboards/royal_kludge/rk61/mcuconf.h b/keyboards/royal_kludge/rk61/mcuconf.h new file mode 100644 index 0000000000..f459d17ee9 --- /dev/null +++ b/keyboards/royal_kludge/rk61/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 QMK +// 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/royal_kludge/rk61/readme.md b/keyboards/royal_kludge/rk61/readme.md new file mode 100644 index 0000000000..d8ba3a3a4f --- /dev/null +++ b/keyboards/royal_kludge/rk61/readme.md @@ -0,0 +1,25 @@ +# Royal Kludge RK61 + +![Royal Kludge RK61](https://imgur.com/9YoEEkH.jpg) + +* Keyboard Maintainer: [DEREFERENC3D](https://github.com/DEREFERENC3D) +* Hardware Supported: Royal Kludge RK61 - wired-only QMK version +* Hardware Availability: [RKGaming.com](https://en.rkgaming.com/product/43/), [Amazon.com](https://www.amazon.com/RK-ROYAL-KLUDGE-Mechanical-Ultra-Compact/dp/B0832LSV8N) + +Make example for this keyboard (after setting up your build environment): + + make royal_kludge/rk61:default + +Flashing example for this keyboard: + + make royal_kludge/rk61:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the Escape key and plug in the keyboard (this one might be disabled on the stock firmware) +* **Physical reset button**: Briefly press the button on the PCB, located under the space bar keycap, to the right of the space bar's switch +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. On the stock firmware, VIA should allow it to be mapped. diff --git a/keyboards/royal_kludge/rk61/rules.mk b/keyboards/royal_kludge/rk61/rules.mk new file mode 100644 index 0000000000..fb3dcdbf7a --- /dev/null +++ b/keyboards/royal_kludge/rk61/rules.mk @@ -0,0 +1 @@ +DFU_SUFFIX_ARGS = -p FFFF -v FFFF diff --git a/keyboards/rubi/keyboard.json b/keyboards/rubi/keyboard.json index bdef35fc77..8763052204 100644 --- a/keyboards/rubi/keyboard.json +++ b/keyboards/rubi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rubi", "manufacturer": "gregorio", - "url": "https://github.com/ohchiko/qmk_firmware/tree/master/keyboards/rubi", "maintainer": "gregorio", "usb": { "vid": "0x4752", diff --git a/keyboards/runes/vaengr/keymaps/default/readme.md b/keyboards/runes/vaengr/keymaps/default/readme.md index 3a5339cfa8..346962d0c8 100644 --- a/keyboards/runes/vaengr/keymaps/default/readme.md +++ b/keyboards/runes/vaengr/keymaps/default/readme.md @@ -10,4 +10,4 @@ Layer 2: ![Layer 2](https://i.imgur.com/oGo0Iss.png) Layer 3: -![Layer 3](https://i.imgur.com/tOjiGn3.png) \ No newline at end of file +![Layer 3](https://i.imgur.com/tOjiGn3.png) diff --git a/keyboards/ryanskidmore/rskeys100/matrix.c b/keyboards/ryanskidmore/rskeys100/matrix.c index 53ad18ee48..c54e1de021 100644 --- a/keyboards/ryanskidmore/rskeys100/matrix.c +++ b/keyboards/ryanskidmore/rskeys100/matrix.c @@ -105,4 +105,4 @@ static void shift_out_single(uint8_t value) { static inline void shift_pulse(void) { gpio_write_pin_high(SHR_CLOCK); gpio_write_pin_low(SHR_CLOCK); -} \ No newline at end of file +} diff --git a/keyboards/ryanskidmore/rskeys100/readme.md b/keyboards/ryanskidmore/rskeys100/readme.md index 4be465dbde..61da979eee 100644 --- a/keyboards/ryanskidmore/rskeys100/readme.md +++ b/keyboards/ryanskidmore/rskeys100/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -To enter the bootloader, press the `RESET` button on your daughterboard PCB while it's plugged in. \ No newline at end of file +To enter the bootloader, press the `RESET` button on your daughterboard PCB while it's plugged in. diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c deleted file mode 100644 index ba8cd96aec..0000000000 --- a/keyboards/s_ol/0xc_pad/0xc_pad.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2021 s-ol - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // indices - { 0, 6, KC_NO, KC_NO }, - { 1, 5, 7, KC_NO }, - { 2, 4, 8, 11 }, - { KC_NO, 3, 9, 10 } -}, { - // phys position - { 96, 110}, { 80, 83}, { 64, 55}, { 80, 28}, - { 96, 55}, {112, 83}, {128, 110}, {144, 83}, - {128, 55}, {112, 28}, {144, 28}, {160, 55} -}, { - // flags - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/s_ol/0xc_pad/keyboard.json b/keyboards/s_ol/0xc_pad/keyboard.json index 1df5a5131e..3ad4e986d7 100644 --- a/keyboards/s_ol/0xc_pad/keyboard.json +++ b/keyboards/s_ol/0xc_pad/keyboard.json @@ -39,8 +39,21 @@ "solid_reactive": true, "splash": true }, - "center_point": [112, 63], - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 74, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 148, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 37, "y": 21, "flags": 4}, + {"matrix": [3, 1], "x": 111, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 185, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 0, "y": 42, "flags": 4}, + {"matrix": [0, 1], "x": 74, "y": 42, "flags": 4}, + {"matrix": [1, 2], "x": 148, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 37, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 111, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 185, "y": 64, "flags": 4} + ] }, "layouts": { "LAYOUT": { diff --git a/keyboards/salane/ncr80alpsskfl/readme.md b/keyboards/salane/ncr80alpsskfl/readme.md index a8e0c0725a..45922c8a90 100644 --- a/keyboards/salane/ncr80alpsskfl/readme.md +++ b/keyboards/salane/ncr80alpsskfl/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: short 2 pin in the back of pcb and plug the usb in * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -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). \ No newline at end of file +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/salane/starryfrl/readme.md b/keyboards/salane/starryfrl/readme.md index da2920797d..25474185ae 100644 --- a/keyboards/salane/starryfrl/readme.md +++ b/keyboards/salane/starryfrl/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press the key `BOOT` in the back of PCB and plug in keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -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). \ No newline at end of file +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/salicylic_acid3/naked48/rev1/keyboard.json b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json index 2cf2dbc45b..fd37a9e7cc 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json @@ -22,7 +22,57 @@ } }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [3, 0], "x": 17, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 86, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 103, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 121, "y": 64, "flags": 4}, + {"matrix": [3, 7], "x": 138, "y": 64, "flags": 4}, + {"matrix": [3, 8], "x": 155, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 172, "y": 64, "flags": 4}, + {"matrix": [3, 10], "x": 190, "y": 64, "flags": 4}, + {"matrix": [3, 11], "x": 207, "y": 64, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 43, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 207, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 207, "y": 21, "flags": 4}, + {"matrix": [2, 10], "x": 207, "y": 43, "flags": 4}, + {"matrix": [2, 9], "x": 190, "y": 43, "flags": 4}, + {"matrix": [1, 9], "x": 190, "y": 21, "flags": 4}, + {"matrix": [0, 9], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 172, "y": 0, "flags": 4}, + {"matrix": [1, 8], "x": 172, "y": 21, "flags": 4}, + {"matrix": [2, 8], "x": 172, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 155, "y": 43, "flags": 4}, + {"matrix": [1, 7], "x": 155, "y": 21, "flags": 4}, + {"matrix": [0, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 138, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 138, "y": 21, "flags": 4}, + {"matrix": [2, 6], "x": 138, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 43, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 43, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 21, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 21, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 43, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 21, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4} + ] }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/salicylic_acid3/naked48/rev1/rev1.c b/keyboards/salicylic_acid3/naked48/rev1/rev1.c deleted file mode 100644 index d4da157a56..0000000000 --- a/keyboards/salicylic_acid3/naked48/rev1/rev1.c +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2021 Salicylic_Acid - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0,47,42,41,36,35,30,29,24,23,18,17 }, - { 1,46,43,40,37,34,31,28,25,22,19,16 }, - { 2,45,44,39,38,33,32,27,26,21,20,15 }, - { 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14 } - }, { - // LED Index to Physical Position - { 0, 0 }, { 0, 21 }, { 0, 43 }, { 17, 64 }, { 34, 64 },{ 52, 64 }, { 69, 64 }, { 86, 64 }, { 103, 64 }, { 121, 64 }, - { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 },{ 224, 43 }, { 224, 21 }, { 224, 0 }, { 207, 0 }, { 207, 21 }, - { 207, 43 }, { 190, 43 }, { 190, 21 }, { 190, 0 }, { 172, 0 },{ 172, 21 }, { 172, 43 }, { 155, 43 }, { 155, 21 }, { 155, 0 }, - { 138, 0 }, { 138, 21 }, { 138, 43 }, { 86, 43 }, { 86, 21 },{ 86, 0 }, { 69, 0 }, { 69, 21 }, { 69, 43 }, { 52, 43 }, - { 52, 21 }, { 52, 0 }, { 34, 0 }, { 34, 21 }, { 34, 43 },{ 17, 43 }, { 17, 21 }, { 17, 0 } - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/sawnsprojects/amber80/readme.md b/keyboards/sawnsprojects/amber80/readme.md index 807ba0917f..6d95efd68e 100644 --- a/keyboards/sawnsprojects/amber80/readme.md +++ b/keyboards/sawnsprojects/amber80/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/sawnsprojects/amber80/solder/keymaps/default/keymap.c b/keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c index 9ab41b57f4..2d46e4879b 100644 --- a/keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c @@ -27,4 +27,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_INT2, 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_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/sawnsprojects/krush/krush60/readme.md b/keyboards/sawnsprojects/krush/krush60/readme.md index 6890329c35..bd2f674bfb 100644 --- a/keyboards/sawnsprojects/krush/krush60/readme.md +++ b/keyboards/sawnsprojects/krush/krush60/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/sawnsprojects/krush/krush65/readme.md b/keyboards/sawnsprojects/krush/krush65/readme.md index cc2efdfcfe..4de8aad749 100644 --- a/keyboards/sawnsprojects/krush/krush65/readme.md +++ b/keyboards/sawnsprojects/krush/krush65/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/sawnsprojects/krush/krush65/solder/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/readme.md index 27af715eda..888a21cf15 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/readme.md +++ b/keyboards/sawnsprojects/krush/krush65/solder/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make sawnsprojects/krush65/solder:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/sawnsprojects/krush/krush65/solder/solder.c b/keyboards/sawnsprojects/krush/krush65/solder/solder.c index db6fec3950..9d69cda97d 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/solder.c +++ b/keyboards/sawnsprojects/krush/krush65/solder/solder.c @@ -49,4 +49,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/sawnsprojects/okayu/stm32f072/config.h b/keyboards/sawnsprojects/okayu/stm32f072/config.h index 41bb0d1fdb..4c7f155ae4 100644 --- a/keyboards/sawnsprojects/okayu/stm32f072/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f072/config.h @@ -5,4 +5,4 @@ #define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file +#define WS2812_SPI_SCK_PAL_MODE 5 diff --git a/keyboards/sawnsprojects/okayu/stm32f103/config.h b/keyboards/sawnsprojects/okayu/stm32f103/config.h index 9024616477..0bd43049d7 100644 --- a/keyboards/sawnsprojects/okayu/stm32f103/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f103/config.h @@ -5,4 +5,4 @@ #define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file +#define WS2812_SPI_SCK_PAL_MODE 5 diff --git a/keyboards/sawnsprojects/okayu/stm32f303/config.h b/keyboards/sawnsprojects/okayu/stm32f303/config.h index 41bb0d1fdb..4c7f155ae4 100644 --- a/keyboards/sawnsprojects/okayu/stm32f303/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f303/config.h @@ -5,4 +5,4 @@ #define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file +#define WS2812_SPI_SCK_PAL_MODE 5 diff --git a/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json b/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json index 84661311fd..50a6a6a96f 100644 --- a/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json +++ b/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json @@ -1,4 +1,4 @@ { "processor": "STM32F303", "bootloader": "stm32-dfu" -} \ No newline at end of file +} diff --git a/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c b/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c index c3bd1eb819..aa55524810 100644 --- a/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LSFT, KC_SLSH, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/sawnsprojects/plaque80/readme.md b/keyboards/sawnsprojects/plaque80/readme.md index 7dae55ba1a..425b15f42f 100644 --- a/keyboards/sawnsprojects/plaque80/readme.md +++ b/keyboards/sawnsprojects/plaque80/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/sawnsprojects/re65/keymaps/default/rules.mk b/keyboards/sawnsprojects/re65/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/sawnsprojects/re65/keymaps/default/rules.mk +++ b/keyboards/sawnsprojects/re65/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sawnsprojects/satxri6key/keyboard.json b/keyboards/sawnsprojects/satxri6key/keyboard.json index 92a798e4b2..30f1ec3fd1 100644 --- a/keyboards/sawnsprojects/satxri6key/keyboard.json +++ b/keyboards/sawnsprojects/satxri6key/keyboard.json @@ -56,6 +56,14 @@ "animation": "solid_reactive_simple" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 2], "x": 224, "y": 64, "flags": 1}, + {"matrix": [1, 1], "x": 112, "y": 64, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 1} + ], "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/sawnsprojects/satxri6key/satxri6key.c b/keyboards/sawnsprojects/satxri6key/satxri6key.c deleted file mode 100644 index c335e0d3ef..0000000000 --- a/keyboards/sawnsprojects/satxri6key/satxri6key.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 SawnsProjects - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Indexccxxz - {0, 1, 2}, - {5, 4, 3} -}, { - //LED Index to Physical Positon - {0, 0}, {112, 0}, {224, 0}, - {224, 64}, {112, 64}, {0, 64}, -}, { - 1, 1, 1, - 1, 1, 1, -} }; -#endif \ No newline at end of file diff --git a/keyboards/sawnsprojects/vcl65/readme.md b/keyboards/sawnsprojects/vcl65/readme.md index d47c145e79..d8eb66b6aa 100644 --- a/keyboards/sawnsprojects/vcl65/readme.md +++ b/keyboards/sawnsprojects/vcl65/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **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 -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). \ No newline at end of file +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/sawnsprojects/vcl65/solder/keymaps/default/keymap.c b/keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c index 40f1e85051..27f8615443 100644 --- a/keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c index a06722184a..45d6434bb7 100644 --- a/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c +++ b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c index 96ee0e1877..3f13475511 100644 --- a/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c +++ b/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c @@ -55,4 +55,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c b/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c index 9a1c7daef3..a027db84fa 100644 --- a/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c +++ b/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/sekigon/grs_70ec/matrix.c b/keyboards/sekigon/grs_70ec/matrix.c index 718423e57b..e6d6281812 100644 --- a/keyboards/sekigon/grs_70ec/matrix.c +++ b/keyboards/sekigon/grs_70ec/matrix.c @@ -35,10 +35,6 @@ #define ROWS_PER_HAND (MATRIX_ROWS / 2) -/* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // row offsets for each hand static uint8_t thisHand, thatHand; @@ -52,7 +48,7 @@ void matrix_init_custom(void) { ecsm_init(&ecsm_config); - thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (ROWS_PER_HAND); thatHand = ROWS_PER_HAND - thisHand; split_post_init(); diff --git a/keyboards/sendyyeah/pix/config.h b/keyboards/sendyyeah/pix/config.h index 3a6cb6297f..7557991a58 100644 --- a/keyboards/sendyyeah/pix/config.h +++ b/keyboards/sendyyeah/pix/config.h @@ -19,5 +19,7 @@ #define OLED_FONT_H "keymaps/default/glcdfont.c" #define OLED_TIMEOUT 600000 // Turn of after 10 minutes +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 5) + #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYER_BLINK diff --git a/keyboards/sendyyeah/pix/pix.c b/keyboards/sendyyeah/pix/pix.c deleted file mode 100644 index 1bd8627e16..0000000000 --- a/keyboards/sendyyeah/pix/pix.c +++ /dev/null @@ -1,30 +0,0 @@ - /* Copyright 2020 sendyyeah - * - * 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 "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB underglow by default - rgblight_sethsv(0, 255, 255); -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 5); // Set to RGB_RAINBOW_SWIRL animation by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/senselessclay/ck60/ck60.c b/keyboards/senselessclay/ck60/ck60.c deleted file mode 100644 index 3f8aea611a..0000000000 --- a/keyboards/senselessclay/ck60/ck60.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2022 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 "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __ }, - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, __ }, - { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 } -}, { - //LED Index to Physical Positon - { 0, 0 }, { 17, 0 }, { 34, 0 }, { 52, 0 }, { 69, 0 }, { 86, 0 }, { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 215, 0 }, - { 224, 24 }, { 215, 16 }, { 198, 16 }, { 180, 16 }, { 164, 16 }, { 146, 16 }, { 129, 16 }, { 112, 16 }, { 95, 16 }, { 78, 16 }, { 60, 16 }, { 43, 16 }, { 26 , 16 }, { 0, 16 }, - { 0, 32 }, { 30, 32 }, { 47, 32 }, { 65, 32 }, { 81, 32 }, { 99, 32 }, { 116, 32 }, { 133, 32 }, { 150, 32 }, { 168, 32 }, { 185, 32 }, { 202, 32 }, { 220, 32 }, - { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 }, { 86, 48 }, { 69, 48 }, { 52, 48 }, { 34, 48 }, { 17, 48 }, { 0, 48 }, - { 0, 64 }, { 17, 64 }, { 34, 64 }, { 103, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/senselessclay/ck60/keyboard.json b/keyboards/senselessclay/ck60/keyboard.json index d4fa5336e6..4b1937513e 100644 --- a/keyboards/senselessclay/ck60/keyboard.json +++ b/keyboards/senselessclay/ck60/keyboard.json @@ -36,6 +36,70 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 198, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 180, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 164, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 146, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 129, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 78, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 60, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 43, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 30, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 47, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 65, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 99, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 133, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 168, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 185, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 202, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 220, "y": 32, "flags": 4}, + {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 190, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 207, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 160, "sleep": true }, diff --git a/keyboards/senselessclay/ck60/readme.md b/keyboards/senselessclay/ck60/readme.md index 32700967da..60396dc082 100644 --- a/keyboards/senselessclay/ck60/readme.md +++ b/keyboards/senselessclay/ck60/readme.md @@ -16,4 +16,4 @@ Flashing example for this keyboard: See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. diff --git a/keyboards/senselessclay/ck65/readme.md b/keyboards/senselessclay/ck65/readme.md index 653266a59f..b139ddc19a 100644 --- a/keyboards/senselessclay/ck65/readme.md +++ b/keyboards/senselessclay/ck65/readme.md @@ -16,4 +16,4 @@ Flashing example for this keyboard: See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. diff --git a/keyboards/senselessclay/gos65/keymaps/default/keymap.c b/keyboards/senselessclay/gos65/keymaps/default/keymap.c index 457186fafe..2564f1e5e6 100644 --- a/keyboards/senselessclay/gos65/keymaps/default/keymap.c +++ b/keyboards/senselessclay/gos65/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/senselessclay/gos65/readme.md b/keyboards/senselessclay/gos65/readme.md index bae450ee79..193a5c9c9e 100644 --- a/keyboards/senselessclay/gos65/readme.md +++ b/keyboards/senselessclay/gos65/readme.md @@ -15,4 +15,4 @@ Flashing example for this keyboard: See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). -If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. diff --git a/keyboards/senselessclay/had60/keymaps/default/keymap.c b/keyboards/senselessclay/had60/keymaps/default/keymap.c index 9c70873acf..ed443850ec 100644 --- a/keyboards/senselessclay/had60/keymaps/default/keymap.c +++ b/keyboards/senselessclay/had60/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md b/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md index 69cede566a..1612bff874 100644 --- a/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md +++ b/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md @@ -24,4 +24,4 @@ This is a variation of the default keymap with added RGB underglow and in-switch │ │ │UGTOG│UGMOD│UGHUI│UGHUD│UGSAI│UGSAD│ │BLDEC│BLTOG│BLINC│▒▒▒▒▒│ │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ - └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ \ No newline at end of file + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md b/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md index f899eb3c13..aa8dc6ab97 100644 --- a/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md +++ b/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md @@ -2,4 +2,4 @@ # Default Creator Pro Layout -This is the default layout that comes flashed on every Creator Pro. The right most key (Encoder) is the rotary and the key is binded to layer switching. \ No newline at end of file +This is the default layout that comes flashed on every Creator Pro. The right most key (Encoder) is the rotary and the key is binded to layer switching. diff --git a/keyboards/sf2040/keymaps/default/keymap.c b/keyboards/sf2040/keymaps/default/keymap.c index ca5bcce358..f84f55face 100644 --- a/keyboards/sf2040/keymaps/default/keymap.c +++ b/keyboards/sf2040/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/sha/config.h b/keyboards/sha/config.h index f936d7b473..e26ab4f695 100644 --- a/keyboards/sha/config.h +++ b/keyboards/sha/config.h @@ -3,4 +3,4 @@ #pragma once -#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB \ No newline at end of file +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB diff --git a/keyboards/sha/keyboard.json b/keyboards/sha/keyboard.json index e361334e00..03cf871f89 100644 --- a/keyboards/sha/keyboard.json +++ b/keyboards/sha/keyboard.json @@ -102,4 +102,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/sha/keymaps/default/config.h b/keyboards/sha/keymaps/default/config.h index 12d21f94cc..6f44f13191 100644 --- a/keyboards/sha/keymaps/default/config.h +++ b/keyboards/sha/keymaps/default/config.h @@ -3,4 +3,4 @@ #pragma once -#define RGBLIGHT_LAYERS \ No newline at end of file +#define RGBLIGHT_LAYERS diff --git a/keyboards/sha/keymaps/default/keymap.c b/keyboards/sha/keymaps/default/keymap.c index 533f12fe01..2f0b94cffe 100644 --- a/keyboards/sha/keymaps/default/keymap.c +++ b/keyboards/sha/keymaps/default/keymap.c @@ -87,4 +87,4 @@ layer_state_t default_layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(3, layer_state_cmp(state, _QWERTY)); rgblight_set_layer_state(4, layer_state_cmp(state, _COLEMAK)); return state; -} \ No newline at end of file +} diff --git a/keyboards/sha/keymaps/default/readme.md b/keyboards/sha/keymaps/default/readme.md index 0ff118c21a..3a0bd0eca7 100644 --- a/keyboards/sha/keymaps/default/readme.md +++ b/keyboards/sha/keymaps/default/readme.md @@ -10,4 +10,4 @@ There are two extended layers: When using a Waveshare RP2040-Matrix, the [RGB Light - Lighting Layers](https://docs.qmk.fm/#/feature_rgblight?id=lighting-layers) feature is used to demonstrate how the 5x5 RGB LEDs can indicate keyboard state. The indicators are: * Base layer on the outer LED ring: QWERTY = yellow, Colemak = cyan -* Lock status indicators using the center 3x3 LEDs: Scroll lock = blue, Caps lock = green, Num lock = red \ No newline at end of file +* Lock status indicators using the center 3x3 LEDs: Scroll lock = blue, Caps lock = green, Num lock = red diff --git a/keyboards/shandoncodes/flygone60/rev3/keyboard.json b/keyboards/shandoncodes/flygone60/rev3/keyboard.json index 4b83963648..2825e69f21 100644 --- a/keyboards/shandoncodes/flygone60/rev3/keyboard.json +++ b/keyboards/shandoncodes/flygone60/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Flygone60 Rev3", "manufacturer": "ShandonCodes", - "url": "https://qmk.fm/keyboards/", "maintainer": "ShandonCodes", "usb": { "vid": "0x7877", diff --git a/keyboards/shandoncodes/mino/hotswap/keyboard.json b/keyboards/shandoncodes/mino/hotswap/keyboard.json index d9f460b391..33ef128a83 100644 --- a/keyboards/shandoncodes/mino/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mino", "manufacturer": "ShandonCodes", - "url": "https://qmk.fm/keyboards/", "maintainer": "ShandonCodes", "usb": { "vid": "0x7877", diff --git a/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c b/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c index a5920b2617..d3ed573901 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c +++ b/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c @@ -5,4 +5,4 @@ void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); -} \ No newline at end of file +} diff --git a/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c b/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c index f068c66215..a395fa56d4 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c +++ b/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c @@ -18,4 +18,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h b/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h index 7b8a66123e..c64f5d49ac 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h +++ b/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h @@ -5,4 +5,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c b/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c index 365f31440a..8347a2c40c 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c +++ b/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h b/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h index 7968bd26da..40c779e509 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h +++ b/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h @@ -5,4 +5,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/shandoncodes/mino_plus/soldered/soldered.c b/keyboards/shandoncodes/mino_plus/soldered/soldered.c index 6dd113ebfa..ed3d3f8ca3 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/soldered.c +++ b/keyboards/shandoncodes/mino_plus/soldered/soldered.c @@ -5,4 +5,4 @@ void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); -} \ No newline at end of file +} diff --git a/keyboards/shandoncodes/riot_pad/halconf.h b/keyboards/shandoncodes/riot_pad/halconf.h index 555a609029..8be896f683 100644 --- a/keyboards/shandoncodes/riot_pad/halconf.h +++ b/keyboards/shandoncodes/riot_pad/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_SPI TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/shandoncodes/riot_pad/mcuconf.h b/keyboards/shandoncodes/riot_pad/mcuconf.h index 7c3eec4802..23b5ed9886 100644 --- a/keyboards/shandoncodes/riot_pad/mcuconf.h +++ b/keyboards/shandoncodes/riot_pad/mcuconf.h @@ -5,4 +5,4 @@ #include_next #undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE \ No newline at end of file +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/shiro/readme.md b/keyboards/shiro/readme.md index 7c4c024a6b..7d6f140b16 100644 --- a/keyboards/shiro/readme.md +++ b/keyboards/shiro/readme.md @@ -24,4 +24,4 @@ Make for this keyboard build check keymap (after setting up your build environme 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). -[Build guide - Japanese](https://github.com/ShinoharaTa/keyboards/blob/master/Shiro/manual/build_guide_ja.md) \ No newline at end of file +[Build guide - Japanese](https://github.com/ShinoharaTa/keyboards/blob/master/Shiro/manual/build_guide_ja.md) diff --git a/keyboards/shk9/keymaps/default/keymap.c b/keyboards/shk9/keymaps/default/keymap.c index cdff8a74be..b28a557587 100644 --- a/keyboards/shk9/keymaps/default/keymap.c +++ b/keyboards/shk9/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_4, KC_5, KC_6, KC_7, KC_8, KC_9 ) -}; \ No newline at end of file +}; diff --git a/keyboards/shk9/readme.md b/keyboards/shk9/readme.md index 1fab42a1ac..e7ed85c9a8 100644 --- a/keyboards/shk9/readme.md +++ b/keyboards/shk9/readme.md @@ -20,4 +20,4 @@ Flashing example for this keyboard: To reset the board into bootloader mode, remove the pcb from the case buy removing keycaps, and unscrewing the 3 screws. Then (while plugged in) press the switch on the underside of the PCB for a few seconds. The board is now in bootloader mode. -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/shorty/readme.md b/keyboards/shorty/readme.md index 23f023b92c..cb33d22038 100644 --- a/keyboards/shorty/readme.md +++ b/keyboards/shorty/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/silakka54/config.h b/keyboards/silakka54/config.h index 220b85cd08..b3d1742042 100644 --- a/keyboards/silakka54/config.h +++ b/keyboards/silakka54/config.h @@ -21,5 +21,4 @@ #define SERIAL_USART_RX_PIN GP1 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 diff --git a/keyboards/silverbullet44/keyboard.json b/keyboards/silverbullet44/keyboard.json index 26e2bcce3a..a724314212 100644 --- a/keyboards/silverbullet44/keyboard.json +++ b/keyboards/silverbullet44/keyboard.json @@ -30,6 +30,60 @@ "animation": "typing_heatmap" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 3], "x": 139, "y": 16, "flags": 2}, + {"matrix": [0, 4], "x": 174, "y": 13, "flags": 2}, + {"matrix": [0, 5], "x": 208, "y": 20, "flags": 2}, + {"matrix": [1, 5], "x": 208, "y": 38, "flags": 2}, + {"matrix": [1, 4], "x": 174, "y": 48, "flags": 2}, + {"matrix": [1, 3], "x": 139, "y": 52, "flags": 2}, + {"matrix": [0, 2], "x": 129, "y": 63, "flags": 1}, + {"matrix": [0, 1], "x": 139, "y": 39, "flags": 4}, + {"matrix": [1, 2], "x": 139, "y": 21, "flags": 4}, + {"matrix": [2, 3], "x": 139, "y": 4, "flags": 4}, + {"matrix": [2, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [2, 5], "x": 156, "y": 19, "flags": 4}, + {"matrix": [3, 5], "x": 156, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [3, 2], "x": 174, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 174, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 174, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 191, "y": 3, "flags": 4}, + {"matrix": [1, 0], "x": 191, "y": 20, "flags": 4}, + {"matrix": [2, 1], "x": 191, "y": 37, "flags": 4}, + {"matrix": [2, 0], "x": 208, "y": 42, "flags": 4}, + {"x": 208, "y": 24, "flags": 4}, + {"x": 208, "y": 7, "flags": 4}, + {"x": 224, "y": 7, "flags": 1}, + {"x": 224, "y": 24, "flags": 1}, + {"x": 224, "y": 41, "flags": 1}, + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"x": 95, "y": 63, "flags": 1}, + {"x": 85, "y": 39, "flags": 4}, + {"x": 85, "y": 21, "flags": 4}, + {"x": 85, "y": 4, "flags": 4}, + {"x": 68, "y": 2, "flags": 4}, + {"x": 68, "y": 19, "flags": 4}, + {"x": 68, "y": 37, "flags": 4}, + {"x": 80, "y": 58, "flags": 1}, + {"x": 60, "y": 55, "flags": 1}, + {"x": 50, "y": 35, "flags": 4}, + {"x": 50, "y": 13, "flags": 4}, + {"x": 50, "y": 0, "flags": 4}, + {"x": 33, "y": 3, "flags": 4}, + {"x": 33, "y": 20, "flags": 4}, + {"x": 33, "y": 37, "flags": 4}, + {"x": 16, "y": 42, "flags": 4}, + {"x": 16, "y": 24, "flags": 4}, + {"x": 16, "y": 7, "flags": 4}, + {"x": 0, "y": 7, "flags": 1} + ], "max_brightness": 150, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/silverbullet44/silverbullet44.c b/keyboards/silverbullet44/silverbullet44.c deleted file mode 100644 index 00bd6153c9..0000000000 --- a/keyboards/silverbullet44/silverbullet44.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2019 SwanMatch - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 18, 7, 6, 0, 1, 2}, - { 19, 17, 8, 5, 4, 3}, - { 21, 20, 16, 9, 10, 11}, - { NO_LED, NO_LED, 15, 14, 13, 12}, -}, { - { 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, - { 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, - { 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, - { 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 }, - { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 }, - { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 }, - { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 }, - { 16, 24 }, { 16, 7 }, { 0, 7 } -}, { - 2, 2, 2, 2, 2, 2, 1, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 1, 4, - 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 1 -} }; - -#endif diff --git a/keyboards/sixkeyboard/sixkeyboard.c b/keyboards/sixkeyboard/sixkeyboard.c index 5a5c818d13..d50a7fb19c 100644 --- a/keyboards/sixkeyboard/sixkeyboard.c +++ b/keyboards/sixkeyboard/sixkeyboard.c @@ -26,4 +26,4 @@ void matrix_init_kb(void) { gpio_write_pin_low(D3); matrix_init_user(); -}; \ No newline at end of file +}; diff --git a/keyboards/skeletonkbd/frost68/keyboard.json b/keyboards/skeletonkbd/frost68/keyboard.json index 9d1173c860..79824c8c27 100644 --- a/keyboards/skeletonkbd/frost68/keyboard.json +++ b/keyboards/skeletonkbd/frost68/keyboard.json @@ -230,4 +230,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c index be7c414f8a..26fa60c2c1 100644 --- a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c +++ b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md index 4a4ed5e7e9..8ebc93b1f8 100644 --- a/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md @@ -1,3 +1,3 @@ ![SkeletonNumPad Layout Image](https://i.imgur.com/oHqihGI.png) -# The default keymap for skeletonnumpad \ No newline at end of file +# The default keymap for skeletonnumpad diff --git a/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c b/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c index 3b77e6f3d3..8548cf99e1 100644 --- a/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c +++ b/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/skippys_custom_pcs/rooboard65/readme.md b/keyboards/skippys_custom_pcs/rooboard65/readme.md index 40a23ec12a..1fa8944bb0 100644 --- a/keyboards/skippys_custom_pcs/rooboard65/readme.md +++ b/keyboards/skippys_custom_pcs/rooboard65/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/skyloong/gk61/pro/pro.c b/keyboards/skyloong/gk61/pro/pro.c index 11411ba2b1..521fce6088 100644 --- a/keyboards/skyloong/gk61/pro/pro.c +++ b/keyboards/skyloong/gk61/pro/pro.c @@ -107,31 +107,6 @@ void suspend_wakeup_init_kb(void) { } #endif -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - return false; -# endif - } - - return true; -} - void board_init(void) { // JTAG-DP Disabled and SW-DP Disabled AFIO->MAPR = (AFIO->MAPR & ~AFIO_MAPR_SWJ_CFG_Msk) | AFIO_MAPR_SWJ_CFG_DISABLE; diff --git a/keyboards/skyloong/gk61/pro_48/pro_48.c b/keyboards/skyloong/gk61/pro_48/pro_48.c index 11411ba2b1..521fce6088 100644 --- a/keyboards/skyloong/gk61/pro_48/pro_48.c +++ b/keyboards/skyloong/gk61/pro_48/pro_48.c @@ -107,31 +107,6 @@ void suspend_wakeup_init_kb(void) { } #endif -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - return false; -# endif - } - - return true; -} - void board_init(void) { // JTAG-DP Disabled and SW-DP Disabled AFIO->MAPR = (AFIO->MAPR & ~AFIO_MAPR_SWJ_CFG_Msk) | AFIO_MAPR_SWJ_CFG_DISABLE; diff --git a/keyboards/skyloong/qk21/v1/v1.c b/keyboards/skyloong/qk21/v1/v1.c index ae85eaab39..4d22de5ccb 100644 --- a/keyboards/skyloong/qk21/v1/v1.c +++ b/keyboards/skyloong/qk21/v1/v1.c @@ -5,30 +5,6 @@ #if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_INDEX) -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - if (!process_record_user(keycode, record)) { - return false; - } - switch (keycode) { -# ifdef RGB_MATRIX_ENABLE - case QK_RGB_MATRIX_TOGGLE: - if (record->event.pressed) { - switch (rgb_matrix_get_flags()) { - case LED_FLAG_ALL: { - rgb_matrix_set_flags(LED_FLAG_NONE); - rgb_matrix_set_color_all(0, 0, 0); - } break; - default: { - rgb_matrix_set_flags(LED_FLAG_ALL); - } break; - } - } - return false; -# endif - } - return true; -} - 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; diff --git a/keyboards/slothie60/keyboard.json b/keyboards/slothie60/keyboard.json new file mode 100644 index 0000000000..2c3404efcb --- /dev/null +++ b/keyboards/slothie60/keyboard.json @@ -0,0 +1,244 @@ +{ + "manufacturer": "makkomise", + "keyboard_name": "slothie60", + "maintainer": "makkomise", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["A10", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], + "rows": ["A8", "B15", "B14", "B13", "B12"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 16, + "sleep": true + }, + "url": "https://github.com/makkomise/slothie60", + "usb": { + "device_version": "1.0.1", + "pid": "0x0002", + "vid": "0x7362" + }, + "ws2812": { + "pin": "A15" + }, + "community_layouts": ["60_iso"], + "layouts": { + "LAYOUT_60_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, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [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": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 2.75}, + {"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.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_rshift": { + "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": [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": [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": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": [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.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "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, "w": 2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [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": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": [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": 6.5, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/slothie60/keymaps/60_iso/keymap.c b/keyboards/slothie60/keymaps/60_iso/keymap.c new file mode 100644 index 0000000000..36cbed2dfd --- /dev/null +++ b/keyboards/slothie60/keymaps/60_iso/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //main layer + [0] = LAYOUT_60_iso( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + //fn1-layer + [1] = LAYOUT_60_iso( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c b/keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c new file mode 100644 index 0000000000..5d8601a35f --- /dev/null +++ b/keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //main layer + [0] = LAYOUT_60_iso_split_rshift( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + //fn1-layer + [1] = LAYOUT_60_iso_split_rshift( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/slothie60/keymaps/default/keymap.c b/keyboards/slothie60/keymaps/default/keymap.c new file mode 100644 index 0000000000..94e7287008 --- /dev/null +++ b/keyboards/slothie60/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //main layer + [0] = LAYOUT_all( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + //fn1-layer + [1] = LAYOUT_all( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/slothie60/readme.md b/keyboards/slothie60/readme.md new file mode 100644 index 0000000000..cb886bd33b --- /dev/null +++ b/keyboards/slothie60/readme.md @@ -0,0 +1,26 @@ +# slothie60 + +![slothie60](https://i.imgur.com/vXrQs6w.png) + +*60% ISO keyboard, support for GH60-cases, RGB underglow.* + +* Keyboard Maintainer: [makkomise](https://github.com/makkomise) +* Hardware Availability: [github/makkomise/slothie60](https://github.com/makkomise/slothie60) + +Make example for this keyboard (after setting up your build environment): + + make slothie60:default + +Flashing example for this keyboard: + + make slothie60: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 +* **Keycode in layout**: Press FN + Esc diff --git a/keyboards/smallkeyboard/keyboard.json b/keyboards/smallkeyboard/keyboard.json index dfbdee1cdd..da08cf66c2 100644 --- a/keyboards/smallkeyboard/keyboard.json +++ b/keyboards/smallkeyboard/keyboard.json @@ -44,6 +44,14 @@ "solid_reactive": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [1, 1], "x": 112, "y": 64, "flags": 1}, + {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/smallkeyboard/smallkeyboard.c b/keyboards/smallkeyboard/smallkeyboard.c index 7442444b00..c3b4a35f84 100644 --- a/keyboards/smallkeyboard/smallkeyboard.c +++ b/keyboards/smallkeyboard/smallkeyboard.c @@ -31,19 +31,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_12, C2_12, C3_12}, // BL5 {0, C1_13, C2_13, C3_13}, // BL6 }; - -led_config_t g_led_config = { - { - { 0, 1, 2}, - { 3, 4, 5}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48}, - { 80, 16},{ 64, 32},{ 80, 32} - }, - { - 4, 4, 4, - 1, 1, 4 - } -}; #endif diff --git a/keyboards/smart68/keyboard.json b/keyboards/smart68/keyboard.json index f97c347ed5..4de6137526 100644 --- a/keyboards/smart68/keyboard.json +++ b/keyboards/smart68/keyboard.json @@ -325,4 +325,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/smithrune/iron165r2/f072/config.h b/keyboards/smithrune/iron165r2/f072/config.h index e53468c2a7..0417a12a0b 100644 --- a/keyboards/smithrune/iron165r2/f072/config.h +++ b/keyboards/smithrune/iron165r2/f072/config.h @@ -19,4 +19,4 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 \ No newline at end of file +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/soldered/macro_pad/keyboard.json b/keyboards/soldered/macro_pad/keyboard.json new file mode 100644 index 0000000000..17699dac4b --- /dev/null +++ b/keyboards/soldered/macro_pad/keyboard.json @@ -0,0 +1,42 @@ +{ + "manufacturer": "Soldered Electronics", + "keyboard_name": "Soldered Macro Pad", + "maintainer": "SolderedElectronics", + "bootloader": "rp2040", + "encoder": { + "rotary": [ + {"pin_a": "GP18", "pin_b": "GP20"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP9", "GP11", "GP19"], + ["GP10", "GP12", "GP13"] + ] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0xAB3C", + "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": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1} + ] + } + } +} diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/soldered/macro_pad/keymaps/default/keymap.c similarity index 57% rename from keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c rename to keyboards/soldered/macro_pad/keymaps/default/keymap.c index 6ccf21e18f..7dec49cd59 100644 --- a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c +++ b/keyboards/soldered/macro_pad/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2022 ziptyze +/* Copyright 2025 Soldered Electronics * * 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 @@ -16,26 +16,20 @@ #include QMK_KEYBOARD_H +// Layer 0: media + utilities const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ortho_4x4( - KC_P7, KC_P8, KC_P9, KC_PMNS, - KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, KC_PSLS, - MO(1), KC_P0, KC_PDOT, KC_PENT - ), - - [1] = LAYOUT_ortho_4x4( - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, - RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT - ) + [0] = LAYOUT( + KC_MPRV, // Previous Track + KC_MNXT, // Next Track + KC_MUTE, // Mute / Unmute - encoder button + KC_MPLY, // Play / Pause + KC_CALC, // Launch Calculator + KC_MAIL // Launch Email client + ) }; - #if defined(ENCODER_MAP_ENABLE) const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RM_VALD, RM_VALU) }, - [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/soldered/macro_pad/keymaps/default/rules.mk b/keyboards/soldered/macro_pad/keymaps/default/rules.mk new file mode 100644 index 0000000000..3beeda7684 --- /dev/null +++ b/keyboards/soldered/macro_pad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/soldered/macro_pad/readme.md b/keyboards/soldered/macro_pad/readme.md new file mode 100644 index 0000000000..2cad8485f5 --- /dev/null +++ b/keyboards/soldered/macro_pad/readme.md @@ -0,0 +1,23 @@ +# Soldered Macro Pad + +![soldered_macro_pad](https://i.imgur.com/Sj12LhW.jpeg) + +Make your own Macro Pad! Soldered Macro Pad Solder Kit is a soldering kit which - when finished - turns into a functional macro pad! Using the pre-loaded QMK firmware, you can map the buttons to any custom function. Easily connect via USB-C. Soldered makes open source products for makers of all skill levels - so we thought to make a 'learn to solder' kit which leaves you with a functional result you can use in your day-to-day computing. + +* Keyboard Maintainer: [Soldered Electronics](https://github.com/SolderedElectronics) +* Hardware Supported: Soldered Macro Pad PCB - Open source files and documentation are coming soon +* Hardware Availability: Product links will be added soon, upon product launch, on [soldered.com](https://soldered.com) + +Make example for this keyboard (after setting up your build environment): + + make soldered/macro_pad:default + +Flashing example for this keyboard: + + make soldered/macro_pad: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 the BOOT MEMORY button upon plugging in. That's it! There you can copy your new .uf2 file. diff --git a/keyboards/sowbug/68keys/68keys.c b/keyboards/sowbug/68keys/68keys.c deleted file mode 100644 index df9681481f..0000000000 --- a/keyboards/sowbug/68keys/68keys.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2021 Mike Tsao - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, NO_LED, NO_LED }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED, NO_LED }, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - // LED Index to Physical Position - {0, 0}, {12, 0}, {25, 0}, {38, 0}, {51, 0}, {64, 0}, {77, 0}, {90, 0}, {103, 0}, {116, 0}, {129, 0}, {142, 0}, {155, 0}, {175, 0}, {198, 0}, {211, 0}, {3, 12}, {19, 12}, {32, 12}, {45, 12}, {58, 12}, {71, 12}, {84, 12}, {97, 12}, {110, 12}, {123, 12}, {136, 12}, {149, 12}, {162, 12}, {178, 12}, {198, 12}, {211, 12}, {4, 25}, {22, 25}, {35, 25}, {48, 25}, {61, 25}, {74, 25}, {87, 25}, {100, 25}, {113, 25}, {126, 25}, {139, 25}, {152, 25}, {173, 25}, {8, 38}, {29, 38}, {42, 38}, {55, 38}, {68, 38}, {81, 38}, {94, 38}, {107, 38}, {120, 38}, {133, 38}, {146, 38}, {170, 38}, {198, 38}, {1, 51}, {17, 51}, {34, 51}, {82, 51}, {131, 51}, {147, 51}, {163, 51}, {185, 51}, {198, 51}, {211, 51} -}, { - // LED Index to Flag - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT -} -}; - -#endif // #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/sowbug/68keys/keyboard.json b/keyboards/sowbug/68keys/keyboard.json index be4ffbf9a9..38ed02706d 100644 --- a/keyboards/sowbug/68keys/keyboard.json +++ b/keyboards/sowbug/68keys/keyboard.json @@ -58,6 +58,76 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 38, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 51, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 77, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 116, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 3, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 58, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 71, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 97, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 110, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 123, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 136, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 149, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 162, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 178, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 35, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 74, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 87, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 113, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 139, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 152, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 173, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 29, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 107, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 133, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 146, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 170, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 198, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 17, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 82, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 131, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 147, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 163, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 185, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 198, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 211, "y": 51, "flags": 4} + ], "max_brightness": 128, "sleep": true }, diff --git a/keyboards/sowbug/ansi_tkl/ansi_tkl.c b/keyboards/sowbug/ansi_tkl/ansi_tkl.c deleted file mode 100644 index 508bf62fe1..0000000000 --- a/keyboards/sowbug/ansi_tkl/ansi_tkl.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Mike Tsao - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = {{ - // Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, NO_LED}, - {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - {50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED}, - {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, NO_LED, NO_LED}, - {76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} - }, - {// LED Index to Physical Position - {0, 0}, {24, 0}, {36, 0}, {49, 0}, {61, 0}, {79, 0}, {92, 0}, {104, 0}, {116, 0}, {135, 0}, {147, 0}, {159, 0}, {171, 0}, {187, 0}, {199, 0}, {211, 0}, - {0, 14}, {12, 14}, {24, 14}, {36, 14}, {49, 14}, {61, 14}, {73, 14}, {85, 14}, {98, 14}, {110, 14}, {122, 14}, {135, 14}, {147, 14}, {165, 14}, {187, 14}, {199, 14}, {211, 14}, - {3, 24}, {18, 24}, {30, 24}, {42, 24}, {55, 24}, {67, 24}, {79, 24}, {92, 24}, {104, 24}, {116, 24}, {128, 24}, {141, 24}, {153, 24}, {168, 24}, {187, 24}, {199, 24}, {211, 24}, - {4, 34}, {21, 34}, {33, 34}, {46, 34}, {58, 34}, {70, 34}, {82, 34}, {95, 34}, {107, 34}, {119, 34}, {131, 34}, {144, 34}, {164, 34}, - {7, 44}, {27, 44}, {39, 44}, {52, 44}, {64, 44}, {76, 44}, {88, 44}, {101, 44}, {113, 44}, {125, 44}, {138, 44}, {161, 44}, {199, 44}, - {1, 54}, {16, 54}, {32, 54}, {78, 54}, {124, 54}, {139, 54}, {154, 54}, {170, 54}, {187, 54}, {199, 54}, {211, 54}}, - {// LED Index to Flag - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT - } -}; - -#endif // #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/sowbug/ansi_tkl/keyboard.json b/keyboards/sowbug/ansi_tkl/keyboard.json index 50b9d8095a..95f3925ff6 100644 --- a/keyboards/sowbug/ansi_tkl/keyboard.json +++ b/keyboards/sowbug/ansi_tkl/keyboard.json @@ -58,6 +58,95 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 79, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 92, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 104, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 116, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 159, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 171, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 199, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 4], "x": 49, "y": 14, "flags": 4}, + {"matrix": [1, 5], "x": 61, "y": 14, "flags": 4}, + {"matrix": [1, 6], "x": 73, "y": 14, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 14, "flags": 4}, + {"matrix": [1, 8], "x": 98, "y": 14, "flags": 4}, + {"matrix": [1, 9], "x": 110, "y": 14, "flags": 4}, + {"matrix": [1, 10], "x": 122, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 135, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 147, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 165, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 187, "y": 14, "flags": 4}, + {"matrix": [1, 15], "x": 199, "y": 14, "flags": 4}, + {"matrix": [1, 16], "x": 211, "y": 14, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 18, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 55, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 67, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 79, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 92, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 104, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 116, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 128, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 141, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 153, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 168, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 187, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 199, "y": 24, "flags": 4}, + {"matrix": [2, 16], "x": 211, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 34, "flags": 4}, + {"matrix": [3, 1], "x": 21, "y": 34, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 46, "y": 34, "flags": 4}, + {"matrix": [3, 4], "x": 58, "y": 34, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 34, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 34, "flags": 4}, + {"matrix": [3, 7], "x": 95, "y": 34, "flags": 4}, + {"matrix": [3, 8], "x": 107, "y": 34, "flags": 4}, + {"matrix": [3, 9], "x": 119, "y": 34, "flags": 4}, + {"matrix": [3, 10], "x": 131, "y": 34, "flags": 4}, + {"matrix": [3, 11], "x": 144, "y": 34, "flags": 4}, + {"matrix": [3, 12], "x": 164, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 44, "flags": 4}, + {"matrix": [4, 1], "x": 27, "y": 44, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 44, "flags": 4}, + {"matrix": [4, 3], "x": 52, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 44, "flags": 4}, + {"matrix": [4, 5], "x": 76, "y": 44, "flags": 4}, + {"matrix": [4, 6], "x": 88, "y": 44, "flags": 4}, + {"matrix": [4, 7], "x": 101, "y": 44, "flags": 4}, + {"matrix": [4, 8], "x": 113, "y": 44, "flags": 4}, + {"matrix": [4, 9], "x": 125, "y": 44, "flags": 4}, + {"matrix": [4, 10], "x": 138, "y": 44, "flags": 4}, + {"matrix": [4, 11], "x": 161, "y": 44, "flags": 4}, + {"matrix": [4, 12], "x": 199, "y": 44, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 54, "flags": 4}, + {"matrix": [5, 1], "x": 16, "y": 54, "flags": 4}, + {"matrix": [5, 2], "x": 32, "y": 54, "flags": 4}, + {"matrix": [5, 3], "x": 78, "y": 54, "flags": 4}, + {"matrix": [5, 4], "x": 124, "y": 54, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 54, "flags": 4}, + {"matrix": [5, 6], "x": 154, "y": 54, "flags": 4}, + {"matrix": [5, 7], "x": 170, "y": 54, "flags": 4}, + {"matrix": [5, 8], "x": 187, "y": 54, "flags": 4}, + {"matrix": [5, 9], "x": 199, "y": 54, "flags": 4}, + {"matrix": [5, 10], "x": 211, "y": 54, "flags": 4} + ], "max_brightness": 128, "sleep": true }, diff --git a/keyboards/spaceholdings/nebula12b/keyboard.json b/keyboards/spaceholdings/nebula12b/keyboard.json index 6990da485b..c1092a75db 100755 --- a/keyboards/spaceholdings/nebula12b/keyboard.json +++ b/keyboards/spaceholdings/nebula12b/keyboard.json @@ -57,6 +57,24 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 2}, + {"matrix": [0, 2], "x": 224, "y": 9, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 27, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 27, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 46, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 46, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 46, "flags": 4}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [3, 2], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 9, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"matrix": [0, 1], "x": 112, "y": 9, "flags": 4} + ], "sleep": true }, "build": { diff --git a/keyboards/spaceholdings/nebula12b/nebula12b.c b/keyboards/spaceholdings/nebula12b/nebula12b.c deleted file mode 100755 index 6bca6c331b..0000000000 --- a/keyboards/spaceholdings/nebula12b/nebula12b.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2022 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 13, 15, 1 }, - { 4, 3, 2 }, - { 5, 6, 7 }, - { 11, 10, 9 }, -}, { - {224, 0 }, {224, 9 }, {224, 27 }, {112, 27 }, { 0,27 }, - { 0, 46 }, {112, 46 }, {224, 46 }, {224, 55 }, {224,64 }, - {112, 64 }, { 0, 64 }, { 0, 55 }, { 0, 9 }, { 0, 0 }, {112, 9 } -}, { - 2, - 4, 4, 4, 4, 4, 4, 4, - 2, - 4, 4, 4, - 2, - 4, - 2, - 4 -} }; -// clang-format on -#endif - diff --git a/keyboards/spaceholdings/nebula68b/hs/hs.c b/keyboards/spaceholdings/nebula68b/hs/hs.c deleted file mode 100755 index 7ac8da2e0d..0000000000 --- a/keyboards/spaceholdings/nebula68b/hs/hs.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2021 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17, 18 }, - { 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, NO_LED, 21 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 22, 49, 19 }, - { 63, NO_LED, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 20 }, - { 64, 65, 67, NO_LED, NO_LED, NO_LED, 69, NO_LED, NO_LED, 71, 72, 73, 75, 76, 77 } -}, { - { 6, 10}, { 19, 10}, { 32, 10}, { 39, 11}, { 45, 10}, { 58, 10}, { 71, 10}, { 84, 10}, { 90, 11}, { 97, 10}, {110, 10}, {123, 10}, {130, 11}, {136, 10}, {149, 10}, {162, 10}, - {178, 13}, {182, 10}, {205, 10}, {218, 10}, {218, 23}, {205, 23}, {185, 23}, {169, 23}, {156, 23}, {143, 23}, {130, 23}, {117, 23}, {104, 23}, { 91, 23}, { 78, 23}, - { 65, 23}, { 52, 23}, { 39, 23}, { 26, 23}, { 10, 23}, { 4, 26}, { 17, 29}, { 29, 35}, { 42, 35}, { 55, 35}, { 68, 35}, { 81, 35}, { 94, 35}, {107, 35}, {120, 35}, {133, 35}, - {146, 35}, {159, 35}, {180, 35}, {220, 32}, {205, 48}, {177, 48}, {153, 48}, {140, 48}, {127, 48}, {114, 48}, {101, 48}, { 88, 48}, { 75, 48}, { 62, 48}, { 49, 48}, { 36, 48}, - { 15, 48}, { 8, 61}, { 24, 61}, { 32, 52}, { 41, 61}, { 81, 56}, { 89, 61}, {132, 53}, {138, 61}, {154, 61}, {170, 61}, {179, 53}, {192, 61}, {205, 61}, {218, 61} -}, { - 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 2, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 2, 1, 2, 4, 2, 1, 1, 1, 2, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/spaceholdings/nebula68b/hs/keyboard.json b/keyboards/spaceholdings/nebula68b/hs/keyboard.json index ca41cff8e6..f99fd95bc4 100755 --- a/keyboards/spaceholdings/nebula68b/hs/keyboard.json +++ b/keyboards/spaceholdings/nebula68b/hs/keyboard.json @@ -1,5 +1,87 @@ { "keyboard_name": "NEBULA68B HOTSWAP", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 6, "y": 10, "flags": 1}, + {"matrix": [0, 1], "x": 19, "y": 10, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 10, "flags": 4}, + {"x": 39, "y": 11, "flags": 2}, + {"matrix": [0, 3], "x": 45, "y": 10, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 10, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 10, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 10, "flags": 4}, + {"x": 90, "y": 11, "flags": 2}, + {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 10, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 10, "flags": 4}, + {"x": 130, "y": 11, "flags": 2}, + {"matrix": [0, 10], "x": 136, "y": 10, "flags": 4}, + {"matrix": [0, 11], "x": 149, "y": 10, "flags": 4}, + {"matrix": [0, 12], "x": 162, "y": 10, "flags": 4}, + {"x": 178, "y": 13, "flags": 2}, + {"matrix": [0, 13], "x": 182, "y": 10, "flags": 1}, + {"matrix": [0, 14], "x": 205, "y": 10, "flags": 1}, + {"matrix": [2, 14], "x": 218, "y": 10, "flags": 1}, + {"matrix": [3, 14], "x": 218, "y": 23, "flags": 1}, + {"matrix": [1, 14], "x": 205, "y": 23, "flags": 1}, + {"matrix": [2, 12], "x": 185, "y": 23, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 23, "flags": 4}, + {"matrix": [1, 11], "x": 156, "y": 23, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 23, "flags": 4}, + {"matrix": [1, 9], "x": 130, "y": 23, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 23, "flags": 4}, + {"matrix": [1, 7], "x": 104, "y": 23, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 23, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 23, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 23, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 23, "flags": 4}, + {"matrix": [1, 0], "x": 10, "y": 23, "flags": 1}, + {"x": 4, "y": 26, "flags": 2}, + {"matrix": [2, 0], "x": 17, "y": 29, "flags": 1}, + {"matrix": [2, 1], "x": 29, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 35, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 35, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 107, "y": 35, "flags": 4}, + {"matrix": [2, 8], "x": 120, "y": 35, "flags": 4}, + {"matrix": [2, 9], "x": 133, "y": 35, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 35, "flags": 4}, + {"matrix": [2, 11], "x": 159, "y": 35, "flags": 4}, + {"matrix": [2, 13], "x": 180, "y": 35, "flags": 1}, + {"x": 220, "y": 32, "flags": 2}, + {"matrix": [3, 13], "x": 205, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 177, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 61, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 61, "flags": 1}, + {"x": 32, "y": 52, "flags": 2}, + {"matrix": [4, 2], "x": 41, "y": 61, "flags": 1}, + {"x": 81, "y": 56, "flags": 2}, + {"matrix": [4, 6], "x": 89, "y": 61, "flags": 4}, + {"x": 132, "y": 53, "flags": 2}, + {"matrix": [4, 9], "x": 138, "y": 61, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 61, "flags": 1}, + {"matrix": [4, 11], "x": 170, "y": 61, "flags": 1}, + {"x": 179, "y": 53, "flags": 2}, + {"matrix": [4, 12], "x": 192, "y": 61, "flags": 1}, + {"matrix": [4, 13], "x": 205, "y": 61, "flags": 1}, + {"matrix": [4, 14], "x": 218, "y": 61, "flags": 1} + ] + }, "community_layouts": ["68_ansi"], "layouts": { "LAYOUT_68_ansi": { diff --git a/keyboards/spaceholdings/nebula68b/solder/keyboard.json b/keyboards/spaceholdings/nebula68b/solder/keyboard.json index 3a50385fe3..ea002840e2 100755 --- a/keyboards/spaceholdings/nebula68b/solder/keyboard.json +++ b/keyboards/spaceholdings/nebula68b/solder/keyboard.json @@ -1,5 +1,88 @@ { "keyboard_name": "NEBULA68B SOLDER", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 6, "y": 10, "flags": 1}, + {"matrix": [0, 1], "x": 19, "y": 10, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 10, "flags": 4}, + {"x": 44, "y": 13, "flags": 2}, + {"matrix": [0, 3], "x": 45, "y": 10, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 10, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 10, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 10, "flags": 4}, + {"x": 88, "y": 13, "flags": 2}, + {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 10, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 10, "flags": 4}, + {"x": 132, "y": 13, "flags": 2}, + {"matrix": [0, 10], "x": 136, "y": 10, "flags": 4}, + {"matrix": [0, 11], "x": 149, "y": 10, "flags": 4}, + {"matrix": [0, 12], "x": 162, "y": 10, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 10, "flags": 4}, + {"x": 179, "y": 13, "flags": 2}, + {"matrix": [0, 13], "x": 188, "y": 10, "flags": 1}, + {"matrix": [0, 14], "x": 205, "y": 10, "flags": 1}, + {"matrix": [2, 14], "x": 218, "y": 10, "flags": 1}, + {"matrix": [3, 14], "x": 218, "y": 23, "flags": 1}, + {"matrix": [1, 14], "x": 205, "y": 23, "flags": 1}, + {"matrix": [2, 12], "x": 185, "y": 23, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 23, "flags": 4}, + {"matrix": [1, 11], "x": 156, "y": 23, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 23, "flags": 4}, + {"matrix": [1, 9], "x": 130, "y": 23, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 23, "flags": 4}, + {"matrix": [1, 7], "x": 104, "y": 23, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 23, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 23, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 23, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 23, "flags": 4}, + {"matrix": [1, 0], "x": 10, "y": 23, "flags": 1}, + {"x": 4, "y": 26, "flags": 2}, + {"matrix": [2, 0], "x": 11, "y": 35, "flags": 1}, + {"matrix": [2, 1], "x": 29, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 35, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 35, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 107, "y": 35, "flags": 4}, + {"matrix": [2, 8], "x": 120, "y": 35, "flags": 4}, + {"matrix": [2, 9], "x": 133, "y": 35, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 35, "flags": 4}, + {"matrix": [2, 11], "x": 159, "y": 35, "flags": 4}, + {"matrix": [2, 13], "x": 180, "y": 35, "flags": 1}, + {"x": 220, "y": 32, "flags": 2}, + {"matrix": [3, 13], "x": 205, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 177, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 61, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 61, "flags": 1}, + {"x": 32, "y": 52, "flags": 2}, + {"matrix": [4, 2], "x": 41, "y": 61, "flags": 1}, + {"x": 82, "y": 56, "flags": 2}, + {"matrix": [4, 6], "x": 89, "y": 61, "flags": 4}, + {"x": 132, "y": 53, "flags": 2}, + {"matrix": [4, 9], "x": 138, "y": 61, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 61, "flags": 1}, + {"matrix": [4, 11], "x": 170, "y": 61, "flags": 1}, + {"x": 179, "y": 53, "flags": 2}, + {"matrix": [4, 12], "x": 192, "y": 61, "flags": 1}, + {"matrix": [4, 13], "x": 205, "y": 61, "flags": 1}, + {"matrix": [4, 14], "x": 218, "y": 61, "flags": 1} + ] + }, "community_layouts": ["68_ansi"], "layouts": { "LAYOUT_68_ansi": { diff --git a/keyboards/spaceholdings/nebula68b/solder/solder.c b/keyboards/spaceholdings/nebula68b/solder/solder.c deleted file mode 100755 index 352cee1d52..0000000000 --- a/keyboards/spaceholdings/nebula68b/solder/solder.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2021 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 18, 19 }, - { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 16, 22 }, - { 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 23, 50, 20 }, - { 64, NO_LED, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 21 }, - { 65, 66, 68, NO_LED, NO_LED, NO_LED, 70, NO_LED, NO_LED, 72, 73, 74, 76, 77, 78 } -}, { - { 6, 10}, { 19, 10}, { 32, 10}, { 44, 13}, { 45, 10}, { 58, 10}, { 71, 10}, { 84, 10}, { 88, 13}, { 97, 10}, {110, 10}, {123, 10}, {132, 13}, {136, 10}, {149, 10}, {162, 10}, - {175, 10}, {179, 13}, {188, 10}, {205, 10}, {218, 10}, {218, 23}, {205, 23}, {185, 23}, {169, 23}, {156, 23}, {143, 23}, {130, 23}, {117, 23}, {104, 23}, { 91, 23}, { 78, 23}, - { 65, 23}, { 52, 23}, { 39, 23}, { 26, 23}, { 10, 23}, { 4, 26}, { 11, 35}, { 29, 35}, { 42, 35}, { 55, 35}, { 68, 35}, { 81, 35}, { 94, 35}, {107, 35}, {120, 35}, {133, 35}, - {146, 35}, {159, 35}, {180, 35}, {220, 32}, {205, 48}, {177, 48}, {153, 48}, {140, 48}, {127, 48}, {114, 48}, {101, 48}, { 88, 48}, { 75, 48}, { 62, 48}, { 49, 48}, { 36, 48}, - { 15, 48}, { 8, 61}, { 24, 61}, { 32, 52}, { 41, 61}, { 82, 56}, { 89, 61}, {132, 53}, {138, 61}, {154, 61}, {170, 61}, {179, 53}, {192, 61}, {205, 61}, {218, 61} -}, { - 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 4, 2, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 2, 1, 2, 4, 2, 1, 1, 1, 2, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/config.h b/keyboards/spaceman/2_milk/keymaps/emoji/config.h index a564c44a29..96f5c8aa26 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/config.h +++ b/keyboards/spaceman/2_milk/keymaps/emoji/config.h @@ -1,2 +1,2 @@ #define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE -#define TAPPING_TERM 300 \ No newline at end of file +#define TAPPING_TERM 300 diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/readme.md b/keyboards/spaceman/2_milk/keymaps/emoji/readme.md index 43b7dc4257..ca7faaf170 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/readme.md +++ b/keyboards/spaceman/2_milk/keymaps/emoji/readme.md @@ -36,4 +36,4 @@ multiples times will produce different emojis. - 2 Taps: `(ノಠ痊ಠ)ノ彡┻━┻` - 3 Taps: `╭∩╮(-_-)╭∩╮` - 4 Taps: `(づ ̄ ³ ̄)づ` -- 5 Taps: `(︺︹︺)` \ No newline at end of file +- 5 Taps: `(︺︹︺)` diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk b/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk index 7a64eb9023..7ff594a2ae 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk +++ b/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk @@ -1,2 +1,2 @@ UNICODE_ENABLE = yes # Unicode -TAP_DANCE_ENABLE = yes # Tap Dance \ No newline at end of file +TAP_DANCE_ENABLE = yes # Tap Dance diff --git a/keyboards/spleeb/spleeb.c b/keyboards/spleeb/spleeb.c index 33131fa3e2..96cf622743 100644 --- a/keyboards/spleeb/spleeb.c +++ b/keyboards/spleeb/spleeb.c @@ -283,7 +283,6 @@ void pointing_device_init_kb(void) { cirque_pinnacle_enable_cursor_glide(false); set_auto_mouse_enable(true); - pointing_device_init_user(); } /** diff --git a/keyboards/split67/readme.md b/keyboards/split67/readme.md index e42fa9f9ff..5db1f48338 100644 --- a/keyboards/split67/readme.md +++ b/keyboards/split67/readme.md @@ -23,4 +23,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/splitkb/aurora/corne/rev1/keyboard.json b/keyboards/splitkb/aurora/corne/rev1/keyboard.json index 40983ec28d..9cbc2065ba 100644 --- a/keyboards/splitkb/aurora/corne/rev1/keyboard.json +++ b/keyboards/splitkb/aurora/corne/rev1/keyboard.json @@ -103,7 +103,8 @@ }, "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true } } }, diff --git a/keyboards/splitkb/aurora/helix/config.h b/keyboards/splitkb/aurora/helix/config.h index 0212d8e9af..872724ceb3 100644 --- a/keyboards/splitkb/aurora/helix/config.h +++ b/keyboards/splitkb/aurora/helix/config.h @@ -18,4 +18,4 @@ #ifdef OLED_ENABLE # define OLED_FONT_H "keyboards/splitkb/aurora/helix/glcdfont.c" -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/helix/info.json b/keyboards/splitkb/aurora/helix/info.json index 5729b00207..4782d0da8f 100644 --- a/keyboards/splitkb/aurora/helix/info.json +++ b/keyboards/splitkb/aurora/helix/info.json @@ -13,4 +13,4 @@ "device_version": "1.0.0", "vid": "0x8D1D" } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/config.h b/keyboards/splitkb/aurora/helix/keymaps/debug/config.h index a15def3fb9..9c0c9483a9 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/config.h +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/config.h @@ -16,4 +16,4 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c b/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c index 2c99ef9429..497374d057 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c @@ -65,4 +65,4 @@ bool oled_task_user(void) { oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), false); return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md b/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md index 827235e447..3b6fbdaf1b 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md @@ -21,4 +21,4 @@ Both underglow and per-key RGB should be fading between red and off. ## OLEDs -Both the primary and secondary side should be filled with characters. \ No newline at end of file +Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk b/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk index 9c9df9b126..e1b414f5c1 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk @@ -5,4 +5,4 @@ # RGB Matrix is enabled at the revision level, # while we use the regular RGB underglow for testing RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/config.h b/keyboards/splitkb/aurora/helix/keymaps/default/config.h index a6863a01e8..6f1dc5fde4 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/config.h +++ b/keyboards/splitkb/aurora/helix/keymaps/default/config.h @@ -21,4 +21,4 @@ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_RAINBOW_BEACON -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json index 5411d34941..cfeea8726d 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json @@ -49,4 +49,4 @@ ], "layout": "LAYOUT", "version": 1 -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/readme.md b/keyboards/splitkb/aurora/helix/keymaps/default/readme.md index 2f0aa63ca7..4e3710e67c 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/readme.md +++ b/keyboards/splitkb/aurora/helix/keymaps/default/readme.md @@ -85,4 +85,4 @@ qmk json2c -o keymap.c keymap.json ``` You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** \ No newline at end of file +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/aurora/helix/readme.md b/keyboards/splitkb/aurora/helix/readme.md index fc7727f145..19c5cdf38c 100644 --- a/keyboards/splitkb/aurora/helix/readme.md +++ b/keyboards/splitkb/aurora/helix/readme.md @@ -45,4 +45,4 @@ The Aurora series were designed as a homage to open source keyboard kits that ha With the Aurora series, we aim to make these kits available to the community in a way that both honors the original, while also offering the best possible feature set and a consistent, well-documented build experience. -For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. \ No newline at end of file +For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. diff --git a/keyboards/splitkb/aurora/helix/rev1/keyboard.json b/keyboards/splitkb/aurora/helix/rev1/keyboard.json index 0c3569f26c..3091bf9407 100644 --- a/keyboards/splitkb/aurora/helix/rev1/keyboard.json +++ b/keyboards/splitkb/aurora/helix/rev1/keyboard.json @@ -129,6 +129,11 @@ }, "serial": { "pin": "D2" + }, + "transport": { + "sync": { + "oled": true + } } }, "usb": { @@ -207,4 +212,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md b/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md index 05cf701699..4dfd1a40d0 100644 --- a/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md +++ b/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md @@ -85,4 +85,4 @@ qmk json2c -o keymap.c keymap.json ``` You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** \ No newline at end of file +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/aurora/lily58/rev1/keyboard.json b/keyboards/splitkb/aurora/lily58/rev1/keyboard.json index 60645f9deb..74e30126fc 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/keyboard.json +++ b/keyboards/splitkb/aurora/lily58/rev1/keyboard.json @@ -114,7 +114,8 @@ }, "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true } } }, diff --git a/keyboards/splitkb/aurora/sofle_v2/config.h b/keyboards/splitkb/aurora/sofle_v2/config.h index 7b00c71645..b360db6996 100644 --- a/keyboards/splitkb/aurora/sofle_v2/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/config.h @@ -18,4 +18,4 @@ #ifdef OLED_ENABLE # define OLED_FONT_H "keyboards/splitkb/aurora/sofle_v2/glcdfont.c" -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h index a15def3fb9..9c0c9483a9 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h @@ -16,4 +16,4 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c index b9383db325..4ff61149c2 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c @@ -66,4 +66,4 @@ bool oled_task_user(void) { oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), false); return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md index c429b0246d..8052cbaff2 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md @@ -21,4 +21,4 @@ Both underglow and per-key RGB should be fading between red and off. ## OLEDs -Both the primary and secondary side should be filled with characters. \ No newline at end of file +Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk index 9c9df9b126..e1b414f5c1 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk @@ -5,4 +5,4 @@ # RGB Matrix is enabled at the revision level, # while we use the regular RGB underglow for testing RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h index 75d233f42e..89729ded58 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h @@ -21,4 +21,4 @@ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_RAINBOW_BEACON -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json index 19146dbde1..2d528da2f2 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json @@ -49,4 +49,4 @@ "sleep": true } } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md index 6ff79a4f99..86ef604b54 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md @@ -85,4 +85,4 @@ qmk json2c -o keymap.c keymap.json ``` You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** \ No newline at end of file +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/aurora/sofle_v2/readme.md b/keyboards/splitkb/aurora/sofle_v2/readme.md index 13f1d84bbb..4344babc6b 100644 --- a/keyboards/splitkb/aurora/sofle_v2/readme.md +++ b/keyboards/splitkb/aurora/sofle_v2/readme.md @@ -45,4 +45,4 @@ The Aurora series were designed as a homage to open source keyboard kits that ha With the Aurora series, we aim to make these kits available to the community in a way that both honors the original, while also offering the best possible feature set and a consistent, well-documented build experience. -For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. \ No newline at end of file +For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/keyboard.json b/keyboards/splitkb/aurora/sofle_v2/rev1/keyboard.json index 6c72888b10..70dcae5aa6 100644 --- a/keyboards/splitkb/aurora/sofle_v2/rev1/keyboard.json +++ b/keyboards/splitkb/aurora/sofle_v2/rev1/keyboard.json @@ -123,6 +123,11 @@ }, "serial": { "pin": "D2" + }, + "transport": { + "sync": { + "oled": true + } } }, "usb": { diff --git a/keyboards/splitkb/aurora/sweep/keymaps/default/config.h b/keyboards/splitkb/aurora/sweep/keymaps/default/config.h index 4605cb782a..5307f98d35 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/default/config.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/default/config.h @@ -31,4 +31,4 @@ # define MOUSEKEY_WHEEL_INTERVAL 50 // The default is 40 # define MOUSEKEY_WHEEL_TIME_TO_MAX 100 -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/sweep/rev1/config.h b/keyboards/splitkb/aurora/sweep/rev1/config.h deleted file mode 100644 index 5a5910d81c..0000000000 --- a/keyboards/splitkb/aurora/sweep/rev1/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2022 splitkb.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 . - */ - -#pragma once - -// Not yet available in `info.json` -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X32 -# define SPLIT_OLED_ENABLE -#endif diff --git a/keyboards/splitkb/aurora/sweep/rev1/keyboard.json b/keyboards/splitkb/aurora/sweep/rev1/keyboard.json index e90995b207..69f1074ad2 100644 --- a/keyboards/splitkb/aurora/sweep/rev1/keyboard.json +++ b/keyboards/splitkb/aurora/sweep/rev1/keyboard.json @@ -100,7 +100,8 @@ }, "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true } } }, diff --git a/keyboards/splitkb/elora/info.json b/keyboards/splitkb/elora/info.json index 2ed11bfd19..02c9c49c02 100644 --- a/keyboards/splitkb/elora/info.json +++ b/keyboards/splitkb/elora/info.json @@ -169,4 +169,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/elora/keymaps/debug/config.h b/keyboards/splitkb/elora/keymaps/debug/config.h index 0024fe4dfe..f2d79afe0e 100644 --- a/keyboards/splitkb/elora/keymaps/debug/config.h +++ b/keyboards/splitkb/elora/keymaps/debug/config.h @@ -6,4 +6,4 @@ // Myriad boilerplate #define MYRIAD_ENABLE -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/splitkb/elora/keymaps/debug/rules.mk b/keyboards/splitkb/elora/keymaps/debug/rules.mk index 6c52b64847..b5bd51b327 100644 --- a/keyboards/splitkb/elora/keymaps/debug/rules.mk +++ b/keyboards/splitkb/elora/keymaps/debug/rules.mk @@ -1,2 +1,2 @@ RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/elora/keymaps/default/config.h b/keyboards/splitkb/elora/keymaps/default/config.h index e35c193957..fe536aa601 100644 --- a/keyboards/splitkb/elora/keymaps/default/config.h +++ b/keyboards/splitkb/elora/keymaps/default/config.h @@ -4,4 +4,4 @@ #pragma once // Myriad boilerplate -#define MYRIAD_ENABLE \ No newline at end of file +#define MYRIAD_ENABLE diff --git a/keyboards/splitkb/elora/keymaps/default/readme.md b/keyboards/splitkb/elora/keymaps/default/readme.md index 7e95db3938..f0ed43858a 100644 --- a/keyboards/splitkb/elora/keymaps/default/readme.md +++ b/keyboards/splitkb/elora/keymaps/default/readme.md @@ -47,4 +47,4 @@ The underglow LEDs should default red. ## Going further… This default keymap can be used as is, unchanged, as a daily driver for your Elora but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove. -Check out the #keymap-ideas channel on the official splitkb Discord server for inspiration. \ No newline at end of file +Check out the #keymap-ideas channel on the official splitkb Discord server for inspiration. diff --git a/keyboards/splitkb/elora/rev1/config.h b/keyboards/splitkb/elora/rev1/config.h index 7633cf00af..a18edb2842 100644 --- a/keyboards/splitkb/elora/rev1/config.h +++ b/keyboards/splitkb/elora/rev1/config.h @@ -55,6 +55,4 @@ // including some code in rev1.c but makes // it so the timeout's are not synced // between halves. -#undef SPLIT_OLED_ENABLE #define OLED_TIMEOUT 0 - diff --git a/keyboards/splitkb/elora/rev1/keyboard.json b/keyboards/splitkb/elora/rev1/keyboard.json index 7996fdccb9..a7921c4e1f 100644 --- a/keyboards/splitkb/elora/rev1/keyboard.json +++ b/keyboards/splitkb/elora/rev1/keyboard.json @@ -91,7 +91,8 @@ }, "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true }, "watchdog": true, "watchdog_timeout": 3000 diff --git a/keyboards/splitkb/elora/rev1/matrix.c b/keyboards/splitkb/elora/rev1/matrix.c index 625eafcd85..a5df47c3c7 100644 --- a/keyboards/splitkb/elora/rev1/matrix.c +++ b/keyboards/splitkb/elora/rev1/matrix.c @@ -54,4 +54,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { #else return matrix_has_changed; #endif -} \ No newline at end of file +} diff --git a/keyboards/splitkb/elora/rev1/myriad.c b/keyboards/splitkb/elora/rev1/myriad.c index 0263821b81..eb798b19b1 100644 --- a/keyboards/splitkb/elora/rev1/myriad.c +++ b/keyboards/splitkb/elora/rev1/myriad.c @@ -338,4 +338,4 @@ bool pointing_device_driver_init(void) { gpio_set_pin_input(MYRIAD_ADC1); // Y gpio_set_pin_input(MYRIAD_ADC2); // X return true; -} \ No newline at end of file +} diff --git a/keyboards/splitkb/elora/rev1/rules.mk b/keyboards/splitkb/elora/rev1/rules.mk index 643fdc9a1b..4a43aca87f 100644 --- a/keyboards/splitkb/elora/rev1/rules.mk +++ b/keyboards/splitkb/elora/rev1/rules.mk @@ -4,4 +4,4 @@ CUSTOM_MATRIX = lite # Myriad boilerplate SRC += myriad.c matrix.c ANALOG_DRIVER_REQUIRED = yes -POINTING_DEVICE_DRIVER = custom \ No newline at end of file +POINTING_DEVICE_DRIVER = custom diff --git a/keyboards/splitkb/halcyon/elora/readme.md b/keyboards/splitkb/halcyon/elora/readme.md index 9970d31f43..7d3692ce45 100644 --- a/keyboards/splitkb/halcyon/elora/readme.md +++ b/keyboards/splitkb/halcyon/elora/readme.md @@ -28,4 +28,4 @@ Enter the bootloader in 3 ways: * **Reset button**: Double-tap the reset button at the top of the controller, right above the USB-C port. * **Bootloader reset**: Hold down the "Boot" button and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c index 78fd8d4fab..1205300d6f 100755 --- a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c @@ -203,4 +203,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ // ), // -}; \ No newline at end of file +}; diff --git a/keyboards/splitkb/halcyon/kyria/rev4/config.h b/keyboards/splitkb/halcyon/kyria/rev4/config.h index c09744f923..d223ff2f28 100755 --- a/keyboards/splitkb/halcyon/kyria/rev4/config.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/config.h @@ -29,4 +29,4 @@ #define SPI_DRIVER SPID1 #define SPI_SCK_PIN GP14 #define SPI_MOSI_PIN GP15 -#define SPI_MISO_PIN GP12 \ No newline at end of file +#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h index 6d2db1bbd2..95e6fcfdea 100644 --- a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h @@ -8,4 +8,4 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h index 6792b923f1..4b1b3eae30 100644 --- a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h @@ -11,4 +11,4 @@ #define RP_I2C_USE_I2C0 TRUE #undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE \ No newline at end of file +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h index 615d93496d..f20ce9a11a 100644 --- a/keyboards/splitkb/kyria/rev1/config.h +++ b/keyboards/splitkb/kyria/rev1/config.h @@ -18,4 +18,3 @@ along with this program. If not, see . #pragma once #define OLED_DISPLAY_128X64 -#define SPLIT_OLED_ENABLE diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json index 1e21c60978..5dc8876060 100644 --- a/keyboards/splitkb/kyria/rev1/info.json +++ b/keyboards/splitkb/kyria/rev1/info.json @@ -19,6 +19,28 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 1], "x": 91, "y": 40, "flags": 255}, + {"matrix": [3, 2], "x": 77, "y": 56, "flags": 255}, + {"matrix": [3, 3], "x": 63, "y": 56, "flags": 255}, + {"matrix": [1, 2], "x": 77, "y": 24, "flags": 255}, + {"matrix": [0, 3], "x": 63, "y": 8, "flags": 255}, + {"matrix": [0, 6], "x": 21, "y": 8, "flags": 255}, + {"matrix": [2, 6], "x": 21, "y": 40, "flags": 255}, + {"matrix": [2, 5], "x": 35, "y": 40, "flags": 255}, + {"matrix": [2, 7], "x": 7, "y": 40, "flags": 255}, + {"matrix": [0, 7], "x": 7, "y": 8, "flags": 255}, + {"matrix": [6, 1], "x": 133, "y": 40, "flags": 255}, + {"matrix": [7, 2], "x": 147, "y": 56, "flags": 255}, + {"matrix": [7, 3], "x": 161, "y": 56, "flags": 255}, + {"matrix": [5, 2], "x": 147, "y": 24, "flags": 255}, + {"matrix": [4, 3], "x": 161, "y": 8, "flags": 255}, + {"matrix": [4, 6], "x": 203, "y": 8, "flags": 255}, + {"matrix": [6, 6], "x": 203, "y": 40, "flags": 255}, + {"matrix": [6, 5], "x": 189, "y": 40, "flags": 255}, + {"matrix": [6, 7], "x": 217, "y": 40, "flags": 255}, + {"matrix": [4, 7], "x": 217, "y": 8, "flags": 255} + ], "max_brightness": 170, "sleep": true, "split_count": [10, 10] @@ -26,7 +48,8 @@ "split": { "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true } } }, diff --git a/keyboards/splitkb/kyria/rev1/rev1.c b/keyboards/splitkb/kyria/rev1/rev1.c index db14411933..2b64504cc3 100644 --- a/keyboards/splitkb/kyria/rev1/rev1.c +++ b/keyboards/splitkb/kyria/rev1/rev1.c @@ -32,34 +32,3 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; # endif #endif - -#ifdef RGB_MATRIX_ENABLE -/* Map physical under glow LEDs for RGB matrix support - * - * 09, 05, xx, xx, 04, xx, xx, 14, xx, xx, 15, 19, - * xx, xx, xx, xx, xx, 03, 13, xx, xx, xx, xx, xx, - * 08, 06, 07, xx, xx, xx, 00, xx, xx, 10, xx, xx, xx, 17, 16, 18, - * xx, 02, 01, xx, xx, xx, xx, 11, 12, xx - */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, 4, NO_LED, NO_LED, 5, 9 }, - { NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 0, NO_LED, NO_LED, NO_LED, 7, 6, 8 }, - { NO_LED, NO_LED, 1, 2, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, 14, NO_LED, NO_LED, 15, 19 }, - { NO_LED, NO_LED, 13, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 10, NO_LED, NO_LED, NO_LED, 17, 16, 18 }, - { NO_LED, NO_LED, 11, 12, NO_LED, NO_LED, NO_LED, NO_LED }, -}, { - // LED Index to Physical Position - {91,40}, {77,56}, {63,56}, {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {7,40}, {7,8}, - {133,40}, {147,56}, {161,56}, {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {217,40}, {217,8} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; -#endif diff --git a/keyboards/splitkb/kyria/rev2/config.h b/keyboards/splitkb/kyria/rev2/config.h index fb9e7bb959..df50b21b94 100644 --- a/keyboards/splitkb/kyria/rev2/config.h +++ b/keyboards/splitkb/kyria/rev2/config.h @@ -22,4 +22,3 @@ along with this program. If not, see . #define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `rev2.c` #define OLED_DISPLAY_128X64 -#define SPLIT_OLED_ENABLE diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json index d1507a26b0..5da17b48c0 100644 --- a/keyboards/splitkb/kyria/rev2/info.json +++ b/keyboards/splitkb/kyria/rev2/info.json @@ -19,6 +19,28 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [1, 2], "x": 77, "y": 24, "flags": 255}, + {"matrix": [0, 3], "x": 63, "y": 8, "flags": 255}, + {"matrix": [0, 6], "x": 21, "y": 8, "flags": 255}, + {"matrix": [2, 6], "x": 21, "y": 40, "flags": 255}, + {"matrix": [2, 5], "x": 35, "y": 40, "flags": 255}, + {"matrix": [3, 3], "x": 63, "y": 56, "flags": 255}, + {"matrix": [3, 2], "x": 77, "y": 56, "flags": 255}, + {"matrix": [2, 1], "x": 91, "y": 40, "flags": 255}, + {"matrix": [2, 7], "x": 7, "y": 40, "flags": 255}, + {"matrix": [0, 7], "x": 7, "y": 8, "flags": 255}, + {"matrix": [5, 2], "x": 147, "y": 24, "flags": 255}, + {"matrix": [4, 3], "x": 161, "y": 8, "flags": 255}, + {"matrix": [4, 6], "x": 203, "y": 8, "flags": 255}, + {"matrix": [6, 6], "x": 203, "y": 40, "flags": 255}, + {"matrix": [6, 5], "x": 189, "y": 40, "flags": 255}, + {"matrix": [7, 3], "x": 161, "y": 56, "flags": 255}, + {"matrix": [7, 2], "x": 147, "y": 56, "flags": 255}, + {"matrix": [6, 1], "x": 133, "y": 40, "flags": 255}, + {"matrix": [6, 7], "x": 217, "y": 40, "flags": 255}, + {"matrix": [4, 7], "x": 217, "y": 8, "flags": 255} + ], "max_brightness": 170, "sleep": true, "split_count": [10, 10] @@ -26,7 +48,8 @@ "split": { "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true } } }, diff --git a/keyboards/splitkb/kyria/rev2/rev2.c b/keyboards/splitkb/kyria/rev2/rev2.c index 37300c8188..70f894b64d 100644 --- a/keyboards/splitkb/kyria/rev2/rev2.c +++ b/keyboards/splitkb/kyria/rev2/rev2.c @@ -47,33 +47,3 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; # endif #endif - -#ifdef RGB_MATRIX_ENABLE -/* Map physical under glow LEDs for RGB matrix support - * 09, 02, xx, xx, 01, xx, xx, 11, xx, xx, 12, 19, - * xx, xx, xx, xx, xx, 00, 10, xx, xx, xx, xx, xx, - * 08, 03, 04, xx, xx, xx, 07, xx, xx, 17, xx, xx, xx, 14, 13, 18, - * xx, 05, 06, xx, xx, xx, xx, 16, 15, xx - */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, 1, NO_LED, NO_LED, 2, 9 }, - { NO_LED, NO_LED, 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 7, NO_LED, NO_LED, NO_LED, 4, 3, 8 }, - { NO_LED, NO_LED, 6, 5, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, 11, NO_LED, NO_LED, 12, 19 }, - { NO_LED, NO_LED, 10, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 17, NO_LED, NO_LED, NO_LED, 14, 13, 18 }, - { NO_LED, NO_LED, 16, 15, NO_LED, NO_LED, NO_LED, NO_LED }, -}, { - // LED Index to Physical Position - {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {63,56}, {77,56}, {91,40}, {7,40}, {7,8}, - {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {161,56}, {147,56}, {133,40}, {217,40}, {217,8} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; -#endif diff --git a/keyboards/splitkb/kyria/rev3/config.h b/keyboards/splitkb/kyria/rev3/config.h index 3f731859fc..2bfa92b310 100644 --- a/keyboards/splitkb/kyria/rev3/config.h +++ b/keyboards/splitkb/kyria/rev3/config.h @@ -17,4 +17,3 @@ #pragma once #define OLED_DISPLAY_128X64 -#define SPLIT_OLED_ENABLE diff --git a/keyboards/splitkb/kyria/rev3/keyboard.json b/keyboards/splitkb/kyria/rev3/keyboard.json index 580aa821db..2c40ac4572 100644 --- a/keyboards/splitkb/kyria/rev3/keyboard.json +++ b/keyboards/splitkb/kyria/rev3/keyboard.json @@ -116,7 +116,8 @@ }, "transport": { "sync": { - "matrix_state": true + "matrix_state": true, + "oled": true } } }, diff --git a/keyboards/steelseries/prime/board.h b/keyboards/steelseries/prime/board.h new file mode 100644 index 0000000000..edb9e1072c --- /dev/null +++ b/keyboards/steelseries/prime/board.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 12000000 diff --git a/keyboards/steelseries/prime/config.h b/keyboards/steelseries/prime/config.h new file mode 100644 index 0000000000..2e041f4a46 --- /dev/null +++ b/keyboards/steelseries/prime/config.h @@ -0,0 +1,23 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define POINTING_DEVICE_CS_PIN A4 +#define POINTING_DEVICE_MOTION_PIN B0 +#define POINTING_DEVICE_TASK_THROTTLE_MS 1 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define RGB_PWM_DRIVER PWMD1 +#define RGB_BLUE_PIN A10 +#define RGB_BLUE_PWM_CHANNEL 3 +#define RGB_GREEN_PIN A8 +#define RGB_GREEN_PWM_CHANNEL 1 +#define RGB_RED_PIN A9 +#define RGB_RED_PWM_CHANNEL 2 + +#define OPTICAL_SW_PWR A2 diff --git a/keyboards/steelseries/prime/halconf.h b/keyboards/steelseries/prime/halconf.h new file mode 100644 index 0000000000..e1498a877a --- /dev/null +++ b/keyboards/steelseries/prime/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/steelseries/prime/keyboard.json b/keyboards/steelseries/prime/keyboard.json new file mode 100644 index 0000000000..e267b7506a --- /dev/null +++ b/keyboards/steelseries/prime/keyboard.json @@ -0,0 +1,58 @@ +{ + "manufacturer": "SteelSeries", + "keyboard_name": "Prime", + "maintainer": "Dasky", + "bootloader": "uf2boot", + "build": { + "debounce_type": "asym_eager_defer_pk", + "lto": true + }, + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B4", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "pointing_device": true, + "rgblight": true + }, + "matrix_pins": { + "direct": [ + ["A0", "C15", "A1", "C13", "C14", "A3"] + ] + }, + "processor": "STM32F103", + "rgblight": { + "animations": { + "breathing": true, + "rainbow_mood": true + }, + "default": { + "animation": "rainbow_mood" + }, + "driver": "custom", + "led_count": 1 + }, + "url": "https://steelseries.com/gaming-mice/prime", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Left Click", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Middle Click", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "Right Click", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "Side forward", "matrix": [0, 3], "x": 0, "y": 2}, + {"label": "Side back", "matrix": [0, 4], "x": 0, "y": 3}, + {"label": "boot", "matrix": [0, 5], "x": 1, "y": 1} + ] + } + } +} diff --git a/keyboards/steelseries/prime/keymaps/default/keymap.c b/keyboards/steelseries/prime/keymaps/default/keymap.c new file mode 100644 index 0000000000..0855107bf7 --- /dev/null +++ b/keyboards/steelseries/prime/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Left, Middle, Right, + // Forward + // Back + // Underneath + [0] = LAYOUT( + MS_BTN1, MS_BTN3, MS_BTN2, + MS_BTN5, + MS_BTN4, + QK_BOOT + ) +}; +// clang-format on + +void pointing_device_init_user(void) { + pointing_device_set_cpi(1600); +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD)}, +}; +#endif diff --git a/keyboards/steelseries/prime/keymaps/default/rules.mk b/keyboards/steelseries/prime/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/steelseries/prime/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/steelseries/prime/mcuconf.h b/keyboards/steelseries/prime/mcuconf.h new file mode 100644 index 0000000000..f49ef0edf7 --- /dev/null +++ b/keyboards/steelseries/prime/mcuconf.h @@ -0,0 +1,15 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_PLLMUL_VALUE +#define STM32_PLLMUL_VALUE 6 diff --git a/keyboards/steelseries/prime/prime.c b/keyboards/steelseries/prime/prime.c new file mode 100644 index 0000000000..11c528eea8 --- /dev/null +++ b/keyboards/steelseries/prime/prime.c @@ -0,0 +1,16 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + + +void board_init(void) { + + gpio_set_pin_output(A15); + gpio_write_pin_high(A15); // Activate D+ pullup + + gpio_set_pin_output(OPTICAL_SW_PWR); + gpio_write_pin_low(OPTICAL_SW_PWR); // Enable power for optical switches + +} + diff --git a/keyboards/steelseries/prime/readme.md b/keyboards/steelseries/prime/readme.md new file mode 100644 index 0000000000..e5a70afd4c --- /dev/null +++ b/keyboards/steelseries/prime/readme.md @@ -0,0 +1,41 @@ +# SteelSeries Prime + +![Prime](https://i.imgur.com/rPIKok3.jpeg) + +Erase with an stlink and flash this [uf2boot bootloader](https://github.com/daskygit/uf2-prime-plus), this is a a one way procedure voiding any warranty so be sure you don't want to use the original manufacturers firmware. + +you may need to remove write protection to flash, e.g. with openocd in linux + +```sh +openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; flash protect 0 0 last off; reset halt; exit" + +``` + +and write the new bootloader + +```sh + +openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program build/PRIME_PLUS/uf2boot.bin verify reset exit 0x8000000" + +``` + +* Keyboard Maintainer: [Dasky](https://github.com/daskygit) +* Hardware Supported: SteelSeries Prime +* Hardware Availability: https://steelseries.com/gaming-mice/prime + +Make example for this keyboard (after setting up your build environment): + + make steelseries/prime:default + +Flashing example for this keyboard: + + make steelseries/prime:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down left mouse button and plug in. +* **Bootloader entry**: Hold the underneath button while plugging in. diff --git a/keyboards/steelseries/prime/rgblight_custom.c b/keyboards/steelseries/prime/rgblight_custom.c new file mode 100644 index 0000000000..2736052587 --- /dev/null +++ b/keyboards/steelseries/prime/rgblight_custom.c @@ -0,0 +1,65 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include +#include "chibios_config.h" +#include "gpio.h" +#include "color.h" +#include "rgblight_drivers.h" + +static PWMConfig pwmCFG = { + .frequency = 0xFFFF, + .period = 256, +}; + +rgb_t prime_leds[RGBLIGHT_LED_COUNT]; + +void init_custom(void) { + palSetPadMode(PAL_PORT(RGB_RED_PIN), PAL_PAD(RGB_RED_PIN), PAL_MODE_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(RGB_GREEN_PIN), PAL_PAD(RGB_GREEN_PIN), PAL_MODE_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(RGB_BLUE_PIN), PAL_PAD(RGB_BLUE_PIN), PAL_MODE_ALTERNATE_PUSHPULL); + pwmCFG.channels[RGB_RED_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; + pwmCFG.channels[RGB_GREEN_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; + pwmCFG.channels[RGB_BLUE_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; + pwmStart(&RGB_PWM_DRIVER, &pwmCFG); +} + +void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) { + prime_leds[index].r = red; + prime_leds[index].g = green; + prime_leds[index].b = blue; +} + +void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) { + for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) { + set_color_custom(i, red, green, blue); + } +} + +void flush_custom(void) { + if (prime_leds[0].r == 0) { + pwmDisableChannel(&RGB_PWM_DRIVER, RGB_RED_PWM_CHANNEL - 1); + } else { + uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].r) / 0xFF; + pwmEnableChannel(&RGB_PWM_DRIVER, RGB_RED_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); + } + if (prime_leds[0].g == 0) { + pwmDisableChannel(&RGB_PWM_DRIVER, RGB_GREEN_PWM_CHANNEL - 1); + } else { + uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].g) / 0xFF; + pwmEnableChannel(&RGB_PWM_DRIVER, RGB_GREEN_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); + } + if (prime_leds[0].b == 0) { + pwmDisableChannel(&RGB_PWM_DRIVER, RGB_BLUE_PWM_CHANNEL - 1); + } else { + uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].b) / 0xFF; + pwmEnableChannel(&RGB_PWM_DRIVER, RGB_BLUE_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); + } +} + +const rgblight_driver_t rgblight_driver = { + .init = init_custom, + .set_color = set_color_custom, + .set_color_all = set_color_all_custom, + .flush = flush_custom, +}; diff --git a/keyboards/steelseries/prime/rules.mk b/keyboards/steelseries/prime/rules.mk new file mode 100644 index 0000000000..5ab86b1b69 --- /dev/null +++ b/keyboards/steelseries/prime/rules.mk @@ -0,0 +1,5 @@ +MCU_LDSCRIPT = STM32F103xB_uf2boot + +POINTING_DEVICE_DRIVER = pmw3389 + +SRC += rgblight_custom.c diff --git a/keyboards/steelseries/prime_plus/keymaps/default/keymap.c b/keyboards/steelseries/prime_plus/keymaps/default/keymap.c index 803f6b47da..0855107bf7 100644 --- a/keyboards/steelseries/prime_plus/keymaps/default/keymap.c +++ b/keyboards/steelseries/prime_plus/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -void pointing_device_init_kb(void) { +void pointing_device_init_user(void) { pointing_device_set_cpi(1600); } diff --git a/keyboards/studiokestra/fairholme/keyboard.json b/keyboards/studiokestra/fairholme/keyboard.json index 413218e8bd..7c1b2032a8 100644 --- a/keyboards/studiokestra/fairholme/keyboard.json +++ b/keyboards/studiokestra/fairholme/keyboard.json @@ -996,4 +996,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/studiokestra/nascent/readme.md b/keyboards/studiokestra/nascent/readme.md index 09e0aaa7f0..ef1829cae8 100644 --- a/keyboards/studiokestra/nascent/readme.md +++ b/keyboards/studiokestra/nascent/readme.md @@ -22,4 +22,4 @@ There are 3 ways to put the board in bootloader mode: - Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR - While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR -- With the default layout, toggle Layer 1 and press the `R` key. \ No newline at end of file +- With the default layout, toggle Layer 1 and press the `R` key. diff --git a/keyboards/studiokestra/nue/keymaps/default/keymap.c b/keyboards/studiokestra/nue/keymaps/default/keymap.c index cfd24b93bb..72458bfa81 100644 --- a/keyboards/studiokestra/nue/keymaps/default/keymap.c +++ b/keyboards/studiokestra/nue/keymaps/default/keymap.c @@ -38,4 +38,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/subrezon/lancer/keyboard.json b/keyboards/subrezon/lancer/keyboard.json index 571cf4c8ad..acf8d3c12c 100644 --- a/keyboards/subrezon/lancer/keyboard.json +++ b/keyboards/subrezon/lancer/keyboard.json @@ -60,4 +60,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/subrezon/lancer/keymaps/default/keymap.json b/keyboards/subrezon/lancer/keymaps/default/keymap.json index b25e81d538..5cddea3fc8 100644 --- a/keyboards/subrezon/lancer/keymaps/default/keymap.json +++ b/keyboards/subrezon/lancer/keymaps/default/keymap.json @@ -30,4 +30,4 @@ "XXXXXXX", "_______", "XXXXXXX", "XXXXXXX", "XXXXXXX", "_______" ] ] -} \ No newline at end of file +} diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json index 26b57f7001..c6d896e334 100644 --- a/keyboards/suikagiken/suika27melo/keyboard.json +++ b/keyboards/suikagiken/suika27melo/keyboard.json @@ -59,4 +59,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/suikagiken/suika85ergo/keyboard.json b/keyboards/suikagiken/suika85ergo/keyboard.json index 6274f56f7c..39a42dc173 100644 --- a/keyboards/suikagiken/suika85ergo/keyboard.json +++ b/keyboards/suikagiken/suika85ergo/keyboard.json @@ -119,4 +119,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/swagkeys/eave/keyboard.json b/keyboards/swagkeys/eave/keyboard.json index 87945ed756..8fbd9b249f 100644 --- a/keyboards/swagkeys/eave/keyboard.json +++ b/keyboards/swagkeys/eave/keyboard.json @@ -41,7 +41,6 @@ "saturation_steps": 8, "sleep": true }, - "url": "NONE", "usb": { "device_version": "1.0.0", "pid": "0x4A16", diff --git a/keyboards/swagkeys/integral/keyboard.json b/keyboards/swagkeys/integral/keyboard.json index 3d49671100..a939c26592 100644 --- a/keyboards/swagkeys/integral/keyboard.json +++ b/keyboards/swagkeys/integral/keyboard.json @@ -20,7 +20,6 @@ "rows": ["B9", "C13", "B12", "B11", "B10"] }, "processor": "STM32F103", - "url": "NONE", "usb": { "device_version": "1.0.0", "pid": "0x4F21", diff --git a/keyboards/switchplate/readme.md b/keyboards/switchplate/readme.md index 166853f285..478e3e68a1 100644 --- a/keyboards/switchplate/readme.md +++ b/keyboards/switchplate/readme.md @@ -1,4 +1,4 @@ # Switchplate Peripherals All keyboards under the Switchplate Peripherals brand -Website: [here](https://switchplate.co/) \ No newline at end of file +Website: [here](https://switchplate.co/) diff --git a/keyboards/switchplate/southpaw_65/keyboard.json b/keyboards/switchplate/southpaw_65/keyboard.json index 72c4c71097..7c360aec96 100644 --- a/keyboards/switchplate/southpaw_65/keyboard.json +++ b/keyboards/switchplate/southpaw_65/keyboard.json @@ -4,7 +4,7 @@ "url": "https://geekhack.org/index.php?topic=92344.0", "maintainer": "qmk", "usb": { - "vid": "0xFEED", + "vid": "0x7F00", "pid": "0x4084", "device_version": "0.0.1" }, diff --git a/keyboards/switchplate/southpaw_65/keymaps/default/keymap.c b/keyboards/switchplate/southpaw_65/keymaps/default/keymap.c index 73d1fa75b0..8371449dfd 100644 --- a/keyboards/switchplate/southpaw_65/keymaps/default/keymap.c +++ b/keyboards/switchplate/southpaw_65/keymaps/default/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2026 + * + * 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] = { diff --git a/keyboards/switchplate/southpaw_65/keymaps/default_ansi/keymap.c b/keyboards/switchplate/southpaw_65/keymaps/default_ansi/keymap.c index 57632a5c66..528beb2490 100644 --- a/keyboards/switchplate/southpaw_65/keymaps/default_ansi/keymap.c +++ b/keyboards/switchplate/southpaw_65/keymaps/default_ansi/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2026 + * + * 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] = { diff --git a/keyboards/switchplate/southpaw_65/keymaps/default_iso/keymap.c b/keyboards/switchplate/southpaw_65/keymaps/default_iso/keymap.c index f0ebddb33c..3e687ade2c 100644 --- a/keyboards/switchplate/southpaw_65/keymaps/default_iso/keymap.c +++ b/keyboards/switchplate/southpaw_65/keymaps/default_iso/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2026 + * + * 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] = { diff --git a/keyboards/sx60/matrix.c b/keyboards/sx60/matrix.c index 22f37db539..62de53137a 100644 --- a/keyboards/sx60/matrix.c +++ b/keyboards/sx60/matrix.c @@ -42,15 +42,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -227,7 +224,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); /* Populate the matrix row with the state of the col pin */ - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } /* Unselect row */ diff --git a/keyboards/synthandkeys/bento_box/bento_box.c b/keyboards/synthandkeys/bento_box/bento_box.c index 5ef0678f5e..e9eea41f53 100644 --- a/keyboards/synthandkeys/bento_box/bento_box.c +++ b/keyboards/synthandkeys/bento_box/bento_box.c @@ -34,4 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/synthandkeys/bento_box/keyboard.json b/keyboards/synthandkeys/bento_box/keyboard.json index ad662f1669..9ccae20e19 100644 --- a/keyboards/synthandkeys/bento_box/keyboard.json +++ b/keyboards/synthandkeys/bento_box/keyboard.json @@ -58,4 +58,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c b/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c index bf8f26984b..0e69e7b97a 100644 --- a/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c +++ b/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c @@ -38,4 +38,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ------------------------------------ * | | | | | | * ------------------------------------ - */ \ No newline at end of file + */ diff --git a/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c b/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c index aa5468c45c..52a940dd9b 100644 --- a/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c +++ b/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c @@ -19,4 +19,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0 ) -}; \ No newline at end of file +}; diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c index 7bafe6b191..f21b7e3411 100644 --- a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c @@ -20,11 +20,11 @@ joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { [0] = JOYSTICK_AXIS_VIRTUAL }; -bool encoder_update_kb(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { joystick_position += (clockwise ? 2 : -2) * (full_joystick_value / pulses_per_revolution); // +2 and -2 are used, since +1.0 and -1.0 axis output refers to positions at half of a full rotation joystick_set_axis(0, joystick_position); - return true; + return false; } #endif diff --git a/keyboards/system76/launch_1/keyboard.json b/keyboards/system76/launch_1/keyboard.json index b5317dd9bc..3a7ecc928e 100644 --- a/keyboards/system76/launch_1/keyboard.json +++ b/keyboards/system76/launch_1/keyboard.json @@ -47,6 +47,92 @@ "hue": 142 }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 12], "x": 209, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 190, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 171, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 156, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 125, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 110, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 95, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 80, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 65, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 49, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 34, "y": 51, "flags": 4}, + {"matrix": [4, 0], "x": 11, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 8, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 27, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 57, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 80, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 110, "y": 64, "flags": 4}, + {"matrix": [5, 7], "x": 133, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 148, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 167, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 194, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 178, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 163, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 87, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 72, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 27, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 38, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 23, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 159, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 190, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [5, 13], "x": 224, "y": 26, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 201, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 182, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 167, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 152, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 137, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 121, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 106, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 76, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 61, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 46, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 46, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 76, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 91, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 137, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 152, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 167, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 201, "y": 0, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 176, "sleep": true }, diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c index 2cff70076e..3a4c4749c6 100644 --- a/keyboards/system76/launch_1/launch_1.c +++ b/keyboards/system76/launch_1/launch_1.c @@ -21,59 +21,6 @@ #include "usb_mux.h" // clang-format off -#ifdef RGB_MATRIX_ENABLE -// LEDs by index -// 0 1 2 3 4 5 6 7 8 9 -// 00 LM4 LL4 LK4 LJ4 LI4 LH4 LG4 LF4 LE4 LD4 -// 10 LC4 LB4 LA4 LA5 LB5 LC5 LD5 LE5 LG5 LH5 -// 20 LI5 LJ5 LK5 LL5 LM5 LO3 LM3 LL3 LK3 LJ3 -// 30 LI3 LH3 LG3 LF3 LE3 LD3 LC3 LB3 LA3 LA2 -// 40 LB2 LC2 LD2 LE2 LF2 LG2 LH2 LI2 LJ2 LK2 -// 50 LL2 LM2 LN2 LO2 LO1 LN1 LM1 LL1 LK1 LJ1 -// 60 LI1 LH1 LG1 LF1 LE1 LD1 LC1 LB1 LA1 LA0 -// 70 LB0 LC0 LD0 LE0 LF0 LG0 LH0 LI0 LJ0 LK0 -// 80 LL0 LM0 LN0 LO0 -led_config_t g_led_config = { { - // Key matrix to LED index -/* A B C D E F G H I J K L M N O */ -/* 0 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, */ -/* 1 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, */ -/* 2 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, */ -/* 3 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, */ -/* 4 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, */ -/* 5 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 */ - { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 }, - { 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 }, - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 }, - { 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 83 }, - { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 54 }, - { 13, 14, 15, 16, 17, 25, 18, 19, 20, 21, 22, 23, 24, 53 }, -}, { - // LED index to physical position (see leds.sh in `launch' repo) -/* 00 */ {209, 51}, {190, 51}, {171, 51}, {156, 51}, {140, 51}, {125, 51}, {110, 51}, {95, 51}, {80, 51}, {65, 51}, -/* 10 */ {49, 51}, {34, 51}, {11, 51}, {8, 64}, {27, 64}, {42, 64}, {57, 64}, {80, 64}, {110, 64}, {133, 64}, -/* 20 */ {148, 64}, {167, 64}, {194, 64}, {209, 64}, {224, 64}, {224, 38}, {197, 38}, {178, 38}, {163, 38}, {148, 38}, -/* 30 */ {133, 38}, {118, 38}, {103, 38}, {87, 38}, {72, 38}, {57, 38}, {42, 38}, {27, 38}, {8, 38}, {4, 26}, -/* 40 */ {23, 26}, {38, 26}, {53, 26}, {68, 26}, {84, 26}, {99, 26}, {114, 26}, {129, 26}, {144, 26}, {159, 26}, -/* 50 */ {175, 26}, {190, 26}, {205, 26}, {224, 26}, {224, 13}, {201, 13}, {182, 13}, {167, 13}, {152, 13}, {137, 13}, -/* 60 */ {121, 13}, {106, 13}, {91, 13}, {76, 13}, {61, 13}, {46, 13}, {30, 13}, {15, 13}, {0, 13}, {0, 0}, -/* 70 */ {15, 0}, {30, 0}, {46, 0}, {61, 0}, {76, 0}, {91, 0}, {106, 0}, {121, 0}, {137, 0}, {152, 0}, -/* 80 */ {167, 0}, {182, 0}, {201, 0}, {224, 0} -}, { - // LED index to flags (set all to LED_FLAG_KEYLIGHT) - /* 0 1 2 3 4 5 6 7 8 9 */ -/* 00 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 10 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 20 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 30 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 40 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 50 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 60 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 70 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 80 */ 4, 4, 4, 4 -} }; -#endif // RGB_MATRIX_ENABLE - bool eeprom_is_valid(void) { return ( eeprom_read_word(((void *)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC && diff --git a/keyboards/szrkbd/szr35/board.h b/keyboards/szrkbd/szr35/board.h new file mode 100644 index 0000000000..f18f715ed8 --- /dev/null +++ b/keyboards/szrkbd/szr35/board.h @@ -0,0 +1,9 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/szrkbd/szr35/config.h b/keyboards/szrkbd/szr35/config.h new file mode 100644 index 0000000000..5a698086bb --- /dev/null +++ b/keyboards/szrkbd/szr35/config.h @@ -0,0 +1,8 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 5 diff --git a/keyboards/szrkbd/szr35/halconf.h b/keyboards/szrkbd/szr35/halconf.h new file mode 100644 index 0000000000..6945c89b9c --- /dev/null +++ b/keyboards/szrkbd/szr35/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE +#define SERIAL_USB_BUFFERS_SIZE 256 +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/szrkbd/szr35/keyboard.json b/keyboards/szrkbd/szr35/keyboard.json new file mode 100644 index 0000000000..bb01986238 --- /dev/null +++ b/keyboards/szrkbd/szr35/keyboard.json @@ -0,0 +1,221 @@ +{ + "keyboard_name": "SZR35", + "manufacturer": "SZRKB", + "maintainer": "diegorodriguezv", + "url": "https://github.com/diegorodriguezv/szr35", + "bootloader": "stm32-dfu", + "processor": "STM32F401", + "usb": { + "pid": "0x45D4", + "vid": "0x44DF", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "dynamic_keymap": { + "layer_count": 9 + }, + "eeprom": { + "wear_leveling": { + "backing_size": 4096 + } + }, + "matrix_pins": { + "direct": [ + ["B4", "B0", "B1", "B12", "B13"], + ["B5", "C5", "B2", "B14", "B15"], + ["B3", "C4", "B10", "C9", "C11"], + ["NO_PIN", "NO_PIN", "A1", "C14", "C12"] + ] + }, + "split": { + "enabled": true, + "serial": { + "driver": "usart", + "pin": "A9" + }, + "handedness": { + "pin": "C7" + }, + "matrix_pins": { + "right": { + "direct": [ + ["B2", "B10", "C10", "C11", "B6"], + ["B0", "B1", "C12", "D2", "B7"], + ["C5", "B12", "B3", "B4", "B5"], + ["C4", "A1", "C13", "NO_PIN", "NO_PIN"] + ] + } + }, + "transport": { + "sync": { + "activity": true, + "layer_state": true, + "matrix_state": true + }, + "watchdog": true, + "watchdog_timeout": 3000 + }, + "bootmagic": { + "matrix": [4, 4] + } + }, + "community_layouts": ["split_3x5_3"], + "layouts": { + "LAYOUT_split_3x5_3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.3 }, + { "matrix": [0, 1], "x": 1, "y": 0.1 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0.1 }, + { "matrix": [0, 4], "x": 4, "y": 0.2 }, + + { "matrix": [4, 0], "x": 8, "y": 0.2 }, + { "matrix": [4, 1], "x": 9, "y": 0.1 }, + { "matrix": [4, 2], "x": 10, "y": 0 }, + { "matrix": [4, 3], "x": 11, "y": 0.1 }, + { "matrix": [4, 4], "x": 12, "y": 0.3 }, + + { "matrix": [1, 0], "x": 0, "y": 1.3 }, + { "matrix": [1, 1], "x": 1, "y": 1.1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1.1 }, + { "matrix": [1, 4], "x": 4, "y": 1.2 }, + + { "matrix": [5, 0], "x": 8, "y": 1.2 }, + { "matrix": [5, 1], "x": 9, "y": 1.1 }, + { "matrix": [5, 2], "x": 10, "y": 1 }, + { "matrix": [5, 3], "x": 11, "y": 1.1 }, + { "matrix": [5, 4], "x": 12, "y": 1.3 }, + + { "matrix": [2, 0], "x": 0, "y": 2.3 }, + { "matrix": [2, 1], "x": 1, "y": 2.1 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2.1 }, + { "matrix": [2, 4], "x": 4, "y": 2.2 }, + + { "matrix": [6, 0], "x": 8, "y": 2.2 }, + { "matrix": [6, 1], "x": 9, "y": 2.1 }, + { "matrix": [6, 2], "x": 10, "y": 2 }, + { "matrix": [6, 3], "x": 11, "y": 2.1 }, + { "matrix": [6, 4], "x": 12, "y": 2.3 }, + + { "matrix": [3, 2], "x": 3, "y": 3.7 }, + { "matrix": [3, 3], "x": 4, "y": 3.7 }, + { "matrix": [3, 4], "x": 5, "y": 3.2, "h": 1.5 }, + + { "matrix": [7, 0], "x": 7, "y": 3.2, "h": 1.5 }, + { "matrix": [7, 1], "x": 8, "y": 3.7 }, + { "matrix": [7, 2], "x": 9, "y": 3.7 } + ] + } + }, + "ws2812": { + "driver": "pwm", + "pin": "A7" + }, + "rgb_matrix": { + "driver": "ws2812", + "split_count": [18, 18], + "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, + "flower_blooming": true, + "raindrops": true, + "jellybean_raindrops": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "pixel_rain": true, + "pixel_flow": true, + "pixel_fractal": true, + "typing_heatmap": true, + "digital_rain": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_cross": true, + "solid_reactive_nexus": true, + "splash": true, + "solid_splash": true, + "starlight_smooth": true, + "starlight": true, + "starlight_dual_sat": true, + "starlight_dual_hue": true, + "riverflow": true + }, + "default": { + "animation": "solid_reactive_cross", + "sat": 0 + }, + "layout": [ + {"matrix": [0, 4], "x": 96, "y": 15, "flags": 4}, + {"matrix": [0, 3], "x": 72, "y": 15, "flags": 4}, + {"matrix": [0, 2], "x": 48, "y": 15, "flags": 4}, + {"matrix": [0, 1], "x": 24, "y": 15, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 15, "flags": 4}, + + {"matrix": [1, 4], "x": 96, "y": 30, "flags": 4}, + {"matrix": [1, 3], "x": 72, "y": 30, "flags": 4}, + {"matrix": [1, 2], "x": 48, "y": 30, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 30, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 30, "flags": 4}, + + {"matrix": [2, 4], "x": 96, "y": 45, "flags": 4}, + {"matrix": [2, 3], "x": 72, "y": 45, "flags": 4}, + {"matrix": [2, 2], "x": 48, "y": 45, "flags": 4}, + {"matrix": [2, 1], "x": 24, "y": 45, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 45, "flags": 4}, + + {"matrix": [3, 4], "x": 96, "y": 63, "flags": 4}, + {"matrix": [3, 3], "x": 72, "y": 63, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 63, "flags": 4}, + + {"matrix": [4, 4], "x": 223, "y": 15, "flags": 4}, + {"matrix": [4, 3], "x": 192, "y": 15, "flags": 4}, + {"matrix": [4, 2], "x": 168, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 144, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 120, "y": 15, "flags": 4}, + + {"matrix": [5, 4], "x": 223, "y": 30, "flags": 4}, + {"matrix": [5, 3], "x": 192, "y": 30, "flags": 4}, + {"matrix": [5, 2], "x": 168, "y": 30, "flags": 4}, + {"matrix": [5, 1], "x": 144, "y": 30, "flags": 4}, + {"matrix": [5, 0], "x": 120, "y": 30, "flags": 4}, + + {"matrix": [6, 4], "x": 223, "y": 45, "flags": 4}, + {"matrix": [6, 3], "x": 192, "y": 45, "flags": 4}, + {"matrix": [6, 2], "x": 168, "y": 45, "flags": 4}, + {"matrix": [6, 1], "x": 144, "y": 45, "flags": 4}, + {"matrix": [6, 0], "x": 120, "y": 45, "flags": 4}, + + {"matrix": [7, 2], "x": 168, "y": 63, "flags": 4}, + {"matrix": [7, 1], "x": 144, "y": 63, "flags": 4}, + {"matrix": [7, 0], "x": 120, "y": 63, "flags": 4} + ] + } +} diff --git a/keyboards/szrkbd/szr35/keymaps/default/keymap.c b/keyboards/szrkbd/szr35/keymaps/default/keymap.c new file mode 100644 index 0000000000..97669d8620 --- /dev/null +++ b/keyboards/szrkbd/szr35/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +// Based loosely on https://peterxjang.com/blog/designing-a-36-key-custom-keyboard-layout.html +// This is a good starting point for someone who is used to normal qwerty keyboards and wants to +// switch easily between the 36-key keyboard and a laptop keyboard. The goal is to minimize the +// learning curve by avoiding key relocation and maintaining our hard-earned muscle memory. + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER_0, + _LAYER_1, + _LAYER_2, + _LAYER_3, +}; + +#define LAYER0 MO(_LAYER_0) +#define LAYER1 MO(_LAYER_1) +#define LAYER2 MO(_LAYER_2) +#define LAYER3 MO(_LAYER_3) + +#define Z_SFT LSFT_T(KC_Z) +#define SLS_SFT RSFT_T(KC_SLSH) +#define BSL_SFT RSFT_T(KC_BSLS) +#define DEL_ALT LALT_T(KC_DEL) +#define TAB_GUI LGUI_T(KC_TAB) +#define ESC_CTL LCTL_T(KC_ESC) + +#define G_TAB G(KC_TAB) +#define C_ESC C(KC_ESC) + +#define ENT_LY1 LT(_LAYER_1, KC_ENT) +#define BSP_LY2 LT(_LAYER_2, KC_BSPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER_0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + Z_SFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SLS_SFT, + DEL_ALT, TAB_GUI, ESC_CTL, KC_SPC, ENT_LY1, BSP_LY2 + ), + + [_LAYER_1] = LAYOUT_split_3x5_3( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, + KC_LSFT, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, BSL_SFT, + XXXXXXX, G_TAB, C_ESC, XXXXXXX, _______, LAYER3 + ), + + [_LAYER_2] = LAYOUT_split_3x5_3( + 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_MPRV, KC_MPLY, KC_MNXT, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, KC_PSCR, + KC_MUTE, KC_VOLD, KC_VOLU, MS_WHLD, MS_WHLU, MS_BTN1, MS_BTN2, MS_BTN3, MS_BTN4, MS_BTN5, + MS_ACL0, MS_ACL1, MS_ACL2, XXXXXXX, LAYER3, _______ + ), + + [_LAYER_3] = LAYOUT_split_3x5_3( + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ + ) + +}; diff --git a/keyboards/szrkbd/szr35/keymaps/factory/keymap.c b/keyboards/szrkbd/szr35/keymaps/factory/keymap.c new file mode 100644 index 0000000000..c6cc4a02c5 --- /dev/null +++ b/keyboards/szrkbd/szr35/keymaps/factory/keymap.c @@ -0,0 +1,48 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _LAYER_0, + _LAYER_1, + _LAYER_2, + _LAYER_3, +}; + +#define LAYER0 MO(_LAYER_0) +#define LAYER1 MO(_LAYER_1) +#define LAYER2 MO(_LAYER_2) +#define LAYER3 MO(_LAYER_3) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER_0] = LAYOUT_split_3x5_3( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_LGUI, LAYER1, KC_SPC, KC_ENT, LAYER2, KC_RGUI + ), + + [_LAYER_1] = LAYOUT_split_3x5_3( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT, KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, _______, KC_SPC, KC_ENT, LAYER3, KC_RGUI + ), + + [_LAYER_2] = LAYOUT_split_3x5_3( + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_RCTL, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RALT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_LGUI, LAYER3, KC_SPC, KC_ENT, _______, KC_RGUI + ), + + [_LAYER_3] = LAYOUT_split_3x5_3( + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + RM_NEXT, RM_HUED, RM_SATD, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RGUI + ) + +}; diff --git a/keyboards/szrkbd/szr35/mcuconf.h b/keyboards/szrkbd/szr35/mcuconf.h new file mode 100644 index 0000000000..a70e4aa725 --- /dev/null +++ b/keyboards/szrkbd/szr35/mcuconf.h @@ -0,0 +1,27 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PLLN_VALUE +#define STM32_PLLN_VALUE 192 + +#undef STM32_PLLQ_VALUE +#define STM32_PLLQ_VALUE 4 + +#undef STM32_PPRE1 +#define STM32_PPRE1 STM32_PPRE1_DIV4 + +#undef STM32_PPRE2 +#define STM32_PPRE2 STM32_PPRE2_DIV2 diff --git a/keyboards/szrkbd/szr35/readme.md b/keyboards/szrkbd/szr35/readme.md new file mode 100644 index 0000000000..f137cb64e4 --- /dev/null +++ b/keyboards/szrkbd/szr35/readme.md @@ -0,0 +1,36 @@ +# SZR35 + +![szr35](https://i.ibb.co/vvQPBTF9/szr35.jpg) + +*The **SZR35** is a minimalist 36-key split keyboard. It follows the popular 3x5+3 layout and is aimed at users who value ergonomic typing, portability, and open-source firmware flexibility. It ships with Vial-compatible firmware and is built around an STM32 microcontroller.* + +* Keyboard Maintainer: [diegorodriguezv](https://github.com/diegorodriguezv) +* Hardware: + * **Microcontroller:** STM32F401RBT6 (Cortex-M4, 256KB Flash, 64KB RAM) + * **Backlighting:** Addressable RGB (WS2812 or similar) + * **Connection:** USB-C on both halves, TRS jack for interconnect +* Hardware Availability: + * [HardToChooseOne](https://hardtochooseone.com) on [Amazon](https://www.amazon.com/gp/product/B0DD69RGHK). + * Alternatively sold from other websites under the SZRKBD brand. + +Make example for this keyboard (after setting up your build environment): + + make szrkbd/szr35:default + +If you want you can use the keymap that came with the keyboard from factory: + + make szrkbd/szr35:factory + +You need to flash each half of the keyboard with the same firmware: + + make szrkbd/szr35: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**: Holding top left key for the left half, top right key for the right half, while plugging in the USB cable. +* **Physical reset button**: Short the reset pads, marked within a white rectangle, while plugging in. Not the ones at the edge opposing the USB connectors but about 2 or 3 centimeters from that edge. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/tada68/keymaps/rgb/readme.md b/keyboards/tada68/keymaps/rgb/readme.md index fb5a5abd0c..cc3b65d012 100755 --- a/keyboards/tada68/keymaps/rgb/readme.md +++ b/keyboards/tada68/keymaps/rgb/readme.md @@ -1,3 +1,3 @@ # RGB on the TADA68 This board has unused pins, which means that you can add some nice RGB leds, although they have no use at this momen because not a single transparent case has been made yet. Here's where you have to solder the wires on the PCB: -![Image of solder points for RGB on the Tada68](http://i.imgur.com/5Xmiz6Q.jpg) \ No newline at end of file +![Image of solder points for RGB on the Tada68](http://i.imgur.com/5Xmiz6Q.jpg) diff --git a/keyboards/takashicompany/baumkuchen/baumkuchen.c b/keyboards/takashicompany/baumkuchen/baumkuchen.c index e7cc85f091..c06b0f2ff0 100644 --- a/keyboards/takashicompany/baumkuchen/baumkuchen.c +++ b/keyboards/takashicompany/baumkuchen/baumkuchen.c @@ -16,4 +16,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/baumkuchen/keyboard.json b/keyboards/takashicompany/baumkuchen/keyboard.json index d5aa1f81e1..973ff31dfc 100644 --- a/keyboards/takashicompany/baumkuchen/keyboard.json +++ b/keyboards/takashicompany/baumkuchen/keyboard.json @@ -69,4 +69,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c b/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c index 26fe58f54c..b7c5716907 100644 --- a/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c +++ b/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c @@ -16,4 +16,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/takashicompany/ergomirage/keyboard.json b/keyboards/takashicompany/ergomirage/keyboard.json index 4a2e3ab5ec..39e1f0dfd3 100644 --- a/keyboards/takashicompany/ergomirage/keyboard.json +++ b/keyboards/takashicompany/ergomirage/keyboard.json @@ -76,4 +76,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/goat51/keymaps/default/keymap.c b/keyboards/takashicompany/goat51/keymaps/default/keymap.c index 71d623c91f..3a674137d4 100644 --- a/keyboards/takashicompany/goat51/keymaps/default/keymap.c +++ b/keyboards/takashicompany/goat51/keymaps/default/keymap.c @@ -120,4 +120,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } return true; -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json index e99eb87c47..a72d9364ab 100644 --- a/keyboards/takashicompany/jourkey/keyboard.json +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -45,4 +45,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk +++ b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/takashicompany/klec_01/keyboard.json b/keyboards/takashicompany/klec_01/keyboard.json index 88eda74f12..b39ccb7dd2 100644 --- a/keyboards/takashicompany/klec_01/keyboard.json +++ b/keyboards/takashicompany/klec_01/keyboard.json @@ -71,4 +71,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c index 551c211b73..0283452dcb 100644 --- a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c +++ b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c @@ -66,4 +66,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/takashicompany/klec_02/config.h b/keyboards/takashicompany/klec_02/config.h index 8828e2ad72..0b312f5619 100644 --- a/keyboards/takashicompany/klec_02/config.h +++ b/keyboards/takashicompany/klec_02/config.h @@ -3,4 +3,4 @@ #pragma once -#define EE_HANDS \ No newline at end of file +#define EE_HANDS diff --git a/keyboards/takashicompany/klec_02/keyboard.json b/keyboards/takashicompany/klec_02/keyboard.json index b659d18bc0..fc92d257a3 100644 --- a/keyboards/takashicompany/klec_02/keyboard.json +++ b/keyboards/takashicompany/klec_02/keyboard.json @@ -67,4 +67,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c index 0431b8e6b7..e83656dbb7 100644 --- a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c +++ b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c @@ -67,4 +67,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/takashicompany/minidivide/keymaps/default/keymap.c b/keyboards/takashicompany/minidivide/keymaps/default/keymap.c index cd9f82476e..15eb0a1e80 100644 --- a/keyboards/takashicompany/minidivide/keymaps/default/keymap.c +++ b/keyboards/takashicompany/minidivide/keymaps/default/keymap.c @@ -67,4 +67,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/takashicompany/minidivide/minidivide.c b/keyboards/takashicompany/minidivide/minidivide.c index abdb91fc47..2fe0b3b73c 100644 --- a/keyboards/takashicompany/minidivide/minidivide.c +++ b/keyboards/takashicompany/minidivide/minidivide.c @@ -45,4 +45,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/takashicompany/minizone/minizone.c b/keyboards/takashicompany/minizone/minizone.c index 1574b0aef7..1a10f21bad 100644 --- a/keyboards/takashicompany/minizone/minizone.c +++ b/keyboards/takashicompany/minizone/minizone.c @@ -52,4 +52,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/takashicompany/rookey/keyboard.json b/keyboards/takashicompany/rookey/keyboard.json index 5e530a5a3c..a2bae0ee42 100644 --- a/keyboards/takashicompany/rookey/keyboard.json +++ b/keyboards/takashicompany/rookey/keyboard.json @@ -45,4 +45,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/rookey/keymaps/default/rules.mk b/keyboards/takashicompany/rookey/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/takashicompany/rookey/keymaps/default/rules.mk +++ b/keyboards/takashicompany/rookey/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/taleguers/taleguers75/readme.md b/keyboards/taleguers/taleguers75/readme.md index c3018dc2d7..84e48bbfa6 100644 --- a/keyboards/taleguers/taleguers75/readme.md +++ b/keyboards/taleguers/taleguers75/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make taleguers/taleguers75:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/teleport/native/ansi/ansi.c b/keyboards/teleport/native/ansi/ansi.c deleted file mode 100644 index 9c4ea99f40..0000000000 --- a/keyboards/teleport/native/ansi/ansi.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2021 Moritz Plattner - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index, LED 61 omitted on ANSI - { 0, 2, 4, 6, 8, 10, 12, 14 }, - { 1, 3, 5, 7, 9, 11, 13, 15 }, - { 16, 18, 20, 22, 24, 26, 28, NO_LED }, - { 17, 19, 21, 23, 25, 27, 29, 30 }, - { 31, 32, 34, 36, 38, 40, 42, 44 }, - { NO_LED, 33, 35, 37, 39, 41, 43, 45 }, - { 46, 48, 50, 52, 54, 56, NO_LED, 58 }, - { 47, 49, 51, 53, 55, 57, NO_LED, 59 }, - { 60, 62, 64, 66, 68, 70, NO_LED, 73 }, - { NO_LED, 63, 65, 67, 69, 71, 72, 74 }, - { 75, 78, NO_LED, NO_LED, NO_LED, 79, 81, 83 }, - { 76, 77, NO_LED, NO_LED, NO_LED, 80, 82, 84 } -}, { - // LED Index to Physical Position, the LED at { 0,0 } in row 5 is there to catch a non-existing LED on ANSI - { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {119,0 }, {134,0 }, {149,0 }, {164,0 }, {179,0 }, {194,0 }, {209,0 }, {224,0 }, - { 0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 }, {202,13 }, {224,13 }, - { 4,26 }, { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {205,26 }, {224,26 }, - { 6,38 }, { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {200,38 }, {224,38 }, - { 9,51 }, { 0,0 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 }, {189,51 }, {209,51 }, {224,51 }, - { 2,64 }, { 21,64 }, { 39,64 }, { 95,64 }, {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 } -}, { - // LED Index to Flag, the 0 flag in row 5 is there to catch a non-existing LED on ANSI - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 9, 12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1, - 1, 9, 1, 4, 1, 1, 1, 4, 4, 4, -} }; -#endif diff --git a/keyboards/teleport/native/ansi/keyboard.json b/keyboards/teleport/native/ansi/keyboard.json index 30a420517e..68dddfad55 100644 --- a/keyboards/teleport/native/ansi/keyboard.json +++ b/keyboards/teleport/native/ansi/keyboard.json @@ -2,6 +2,95 @@ "usb": { "pid": "0x0003" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1}, + {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4}, + {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4}, + {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4}, + {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4}, + {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4}, + {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4}, + {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4}, + {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4}, + {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4}, + {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4}, + {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4}, + {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1}, + {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1}, + {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12}, + {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4}, + {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4}, + {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4}, + {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4}, + {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4}, + {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4}, + {"matrix": [4, 7], "x": 205, "y": 26, "flags": 1}, + {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1}, + {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9}, + {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12}, + {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12}, + {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12}, + {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4}, + {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4}, + {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4}, + {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4}, + {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4}, + {"matrix": [6, 7], "x": 200, "y": 38, "flags": 1}, + {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1}, + {"matrix": [8, 0], "x": 9, "y": 51, "flags": 1}, + {"x": 0, "y": 0, "flags": 0}, + {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4}, + {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4}, + {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4}, + {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4}, + {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4}, + {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4}, + {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4}, + {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4}, + {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4}, + {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4}, + {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1}, + {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4}, + {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1}, + {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9}, + {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1}, + {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4}, + {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1}, + {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1}, + {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1}, + {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, + {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4}, + {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["75_ansi"], "layouts": { "LAYOUT_75_ansi": { diff --git a/keyboards/teleport/native/ansi/keymaps/default/keymap.c b/keyboards/teleport/native/ansi/keymaps/default/keymap.c index 381228f42d..142b77a3c5 100644 --- a/keyboards/teleport/native/ansi/keymaps/default/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/default/keymap.c @@ -95,4 +95,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgb_matrix_set_color(WIN_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); } return state; -} \ No newline at end of file +} diff --git a/keyboards/teleport/native/iso/iso.c b/keyboards/teleport/native/iso/iso.c deleted file mode 100644 index 5acbffe8f9..0000000000 --- a/keyboards/teleport/native/iso/iso.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2021 Moritz Plattner - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 2, 4, 6, 8, 10, 12, 14 }, - { 1, 3, 5, 7, 9, 11, 13, 15 }, - { 16, 18, 20, 22, 24, 26, 28, NO_LED }, - { 17, 19, 21, 23, 25, 27, 29, 30 }, - { 31, 32, 34, 36, 38, 40, 42, 44 }, - { NO_LED, 33, 35, 37, 39, 41, 43, 45 }, - { 46, 48, 50, 52, 54, 56, NO_LED, 58 }, - { 47, 49, 51, 53, 55, 57, NO_LED, 59 }, - { 60, 62, 64, 66, 68, 70, NO_LED, 73 }, - { 61, 63, 65, 67, 69, 71, 72, 74 }, - { 75, 78, NO_LED, NO_LED, NO_LED, 79, 81, 83 }, - { 76, 77, NO_LED, NO_LED, NO_LED, 80, 82, 84 } -}, { - // LED Index to Physical Position - { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {119,0 }, {134,0 }, {149,0 }, {164,0 }, {179,0 }, {194,0 }, {209,0 }, {224,0 }, - { 0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 }, {202,13 }, {224,13 }, - { 4,26 }, { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {207,32 }, {224,26 }, - { 6,38 }, { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {190,38 }, {224,38 }, - { 2,51 }, { 19,51 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 }, {189,51 }, {209,51 }, {224,51 }, - { 2,64 }, { 21,64 }, { 39,64 }, { 95,64 }, {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 } -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 9, 12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1, - 1, 9, 1, 4, 1, 1, 1, 4, 4, 4, -} }; -#endif diff --git a/keyboards/teleport/native/iso/keyboard.json b/keyboards/teleport/native/iso/keyboard.json index 57c5cdb308..03a0d811b0 100644 --- a/keyboards/teleport/native/iso/keyboard.json +++ b/keyboards/teleport/native/iso/keyboard.json @@ -2,6 +2,95 @@ "usb": { "pid": "0x0002" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1}, + {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4}, + {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4}, + {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4}, + {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4}, + {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4}, + {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4}, + {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4}, + {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4}, + {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4}, + {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4}, + {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4}, + {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1}, + {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1}, + {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12}, + {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4}, + {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4}, + {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4}, + {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4}, + {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4}, + {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4}, + {"matrix": [4, 7], "x": 207, "y": 32, "flags": 1}, + {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1}, + {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9}, + {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12}, + {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12}, + {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12}, + {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4}, + {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4}, + {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4}, + {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4}, + {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4}, + {"matrix": [6, 7], "x": 190, "y": 38, "flags": 4}, + {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1}, + {"matrix": [8, 0], "x": 2, "y": 51, "flags": 1}, + {"matrix": [9, 0], "x": 19, "y": 51, "flags": 4}, + {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4}, + {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4}, + {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4}, + {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4}, + {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4}, + {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4}, + {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4}, + {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4}, + {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4}, + {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4}, + {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1}, + {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4}, + {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1}, + {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9}, + {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1}, + {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4}, + {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1}, + {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1}, + {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1}, + {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, + {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4}, + {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["75_iso"], "layouts": { "LAYOUT_75_iso": { diff --git a/keyboards/teleport/native/mcuconf.h b/keyboards/teleport/native/mcuconf.h index e12b906041..7376837ac3 100644 --- a/keyboards/teleport/native/mcuconf.h +++ b/keyboards/teleport/native/mcuconf.h @@ -27,4 +27,4 @@ #define STM32_I2C_USE_I2C1 TRUE #undef STM32_I2C_USE_DMA -#define STM32_I2C_USE_DMA TRUE \ No newline at end of file +#define STM32_I2C_USE_DMA TRUE diff --git a/keyboards/teleport/native/native.c b/keyboards/teleport/native/native.c index b53979e27c..aca323715f 100644 --- a/keyboards/teleport/native/native.c +++ b/keyboards/teleport/native/native.c @@ -115,4 +115,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS15, SW5_CS15, SW4_CS15}, {1, SW6_CS16, SW5_CS16, SW4_CS16} }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/teleport/numpad/readme.md b/keyboards/teleport/numpad/readme.md index 20975b6947..a12e88a6c1 100644 --- a/keyboards/teleport/numpad/readme.md +++ b/keyboards/teleport/numpad/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (In this case NumLock) 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` (With the default keymap, hold NumLock, then press Enter) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` (With the default keymap, hold NumLock, then press Enter) diff --git a/keyboards/teleport/tkl/keyboard.json b/keyboards/teleport/tkl/keyboard.json index b6b93667f4..56c82b4b42 100644 --- a/keyboards/teleport/tkl/keyboard.json +++ b/keyboards/teleport/tkl/keyboard.json @@ -319,4 +319,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/terrazzo/terrazzo_effects/dino.h b/keyboards/terrazzo/terrazzo_effects/dino.h index 18c629f414..fa1e9c44e2 100644 --- a/keyboards/terrazzo/terrazzo_effects/dino.h +++ b/keyboards/terrazzo/terrazzo_effects/dino.h @@ -159,4 +159,4 @@ void DINO(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/dot.h b/keyboards/terrazzo/terrazzo_effects/dot.h index 07c4621c26..1ed8669789 100644 --- a/keyboards/terrazzo/terrazzo_effects/dot.h +++ b/keyboards/terrazzo/terrazzo_effects/dot.h @@ -24,4 +24,4 @@ void DOT(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/heart.h b/keyboards/terrazzo/terrazzo_effects/heart.h index bfbd6acc38..1abb83411f 100644 --- a/keyboards/terrazzo/terrazzo_effects/heart.h +++ b/keyboards/terrazzo/terrazzo_effects/heart.h @@ -96,4 +96,4 @@ void HEART(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/outrun.h b/keyboards/terrazzo/terrazzo_effects/outrun.h index 127e714b2f..9cb28e3b70 100644 --- a/keyboards/terrazzo/terrazzo_effects/outrun.h +++ b/keyboards/terrazzo/terrazzo_effects/outrun.h @@ -124,4 +124,4 @@ void OUTRUN(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/pac_dude.h b/keyboards/terrazzo/terrazzo_effects/pac_dude.h index aaf0c55457..c4f393f558 100644 --- a/keyboards/terrazzo/terrazzo_effects/pac_dude.h +++ b/keyboards/terrazzo/terrazzo_effects/pac_dude.h @@ -64,4 +64,4 @@ void PAC_DUDE(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/stripes.h b/keyboards/terrazzo/terrazzo_effects/stripes.h index 4e1238cdc4..e90fd05d25 100644 --- a/keyboards/terrazzo/terrazzo_effects/stripes.h +++ b/keyboards/terrazzo/terrazzo_effects/stripes.h @@ -32,4 +32,4 @@ void STRIPES(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/wpm_chart.h b/keyboards/terrazzo/terrazzo_effects/wpm_chart.h index b80b604d26..bfb043150b 100644 --- a/keyboards/terrazzo/terrazzo_effects/wpm_chart.h +++ b/keyboards/terrazzo/terrazzo_effects/wpm_chart.h @@ -108,4 +108,4 @@ void WPM_CHART(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/tg67/keyboard.json b/keyboards/tg67/keyboard.json index 308f16cc99..f712749368 100644 --- a/keyboards/tg67/keyboard.json +++ b/keyboards/tg67/keyboard.json @@ -120,4 +120,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/tgr/910ce/keymaps/default/keymap.c b/keyboards/tgr/910ce/keymaps/default/keymap.c index 2e5fc5dd67..60772c7586 100644 --- a/keyboards/tgr/910ce/keymaps/default/keymap.c +++ b/keyboards/tgr/910ce/keymaps/default/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json index 069a4b79fa..155524ad61 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json +++ b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json @@ -66,4 +66,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk b/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/themadnoodle/noodlepad/config.h b/keyboards/themadnoodle/noodlepad/config.h index d51dabf53d..fbb498c408 100644 --- a/keyboards/themadnoodle/noodlepad/config.h +++ b/keyboards/themadnoodle/noodlepad/config.h @@ -3,4 +3,4 @@ #pragma once -#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 \ No newline at end of file +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 diff --git a/keyboards/themadnoodle/noodlepad/info.json b/keyboards/themadnoodle/noodlepad/info.json index 48f984339c..84caadfdae 100644 --- a/keyboards/themadnoodle/noodlepad/info.json +++ b/keyboards/themadnoodle/noodlepad/info.json @@ -47,4 +47,4 @@ } }, -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk b/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/themadnoodle/noodlepad/v1/keyboard.json b/keyboards/themadnoodle/noodlepad/v1/keyboard.json index e868400ee1..3b89cbff71 100644 --- a/keyboards/themadnoodle/noodlepad/v1/keyboard.json +++ b/keyboards/themadnoodle/noodlepad/v1/keyboard.json @@ -22,4 +22,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/noodlepad/v2/keyboard.json b/keyboards/themadnoodle/noodlepad/v2/keyboard.json index d66c2813ce..e88c561625 100644 --- a/keyboards/themadnoodle/noodlepad/v2/keyboard.json +++ b/keyboards/themadnoodle/noodlepad/v2/keyboard.json @@ -21,4 +21,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk b/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/themadnoodle/noodlepad_micro/readme.md b/keyboards/themadnoodle/noodlepad_micro/readme.md index a77c1ad7ba..9c8f3acdce 100644 --- a/keyboards/themadnoodle/noodlepad_micro/readme.md +++ b/keyboards/themadnoodle/noodlepad_micro/readme.md @@ -25,4 +25,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Double press the button on the back, center, left of the PCB labeled "R" to enter the bootloader drive mode. -* If you have a pre-compiled .uf2 file, copy it into bootloader drive (RPI-RP2), board will reset automatically once file is copied sucessfully \ No newline at end of file +* If you have a pre-compiled .uf2 file, copy it into bootloader drive (RPI-RP2), board will reset automatically once file is copied sucessfully diff --git a/keyboards/themadnoodle/udon13/keyboard.json b/keyboards/themadnoodle/udon13/keyboard.json index 31ad17a367..f3ac7cfb11 100644 --- a/keyboards/themadnoodle/udon13/keyboard.json +++ b/keyboards/themadnoodle/udon13/keyboard.json @@ -70,4 +70,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/udon13/keymaps/default/rules.mk b/keyboards/themadnoodle/udon13/keymaps/default/rules.mk index 217da48272..defc5696fc 100644 --- a/keyboards/themadnoodle/udon13/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/udon13/keymaps/default/rules.mk @@ -1,2 +1,2 @@ ENCODER_MAP_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/themadnoodle/udon13/udon13.c b/keyboards/themadnoodle/udon13/udon13.c index bda0ae7e7b..304d7811f6 100644 --- a/keyboards/themadnoodle/udon13/udon13.c +++ b/keyboards/themadnoodle/udon13/udon13.c @@ -73,4 +73,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/thepanduuh/degenpad/readme.md b/keyboards/thepanduuh/degenpad/readme.md index 2feed8cbcc..5e0772c668 100644 --- a/keyboards/thepanduuh/degenpad/readme.md +++ b/keyboards/thepanduuh/degenpad/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to 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. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/thevankeyboards/readme.md b/keyboards/thevankeyboards/readme.md index 5dfd74e574..10879bbb5f 100644 --- a/keyboards/thevankeyboards/readme.md +++ b/keyboards/thevankeyboards/readme.md @@ -1,3 +1,3 @@ # TheVan Keyboards -[TheVan Keyboards](https://thevankeyboards.com/) is based in the United States and is responsible for boards such as the minivan. \ No newline at end of file +[TheVan Keyboards](https://thevankeyboards.com/) is based in the United States and is responsible for boards such as the minivan. diff --git a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json index 95fa6664b2..8a2b4093f2 100644 --- a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json +++ b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json @@ -74,4 +74,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk index 9bfd1498a3..fedac72e2e 100644 --- a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk +++ b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c \ No newline at end of file +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/tkc/portico/keyboard.json b/keyboards/tkc/portico/keyboard.json index 49efe0a942..52ad417a02 100644 --- a/keyboards/tkc/portico/keyboard.json +++ b/keyboards/tkc/portico/keyboard.json @@ -44,6 +44,75 @@ "typing_heatmap": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index bd60df13e2..e3283e1571 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -99,28 +99,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { #endif #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/tkc/portico68v2/keyboard.json b/keyboards/tkc/portico68v2/keyboard.json index 087713f3a2..0e7ccac963 100644 --- a/keyboards/tkc/portico68v2/keyboard.json +++ b/keyboards/tkc/portico68v2/keyboard.json @@ -53,6 +53,90 @@ }, "center_point": [116, 32], "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 180, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 200, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 44, "y": 0, "flags": 2}, + {"x": 88, "y": 0, "flags": 2}, + {"x": 136, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 24, "y": 64, "flags": 2}, + {"x": 78, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 146, "y": 64, "flags": 2} + ], "max_brightness": 175, "sleep": true }, diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c index 0f3c557b2c..e746bda7e6 100644 --- a/keyboards/tkc/portico68v2/portico68v2.c +++ b/keyboards/tkc/portico68v2/portico68v2.c @@ -104,30 +104,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0,SW6_CS39,SW6_CS38,SW6_CS37}, /* RGB82 */ }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }, - {0,0},{180,0},{224,0},{200,64},{224,64},{224,32},{44,0},{88,0},{136,0},{0,32},{0,64},{24,64},{78,64},{112,64},{146,64} -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/tkc/portico75/keyboard.json b/keyboards/tkc/portico75/keyboard.json index 1e84f25ebe..63f5b59f43 100644 --- a/keyboards/tkc/portico75/keyboard.json +++ b/keyboards/tkc/portico75/keyboard.json @@ -42,6 +42,106 @@ "hue_wave": true }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 205, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 183, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 113, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 157, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 4}, + {"matrix": [4, 1], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 107, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 186, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 209, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 4}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 4}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 9], "x": 151, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 173, "y": 61, "flags": 4}, + {"matrix": [5, 11], "x": 195, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 224, "y": 64, "flags": 4}, + {"x": 2, "y": 0, "flags": 2}, + {"x": 46, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 178, "y": 0, "flags": 2}, + {"x": 222, "y": 0, "flags": 2}, + {"x": 224, "y": 2, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 62, "flags": 2}, + {"x": 2, "y": 64, "flags": 2}, + {"x": 46, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 178, "y": 64, "flags": 2}, + {"x": 222, "y": 64, "flags": 2}, + {"x": 0, "y": 2, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 62, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index cd6dafe31a..9552b853c5 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -142,31 +142,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { #endif #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44}, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED}, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, NO_LED}, - { 71, 72, 73, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, 78, 79, NO_LED}, -}, { - {0,0},{18,0},{33,0},{48,0},{62,0},{81,0},{96,0},{110,0},{125,0},{143,0},{158,0},{173,0},{187,0},{205,0},{224,0}, - {0,15},{15,15},{29,15},{44,15},{59,15},{74,15},{88,15},{103,15},{118,15},{132,15},{147,15},{162,15},{176,15},{198,15},{224,15}, - {4,26},{22,26},{37,26},{51,26},{66,26},{81,26},{96,26},{110,26},{125,26},{140,26},{154,26},{169,26},{183,26},{202,26},{224,26}, - {5,38},{25,38},{40,38},{54,38},{69,38},{84,38},{98,38},{113,38},{128,38},{143,38},{157,38},{172,38},{197,38}, - {9,49},{33,49},{48,49},{62,49},{77,49},{92,49},{107,49},{121,49},{136,49},{151,49},{165,49},{186,49},{209,52}, - {2,61},{20,61},{39,61},{94,61},{151,61},{173,61},{195,64},{209,64},{224,64}, - {2,0},{46,0},{90,0},{134,0},{178,0},{222,0},{224,2},{224,32},{224,62},{2,64},{46,64},{90,64},{134,64},{178,64},{222,64},{0,2},{0,32},{0,62}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/togkey/pad_pocket/readme.md b/keyboards/togkey/pad_pocket/readme.md index 160d698ad6..8007cc808e 100644 --- a/keyboards/togkey/pad_pocket/readme.md +++ b/keyboards/togkey/pad_pocket/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (The left key closest to the USB Port) 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c deleted file mode 100644 index 756eb06506..0000000000 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright 2020 tominabox1 - * - * 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 - -enum layers { - _BASE, - _NUM_SYM, - _NAV -}; - -#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) -#define KC_GA LGUI_T(KC_A) -#define KC_AS LALT_T(KC_S) -#define KC_CD LCTL_T(KC_D) -#define KC_SF LSFT_T(KC_F) -#define KC_SJ RSFT_T(KC_J) -#define KC_CK RCTL_T(KC_K) -#define KC_AL RALT_T(KC_L) -#define KC_GSCLN RGUI_T(KC_SCLN) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_GSCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LCTL, KC_ENT, KC_NUM_SPC, MO(_NAV) - ), - - [_NUM_SYM] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, - KC_BSLS,KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_DOT, KC_GRV, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_NAV] = LAYOUT( - QK_BOOT, _______, AG_NORM, AG_SWAP, DB_TOGG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS - ) -}; -// clang-format on - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, - [_NUM_SYM] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU) }, - [_NAV] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) } -}; -#endif - -#ifdef COMBO_ENABLE -enum combo_events { - COMBO_BSPC, - COMBO_NUMBAK, - COMBO_TAB, - COMBO_ESC, - COMBO_DEL, -}; - -const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; -const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; -const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; - -combo_t key_combos[] = { - [COMBO_BSPC] = COMBO(combo_bspc, KC_BSPC), - [COMBO_NUMBAK] = COMBO(combo_numbak, KC_BSPC), - [COMBO_TAB] = COMBO(combo_tab, KC_TAB), - [COMBO_ESC] = COMBO(combo_esc, KC_ESC), - [COMBO_DEL] = COMBO(combo_del, KC_DEL) -}; -#endif - -#ifdef OLED_ENABLE - -// Add additional layer names here if desired. Only first 5 characters will be copied to display. -const char PROGMEM layer_base[] = "BASE"; -const char PROGMEM layer_num_sym[] = " SYM"; -const char PROGMEM layer_nav[] = " NAV"; -// Add layer name variables to array here. Make sure these are in order. -const char* const PROGMEM layer_names[] = { - layer_base, - layer_num_sym, - layer_nav -}; - -static char oled_layer_buf[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -static layer_state_t top_layer_cache; - -/* BEGIN STANDARD QMK FUNCTIONS */ -bool oled_task_user(void) { - oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); - // Renders the current keyboard state (layer, lock, caps, scroll, etc); - oled_set_cursor(0, 3); - oled_write_P(oled_section_break, false); - render_layer_status(oled_layer_buf); - oled_write_P(oled_section_break, false); - render_mod_status(get_mods() | get_oneshot_mods()); - oled_write_P(oled_section_break, false); - render_keylock_status(host_keyboard_led_state()); - oled_write_P(oled_section_break, false); - render_keylogger_status(); - - return false; -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - if (record->event.pressed) { - add_keylog(keycode, record); - } - - return true; -} - -// If we don't force an update during initialization, the layer name buffer will start out blank. -layer_state_t default_layer_state_set_user(layer_state_t state) { - update_layer_namebuf(get_highest_layer(state), true); - return state; -} -layer_state_t layer_state_set_user(layer_state_t state) { - update_layer_namebuf(get_highest_layer(state | default_layer_state), false); - return state; -} - -/* END STANDARD QMK FUNCTIONS */ -/* BEGIN CUSTOM HELPER FUNCTION FOR OLED */ -// Avoid excessive copying by only updating the layer name buffer when the layer changes -void update_layer_namebuf(layer_state_t layer, bool force_update) { - if (force_update || layer != top_layer_cache) { - top_layer_cache = layer; - if (layer < ARRAY_SIZE(layer_names)) { - memcpy_P(oled_layer_buf, pgm_read_ptr(&layer_names[layer]), ARRAY_SIZE(oled_layer_buf) - 1); - } else { - memcpy(oled_layer_buf, get_u8_str(layer, ' '), ARRAY_SIZE(oled_layer_buf) - 1); - } - } -} -#endif diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json new file mode 100644 index 0000000000..252db21f5d --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json @@ -0,0 +1,36 @@ +{ + "keyboard": "tominabox1/le_chiffre", + "keymap": "default", + "config": { + "features": { + "encoder_map": true + } + }, + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_MPLY", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "LGUI_T(KC_A)", "LALT_T(KC_S)", "LCTL_T(KC_D)", "LSFT_T(KC_F)", "KC_G", "KC_H", "RSFT_T(KC_J)", "RCTL_T(KC_K)", "RALT_T(KC_L)", "RGUI_T(KC_SCLN)", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_LCTL", "KC_ENT", "LT(1, KC_SPC)", "MO(2)" + ], + [ + "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_TRNS", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", + "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_EQUAL", "KC_MINS", + "KC_BSLS", "KC_LCBR", "KC_LBRC", "KC_LPRN", "KC_UNDS", "KC_RPRN", "KC_RBRC", "KC_RCBR", "KC_DOT", "KC_GRV", + "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ + "QK_BOOT", "KC_TRNS", "AG_NORM", "AG_SWAP", "DB_TOGG", "KC_TRNS", "KC_GRV", "KC_PGDN", "KC_UP", "KC_PGUP", + "KC_SCLN", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", "KC_NO", "KC_HOME", "KC_LEFT", "KC_DOWN", "KC_RGHT", + "KC_END", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", "KC_NO", "KC_MINS", "KC_INT1", "KC_COMM", "KC_DOT", "KC_BSLS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + + ], + "encoders": [ + [{"ccw": "KC_MNXT", "cw": "KC_MPRV"}], + [{"ccw": "MS_WHLD", "cw": "MS_WHLU"}], + [{"ccw": "KC_PGDN", "cw": "KC_PGUP"}] + ] +} diff --git a/keyboards/tominabox1/le_chiffre/rev2/readme.md b/keyboards/tominabox1/le_chiffre/rev2/readme.md index b8c65bc0e0..84422b3d4c 100644 --- a/keyboards/tominabox1/le_chiffre/rev2/readme.md +++ b/keyboards/tominabox1/le_chiffre/rev2/readme.md @@ -1,2 +1,2 @@ Updated v2 PCB with better plate screw clearances, ESD protection, as well as sweet sweet curvy traces. -Rev. 2.0 requires new firmware due to the pinout changing to facilitate prettier trace runs. \ No newline at end of file +Rev. 2.0 requires new firmware due to the pinout changing to facilitate prettier trace runs. diff --git a/keyboards/trkeyboards/trk2/keyboard.json b/keyboards/trkeyboards/trk2/keyboard.json new file mode 100644 index 0000000000..f62ee53a03 --- /dev/null +++ b/keyboards/trkeyboards/trk2/keyboard.json @@ -0,0 +1,124 @@ +{ + "manufacturer": "Tvrd Rad Keyboards", + "keyboard_name": "Tvrd Rad Keyboards TRK2", + "maintainer": "tvrdrad-keyboards", + "bootloader": "halfkay", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B0", "pin_b": "B1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B3", "B2", "D2", "D3", "C6", "C7", "D5", "F6", "F7", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["F5", "F4", "F1", "F0", "B7"] + }, + "processor": "atmega32u4", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true + }, + "led_count": 19, + "max_brightness": 120 + }, + "url": "https://www.trkeyboards.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0002", + "vid": "0x5452" + }, + "ws2812": { + "pin": "E6" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0.75, "y": 0}, + {"matrix": [0, 1], "x": 1.75, "y": 0}, + {"matrix": [0, 2], "x": 2.75, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 10, "y": 0}, + {"matrix": [0, 8], "x": 11, "y": 0}, + {"matrix": [0, 9], "x": 12, "y": 0}, + {"matrix": [0, 10], "x": 13, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 13], "x": 16.25, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0.5, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 2, "y": 1}, + {"matrix": [1, 2], "x": 3.5, "y": 1}, + {"matrix": [1, 3], "x": 4.5, "y": 1}, + {"matrix": [1, 4], "x": 5.5, "y": 1}, + {"matrix": [1, 5], "x": 6.5, "y": 1}, + {"matrix": [1, 6], "x": 9.25, "y": 1}, + {"matrix": [1, 7], "x": 10.25, "y": 1}, + {"matrix": [1, 8], "x": 11.25, "y": 1}, + {"matrix": [1, 9], "x": 12.25, "y": 1}, + {"matrix": [1, 10], "x": 13.25, "y": 1}, + {"matrix": [1, 11], "x": 14.75, "y": 1}, + {"matrix": [1, 12], "x": 15.75, "y": 1}, + {"matrix": [1, 13], "x": 16.75, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 18.25, "y": 1}, + {"matrix": [2, 0], "x": 0.25, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 2, "y": 2}, + {"matrix": [2, 2], "x": 3.75, "y": 2}, + {"matrix": [2, 3], "x": 4.75, "y": 2}, + {"matrix": [2, 4], "x": 5.75, "y": 2}, + {"matrix": [2, 5], "x": 6.75, "y": 2}, + {"matrix": [2, 6], "x": 9.5, "y": 2}, + {"matrix": [2, 7], "x": 10.5, "y": 2}, + {"matrix": [2, 8], "x": 11.5, "y": 2}, + {"matrix": [2, 9], "x": 12.5, "y": 2}, + {"matrix": [2, 10], "x": 18.25, "y": 0}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 18.25, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 4.25, "y": 3}, + {"matrix": [3, 3], "x": 5.25, "y": 3}, + {"matrix": [3, 4], "x": 6.25, "y": 3}, + {"matrix": [3, 5], "x": 7.25, "y": 3}, + {"matrix": [4, 5], "x": 8.75, "y": 3}, + {"matrix": [3, 6], "x": 9.75, "y": 3}, + {"matrix": [3, 7], "x": 10.75, "y": 3}, + {"matrix": [3, 8], "x": 11.75, "y": 3}, + {"matrix": [3, 9], "x": 12.75, "y": 3}, + {"matrix": [3, 11], "x": 14.5, "y": 3}, + {"matrix": [3, 12], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 17.25, "y": 3}, + {"matrix": [3, 14], "x": 18.25, "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": 4.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 5.75, "y": 4, "w": 2.75}, + {"matrix": [4, 6], "x": 9, "y": 4, "w": 2.25}, + {"matrix": [4, 8], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 15, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 16.25, "y": 4}, + {"matrix": [4, 13], "x": 17.25, "y": 4}, + {"matrix": [4, 14], "x": 18.25, "y": 4} + ] + } + } +} diff --git a/keyboards/trkeyboards/trk2/keymaps/default/keymap.c b/keyboards/trkeyboards/trk2/keymaps/default/keymap.c new file mode 100644 index 0000000000..0791908af1 --- /dev/null +++ b/keyboards/trkeyboards/trk2/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2025 Tvrd Rad Keyboards +// 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_MINUS, KC_EQUAL, KC_KP_SLASH, KC_KP_ASTERISK, + 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_MUTE, KC_SCLN, KC_QUOTE, KC_ENTER, KC_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, KC_DELETE, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_BSPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PMNS, KC_PPLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [1] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/trkeyboards/trk2/keymaps/default/rules.mk b/keyboards/trkeyboards/trk2/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/trkeyboards/trk2/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/trkeyboards/trk2/readme.md b/keyboards/trkeyboards/trk2/readme.md new file mode 100644 index 0000000000..7e6edbac04 --- /dev/null +++ b/keyboards/trkeyboards/trk2/readme.md @@ -0,0 +1,26 @@ +# Tvrd Rad Keyboards TRK2 + +![TRK2](https://i.imgur.com/iO2zIIT.jpeg) + +Custom keyboard designed by Tvrd Rad Keyboards aka TRK2 + +* Keyboard Maintainer: [Tvrd Rad Keyboards](https://www.trkeyboards.com) +* Hardware Supported: TRK2 PCB +* Hardware Availability: https://www.trkeyboards.com/rs/tastature/5-trk2/ + +Make example for this keyboard (after setting up your build environment): + + make trkeyboards/trk2:default + +Flashing example for this keyboard: + + make trkeyboards/trk2:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/tyson60/info.json b/keyboards/trnthsn/tyson60/info.json index 6f4df15d99..27e10a1333 100644 --- a/keyboards/trnthsn/tyson60/info.json +++ b/keyboards/trnthsn/tyson60/info.json @@ -34,7 +34,7 @@ }, "usb": { "device_version": "0.0.1", - "pid": "0x5336", + "pid": "0x3633", "vid": "0x5453" }, "ws2812": { diff --git a/keyboards/trnthsn/tyson88/config.h b/keyboards/trnthsn/tyson88/config.h new file mode 100644 index 0000000000..8ab8c1a85f --- /dev/null +++ b/keyboards/trnthsn/tyson88/config.h @@ -0,0 +1,9 @@ +// Copyright 2025 Tyson.Keebs +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/tyson88/halconf.h b/keyboards/trnthsn/tyson88/halconf.h new file mode 100644 index 0000000000..afed4392fb --- /dev/null +++ b/keyboards/trnthsn/tyson88/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 Tyson.Keebs +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/trnthsn/tyson88/info.json b/keyboards/trnthsn/tyson88/info.json new file mode 100644 index 0000000000..8818e20008 --- /dev/null +++ b/keyboards/trnthsn/tyson88/info.json @@ -0,0 +1,143 @@ +{ + "manufacturer": "Tyson.Keebs", + "keyboard_name": "Tyson88", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "A5" + }, + "matrix_pins": { + "cols": ["A9", "A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A4", "A3", "A2", "A1", "A0", "A10", "C15", "C14"], + "rows": ["A15", "B3", "B4", "A6", "B6", "B5"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "default": { + "animation": "rainbow_swirl" + }, + "led_count": 30 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6F38", + "vid": "0x5453" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + }, + "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.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.75, "y": 0}, + {"matrix": [0, 10], "x": 10.75, "y": 0}, + {"matrix": [0, 11], "x": 11.75, "y": 0}, + {"matrix": [0, 12], "x": 12.75, "y": 0}, + {"matrix": [3, 14], "x": 14, "y": 0}, + {"matrix": [0, 14], "x": 15.25, "y": 0}, + {"matrix": [0, 15], "x": 16.25, "y": 0}, + {"matrix": [0, 16], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.25}, + {"matrix": [1, 3], "x": 3, "y": 1.25}, + {"matrix": [1, 4], "x": 4, "y": 1.25}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.25}, + {"matrix": [1, 7], "x": 7, "y": 1.25}, + {"matrix": [1, 8], "x": 8, "y": 1.25}, + {"matrix": [1, 9], "x": 9, "y": 1.25}, + {"matrix": [1, 10], "x": 10, "y": 1.25}, + {"matrix": [1, 11], "x": 11, "y": 1.25}, + {"matrix": [1, 12], "x": 12, "y": 1.25}, + {"matrix": [0, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 16], "x": 17.25, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"matrix": [2, 16], "x": 17.25, "y": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"matrix": [4, 13], "x": 14, "y": 4.25}, + {"matrix": [4, 15], "x": 16.25, "y": 4.25}, + {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + {"matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/tyson88/keymaps/default/keymap.c b/keyboards/trnthsn/tyson88/keymaps/default/keymap.c new file mode 100644 index 0000000000..510bfdd490 --- /dev/null +++ b/keyboards/trnthsn/tyson88/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2025 Tyson.Keebs +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐ ┌───┬───┬───┐ + // │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13│ │Prs│Srk│Ps │ + // └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘ └───┴───┴───┘ + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bsp│ │Ins│Hm │PgU│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + // │Sft │ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + + + [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_MPLY, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/tyson88/mcuconf.h b/keyboards/trnthsn/tyson88/mcuconf.h new file mode 100644 index 0000000000..d131af9fdf --- /dev/null +++ b/keyboards/trnthsn/tyson88/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 Tyson.Keebs +// 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/trnthsn/tyson88/readme.md b/keyboards/trnthsn/tyson88/readme.md new file mode 100644 index 0000000000..5a6ea20a8b --- /dev/null +++ b/keyboards/trnthsn/tyson88/readme.md @@ -0,0 +1,27 @@ +# Tyson88 + +![trnthsn/tyson88](https://live.staticflickr.com/65535/54832182554_a1b1edfb7d_b.jpg) + +A TKL keyboard PCB compatible F13 layout. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, Tyson88 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/tyson88/stm32f103:default + +Flashing example for this keyboard: + + make trnthsn/tyson88/stm32f103: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/trnthsn/tyson88/stm32f072/keyboard.json b/keyboards/trnthsn/tyson88/stm32f072/keyboard.json new file mode 100644 index 0000000000..8bba6f5d5d --- /dev/null +++ b/keyboards/trnthsn/tyson88/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu" +} diff --git a/keyboards/trnthsn/tyson88/stm32f103/keyboard.json b/keyboards/trnthsn/tyson88/stm32f103/keyboard.json new file mode 100644 index 0000000000..4dc77604c4 --- /dev/null +++ b/keyboards/trnthsn/tyson88/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot" +} diff --git a/keyboards/troyle/macro_keys_dual/keyboard.json b/keyboards/troyle/macro_keys_dual/keyboard.json new file mode 100644 index 0000000000..62c17c5df8 --- /dev/null +++ b/keyboards/troyle/macro_keys_dual/keyboard.json @@ -0,0 +1,44 @@ +{ + "manufacturer": "troyle", + "keyboard_name": "troyle/macro_keys_dual", + "maintainer": "troyle", + "development_board": "promicro", + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D0", "resolution": 2}, + {"pin_a": "B4", "pin_b": "B5", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["F7", "F6", "F5", "F4"], + ["B6", "B2", "B3", "B1"] + ] + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x7472" + }, + "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": [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} + ] + } + } +} diff --git a/keyboards/troyle/macro_keys_dual/keymaps/default/keymap.c b/keyboards/troyle/macro_keys_dual/keymaps/default/keymap.c new file mode 100644 index 0000000000..59ee63560c --- /dev/null +++ b/keyboards/troyle/macro_keys_dual/keymaps/default/keymap.c @@ -0,0 +1,17 @@ +// 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_P1, KC_P2, KC_P3, KC_P4, + KC_P5, KC_P6, KC_P7, KC_P8 + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_LEFT_BRACKET, KC_RIGHT_BRACKET), ENCODER_CCW_CW(KC_KP_PLUS, KC_KP_MINUS) } +}; +#endif diff --git a/keyboards/troyle/macro_keys_dual/keymaps/default/rules.mk b/keyboards/troyle/macro_keys_dual/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/troyle/macro_keys_dual/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/troyle/macro_keys_dual/readme.md b/keyboards/troyle/macro_keys_dual/readme.md new file mode 100644 index 0000000000..d48943a972 --- /dev/null +++ b/keyboards/troyle/macro_keys_dual/readme.md @@ -0,0 +1,27 @@ +# troyle/macro_keys_dual + +![troyle/macro_keys_dual](https://i.imgur.com/3rrOsde.png) + +A pretty simple macro keyboard that can use up to 2 rotary encoders + +* Keyboard Maintainer: [Tom Royle](https://github.com/tom-royle) +* Hardware Supported: Sparkfun ProMicro in the troyle-macro-keyboard v1.0 PCB +* Hardware Availability: You will have to contact me some how :) + +Make example for this keyboard (after setting up your build environment): + + make troyle/macro_keys_dual:default + +Flashing example for this keyboard: + + make troyle/macro_keys_dual: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/tweetydabird/lbs4/keymaps/default/readme.md b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md index 09501d9231..1919f101f8 100644 --- a/keyboards/tweetydabird/lbs4/keymaps/default/readme.md +++ b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md @@ -2,4 +2,4 @@ This is a very basic layout using LSB4 as media playback buttons. -![lsb4](https://imgur.com/hCDdQIc) \ No newline at end of file +![lsb4](https://imgur.com/hCDdQIc) diff --git a/keyboards/tweetydabird/lbs4/readme.md b/keyboards/tweetydabird/lbs4/readme.md index e17a850c5e..4597f15882 100644 --- a/keyboards/tweetydabird/lbs4/readme.md +++ b/keyboards/tweetydabird/lbs4/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top left key and plug in the keyboard * **Physical reset**: Briefly short the marked pads on PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) diff --git a/keyboards/tweetydabird/lbs6/readme.md b/keyboards/tweetydabird/lbs6/readme.md index 2301cc3c56..c47f254876 100644 --- a/keyboards/tweetydabird/lbs6/readme.md +++ b/keyboards/tweetydabird/lbs6/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the bottom right key and plug in the keyboard * **Physical reset**: Briefly short the marked pads on PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 5fcc5cf144..364bff7df9 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -94,4 +94,4 @@ bool oled_task_user(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c index f1e433a426..736781bd80 100644 --- a/keyboards/tweetydabird/lotus58/lotus58.c +++ b/keyboards/tweetydabird/lotus58/lotus58.c @@ -26,4 +26,4 @@ bool oled_task_kb(void) { render_logo(); return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c b/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c index 7430554f7a..9c24ca89c6 100644 --- a/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c +++ b/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk b/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk +++ b/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/tyraelwastaken/equanimity/readme.md b/keyboards/tyraelwastaken/equanimity/readme.md index a866226192..5346bbf882 100644 --- a/keyboards/tyraelwastaken/equanimity/readme.md +++ b/keyboards/tyraelwastaken/equanimity/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/tzarc/kobold/info.json b/keyboards/tzarc/kobold/info.json index bed8e8a23f..70eaa9eb84 100644 --- a/keyboards/tzarc/kobold/info.json +++ b/keyboards/tzarc/kobold/info.json @@ -13,7 +13,7 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "backing_size": 32768, + "backing_size": 16384, "driver": "spi_flash" } }, diff --git a/keyboards/umbra/hotswap/readme.md b/keyboards/umbra/hotswap/readme.md index bf86db069b..b02c8e31ee 100644 --- a/keyboards/umbra/hotswap/readme.md +++ b/keyboards/umbra/hotswap/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to How to enter bootloader (DFU): * PCB will arrive flashed. With USB plugged in press Fn+Esc to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. -* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. \ No newline at end of file +* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. diff --git a/keyboards/umbra/solder/readme.md b/keyboards/umbra/solder/readme.md index 61a564578b..773f135c98 100644 --- a/keyboards/umbra/solder/readme.md +++ b/keyboards/umbra/solder/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to How to enter bootloader (DFU): * PCB will arrive flashed. With USB plugged in press Fn+Esc to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. -* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. \ No newline at end of file +* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. diff --git a/keyboards/ungodly/launch_pad/keyboard.json b/keyboards/ungodly/launch_pad/keyboard.json index 50b6c2bcbf..2f5bc95aa6 100644 --- a/keyboards/ungodly/launch_pad/keyboard.json +++ b/keyboards/ungodly/launch_pad/keyboard.json @@ -33,6 +33,30 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 1], "x": 37, "y": 60, "flags": 4}, + {"matrix": [4, 2], "x": 148, "y": 60, "flags": 4}, + {"matrix": [3, 3], "x": 222, "y": 54, "flags": 4}, + {"matrix": [3, 2], "x": 148, "y": 45, "flags": 4}, + {"matrix": [3, 1], "x": 74, "y": 45, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 30, "flags": 4}, + {"matrix": [2, 1], "x": 74, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 148, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 222, "y": 30, "flags": 4}, + {"matrix": [1, 3], "x": 222, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 148, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 74, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 74, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 148, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 222, "y": 0, "flags": 4}, + {"x": 185, "y": 7, "flags": 2}, + {"x": 37, "y": 7, "flags": 2}, + {"x": 37, "y": 52, "flags": 2}, + {"x": 185, "y": 52, "flags": 2} + ], "max_brightness": 150, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/ungodly/launch_pad/launch_pad.c b/keyboards/ungodly/launch_pad/launch_pad.c deleted file mode 100644 index 9803d8674f..0000000000 --- a/keyboards/ungodly/launch_pad/launch_pad.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2020 Ungodly Design - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 14, 15, 16, 17 }, - { 13, 12, 11, 10 }, - { 6, 7, 8, 9 }, - { 5, 4, 3, 2 }, - {NO_LED, 0, 1, NO_LED } -}, { // LED Index to Physical Position - { 37, 60 }, { 148, 60 }, // row 5 - { 222, 54 }, { 148, 45 }, { 74, 45 }, { 0, 45 }, // row 4 - { 0, 30 }, { 74, 30 }, { 148, 30 }, { 222, 30 }, // row 3 - { 222, 15 }, { 148, 15 }, { 74, 15 }, { 0, 15 }, // row 2 - { 0, 0 }, { 74, 0 }, { 148, 0 }, { 222, 0 }, // row 1 - { 185, 7 }, { 37, 7 }, // top underglow - { 37, 52 }, { 185, 52 }, // bottom underglow -}, { - // LED Index to Flag - 4, 4, // row 5 - 4, 4, 4, 4, // row 4 - 4, 4, 4, 4, // row 3 - 4, 4, 4, 4, // row 2 - 4, 4, 4, 4, // row 1 - 2, 2, - 2, 2 -} }; -#endif diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unikeyboard/diverge3/keymaps/workman/config.h b/keyboards/unikeyboard/diverge3/keymaps/workman/config.h index 9829a604f1..9cba61966e 100644 --- a/keyboards/unikeyboard/diverge3/keymaps/workman/config.h +++ b/keyboards/unikeyboard/diverge3/keymaps/workman/config.h @@ -2,4 +2,4 @@ // place overrides here #define PERMISSIVE_HOLD -#define TAPPING_TERM 150 \ No newline at end of file +#define TAPPING_TERM 150 diff --git a/keyboards/vertex/t75/keymaps/default/keymap.c b/keyboards/vertex/t75/keymaps/default/keymap.c index 96aa2a2fee..d5c71837ae 100644 --- a/keyboards/vertex/t75/keymaps/default/keymap.c +++ b/keyboards/vertex/t75/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - \ No newline at end of file + diff --git a/keyboards/viktus/khs01/keyboard.json b/keyboards/viktus/khs01/keyboard.json new file mode 100644 index 0000000000..67045d304a --- /dev/null +++ b/keyboards/viktus/khs01/keyboard.json @@ -0,0 +1,122 @@ +{ + "keyboard_name": "KHS-01", + "manufacturer": "Viktus Design", + "maintainer": "BlindAssassin111", + "usb": { + "vid": "0x5644", + "pid": "0x4B48", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + }, + "matrix_pins": { + "cols": ["D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6"], + "rows": ["B3", "B2", "F0", "B7", "F4", "F1", "F6", "F5", "C7", "C6", "D1", "F7"] + }, + "layouts": { + "LAYOUT_splitbs_splitshift_7u": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [1, 3], "x": 6.5, "y": 0}, + {"matrix": [0, 4], "x": 7.5, "y": 0}, + {"matrix": [1, 4], "x": 8.5, "y": 0}, + {"matrix": [0, 5], "x": 9.5, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [0, 7], "x": 14, "y": 0}, + {"matrix": [1, 7], "x": 15.25, "y": 0}, + {"matrix": [0, 8], "x": 16.25, "y": 0}, + {"matrix": [1, 8], "x": 17.25, "y": 0}, + + {"matrix": [2, 0], "x": 0, "y": 1.25}, + {"matrix": [3, 0], "x": 1, "y": 1.25}, + {"matrix": [2, 1], "x": 2, "y": 1.25}, + {"matrix": [3, 1], "x": 3, "y": 1.25}, + {"matrix": [2, 2], "x": 4, "y": 1.25}, + {"matrix": [3, 2], "x": 5, "y": 1.25}, + {"matrix": [2, 3], "x": 6, "y": 1.25}, + {"matrix": [3, 3], "x": 7, "y": 1.25}, + {"matrix": [2, 4], "x": 8, "y": 1.25}, + {"matrix": [3, 4], "x": 9, "y": 1.25}, + {"matrix": [2, 5], "x": 10, "y": 1.25}, + {"matrix": [3, 5], "x": 11, "y": 1.25}, + {"matrix": [2, 6], "x": 12, "y": 1.25}, + {"matrix": [3, 6], "x": 13, "y": 1.25}, + {"matrix": [2, 7], "x": 14, "y": 1.25}, + {"matrix": [3, 7], "x": 15.25, "y": 1.25}, + {"matrix": [2, 8], "x": 16.25, "y": 1.25}, + {"matrix": [3, 8], "x": 17.25, "y": 1.25}, + + {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"matrix": [5, 0], "x": 1.5, "y": 2.25}, + {"matrix": [4, 1], "x": 2.5, "y": 2.25}, + {"matrix": [5, 1], "x": 3.5, "y": 2.25}, + {"matrix": [4, 2], "x": 4.5, "y": 2.25}, + {"matrix": [5, 2], "x": 5.5, "y": 2.25}, + {"matrix": [4, 3], "x": 6.5, "y": 2.25}, + {"matrix": [5, 3], "x": 7.5, "y": 2.25}, + {"matrix": [4, 4], "x": 8.5, "y": 2.25}, + {"matrix": [5, 4], "x": 9.5, "y": 2.25}, + {"matrix": [4, 5], "x": 10.5, "y": 2.25}, + {"matrix": [5, 5], "x": 11.5, "y": 2.25}, + {"matrix": [4, 6], "x": 12.5, "y": 2.25}, + {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [5, 7], "x": 15.25, "y": 2.25}, + {"matrix": [4, 8], "x": 16.25, "y": 2.25}, + {"matrix": [5, 8], "x": 17.25, "y": 2.25}, + + {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"matrix": [7, 0], "x": 1.75, "y": 3.25}, + {"matrix": [6, 1], "x": 2.75, "y": 3.25}, + {"matrix": [7, 1], "x": 3.75, "y": 3.25}, + {"matrix": [6, 2], "x": 4.75, "y": 3.25}, + {"matrix": [7, 2], "x": 5.75, "y": 3.25}, + {"matrix": [6, 3], "x": 6.75, "y": 3.25}, + {"matrix": [7, 3], "x": 7.75, "y": 3.25}, + {"matrix": [6, 4], "x": 8.75, "y": 3.25}, + {"matrix": [7, 4], "x": 9.75, "y": 3.25}, + {"matrix": [6, 5], "x": 10.75, "y": 3.25}, + {"matrix": [7, 5], "x": 11.75, "y": 3.25}, + {"matrix": [6, 7], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"matrix": [8, 0], "x": 0, "y": 3.25, "w": 2.25}, + {"matrix": [8, 1], "x": 2.25, "y": 3.25}, + {"matrix": [9, 1], "x": 3.25, "y": 3.25}, + {"matrix": [8, 2], "x": 4.25, "y": 3.25}, + {"matrix": [9, 2], "x": 5.25, "y": 3.25}, + {"matrix": [8, 3], "x": 6.25, "y": 3.25}, + {"matrix": [9, 3], "x": 7.25, "y": 3.25}, + {"matrix": [8, 4], "x": 8.25, "y": 3.25}, + {"matrix": [9, 4], "x": 9.25, "y": 3.25}, + {"matrix": [8, 5], "x": 10.25, "y": 3.25}, + {"matrix": [9, 5], "x": 11.25, "y": 3.25}, + {"matrix": [8, 6], "x": 12.25, "y": 3.25, "w": 1.75}, + {"matrix": [8, 7], "x": 14, "y": 3.25}, + {"matrix": [8, 8], "x": 16.25, "y": 3.25}, + + {"matrix": [10, 0], "x": 0, "y": 4.25, "w": 1.5}, + {"matrix": [11, 0], "x": 1.5, "y": 4.25}, + {"matrix": [10, 1], "x": 2.5, "y": 4.25, "w": 1.5}, + {"matrix": [10, 3], "x": 4, "y": 4.25, "w": 7}, + {"matrix": [11, 5], "x": 11, "y": 4.25, "w": 1.5}, + {"matrix": [10, 6], "x": 12.5, "y": 4.25}, + {"matrix": [10, 7], "x": 13.5, "y": 4.25, "w": 1.5}, + {"matrix": [11, 7], "x": 15.25, "y": 4.25}, + {"matrix": [10, 8], "x": 16.25, "y": 4.25}, + {"matrix": [11, 8], "x": 17.25, "y": 4.25} + ] + } + } +} diff --git a/keyboards/viktus/khs01/keymaps/default/keymap.c b/keyboards/viktus/khs01/keymaps/default/keymap.c new file mode 100644 index 0000000000..b207c6b80d --- /dev/null +++ b/keyboards/viktus/khs01/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2026 BlindAssassin111 + * + * 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_splitbs_splitshift_7u( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_splitbs_splitshift_7u( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/viktus/khs01/readme.md b/keyboards/viktus/khs01/readme.md new file mode 100644 index 0000000000..b0021cc804 --- /dev/null +++ b/keyboards/viktus/khs01/readme.md @@ -0,0 +1,25 @@ +# KHS-01 + +A small run TKL. + +* Keyboard Maintainer: [BlindAssassin111](https://github.com/blindassassin111) +* Hardware Supported: KHS-01 PCBs +* Hardware Availability: BlindAssassin111 + +Make example for this keyboard (after setting up your build environment): + + make viktus/khs01:default + +Flashing example for this keyboard: + + make viktus/khs01: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/walletburner/cajal/keyboard.json b/keyboards/walletburner/cajal/keyboard.json index 03fb89b23e..07b4a3146f 100644 --- a/keyboards/walletburner/cajal/keyboard.json +++ b/keyboards/walletburner/cajal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cajal", "manufacturer": "Walletburner", - "url": "https://qmk.fm/keyboards/", "maintainer": "worldspawn00", "usb": { "vid": "0x5742", diff --git a/keyboards/walletburner/neuron/keyboard.json b/keyboards/walletburner/neuron/keyboard.json index d353b0b623..9dc2616f7a 100644 --- a/keyboards/walletburner/neuron/keyboard.json +++ b/keyboards/walletburner/neuron/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Neuron", "manufacturer": "Walletburner", - "url": "https://qmk.fm/keyboards/", "maintainer": "worldspawn00", "usb": { "vid": "0x5742", diff --git a/keyboards/wavtype/foundation/readme.md b/keyboards/wavtype/foundation/readme.md index 68ad269d07..1dca8bb16b 100644 --- a/keyboards/wavtype/foundation/readme.md +++ b/keyboards/wavtype/foundation/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) in the matrix (Escape key) 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 (by default this is set to "Fn + R") \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (by default this is set to "Fn + R") diff --git a/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c b/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c index 1c5acf6bab..c2463f8841 100644 --- a/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c +++ b/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // -}; \ No newline at end of file +}; diff --git a/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c b/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c index 30d6bf291e..8cce4ec9d8 100644 --- a/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c +++ b/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // -}; \ No newline at end of file +}; diff --git a/keyboards/wekey/we27/keyboard.json b/keyboards/wekey/we27/keyboard.json index 91731cdc39..50c6de9e10 100644 --- a/keyboards/wekey/we27/keyboard.json +++ b/keyboards/wekey/we27/keyboard.json @@ -29,6 +29,35 @@ "hue": 108 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 56, "y": 1, "flags": 1}, + {"matrix": [0, 2], "x": 112, "y": 1, "flags": 1}, + {"matrix": [0, 3], "x": 168, "y": 1, "flags": 1}, + {"matrix": [0, 4], "x": 224, "y": 1, "flags": 1}, + {"matrix": [1, 4], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 56, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 112, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 28, "flags": 4}, + {"matrix": [3, 3], "x": 0, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 56, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 168, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 224, "y": 52, "flags": 4}, + {"matrix": [5, 3], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 56, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 168, "y": 64, "flags": 4} + ], "react_on_keyup": true }, "matrix_pins": { diff --git a/keyboards/wekey/we27/we27.c b/keyboards/wekey/we27/we27.c deleted file mode 100644 index 03ec6f5512..0000000000 --- a/keyboards/wekey/we27/we27.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2021 @wekey - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -#define __ NO_LED - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4 }, - { 9, 8, 7, 6, 5 }, - { 10, 11, 12, 13, 14 }, - { 18, 17, 16, 15, __ }, - { 19, 20, 21, 22, 23 }, - { 26, 25, __, 24, __ } -}, { - {0,1},{56,1},{112,1},{168,1},{224,1}, - {0,16},{56,16},{112,16},{168,16},{224,16}, - {0,28},{56,28},{112,28},{168,28},{224,28}, - {0,40},{56,40},{112,40},{168,40}, - {0,52},{56,52},{112,52},{168,52},{224,52}, - {0,64},{56,64},{168,64} -}, { - 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, - 1, 4, 4, 4, 4, - 1, 4, 4, 4, - 1, 4, 4, 4, 4, - 1, 4, 4 -} }; - -#endif diff --git a/keyboards/werk_technica/one/keyboard.json b/keyboards/werk_technica/one/keyboard.json index ba5df0b136..bf3478cba3 100644 --- a/keyboards/werk_technica/one/keyboard.json +++ b/keyboards/werk_technica/one/keyboard.json @@ -292,4 +292,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/werk_technica/one/mcuconf.h b/keyboards/werk_technica/one/mcuconf.h index d25a2619fd..3fe066bf7d 100644 --- a/keyboards/werk_technica/one/mcuconf.h +++ b/keyboards/werk_technica/one/mcuconf.h @@ -18,4 +18,4 @@ /* Set PLL M divider from 4 (F411 GENERIC default) to 8, because of 16 MHz crystal on board */ #undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 \ No newline at end of file +#define STM32_PLLM_VALUE 8 diff --git a/keyboards/westm/westm68/keymaps/default/keymap.c b/keyboards/westm/westm68/keymaps/default/keymap.c index 392a21a854..0bd7fd6297 100755 --- a/keyboards/westm/westm68/keymaps/default/keymap.c +++ b/keyboards/westm/westm68/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, UG_SATU, UG_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/westm/westm68/rev1/rev1.c b/keyboards/westm/westm68/rev1/rev1.c index 3b47910624..a93916a49a 100644 --- a/keyboards/westm/westm68/rev1/rev1.c +++ b/keyboards/westm/westm68/rev1/rev1.c @@ -19,4 +19,4 @@ void board_init(void) { rgblight_toggle(); // Fixes if LEDs were off in the first place buggy LED turns on rgblight_set(); // Need this to fix buggy first LED upon plugging in PCB -} \ No newline at end of file +} diff --git a/keyboards/westm/westm9/chconf.h b/keyboards/westm/westm9/chconf.h index d79a01d36b..ba97496d31 100644 --- a/keyboards/westm/westm9/chconf.h +++ b/keyboards/westm/westm9/chconf.h @@ -23,4 +23,4 @@ #define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/westm/westm9/keymaps/default/keymap.c b/keyboards/westm/westm9/keymaps/default/keymap.c index e46a29beb6..aab3cbedbb 100755 --- a/keyboards/westm/westm9/keymaps/default/keymap.c +++ b/keyboards/westm/westm9/keymaps/default/keymap.c @@ -27,4 +27,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { UG_VALD, UG_VALU, UG_SATD, UG_HUED, UG_HUEU, KC_NO ) -}; \ No newline at end of file +}; diff --git a/keyboards/westm/westm9/mcuconf.h b/keyboards/westm/westm9/mcuconf.h index 328b5d45a9..9745473764 100644 --- a/keyboards/westm/westm9/mcuconf.h +++ b/keyboards/westm/westm9/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/westm/westm9/readme.md b/keyboards/westm/westm9/readme.md index 883aab3c35..8e2911d4a1 100644 --- a/keyboards/westm/westm9/readme.md +++ b/keyboards/westm/westm9/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make westm/westm9/rev1:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/westm/westm9/rev1/config.h b/keyboards/westm/westm9/rev1/config.h index 9492e7f6ca..c6f4d5f288 100644 --- a/keyboards/westm/westm9/rev1/config.h +++ b/keyboards/westm/westm9/rev1/config.h @@ -37,4 +37,4 @@ #define I2C1_TIMINGR_SCLH 0x03U #define I2C1_TIMINGR_SCLL 0x09U -#define OLED_UPDATE_INTERVAL 66 \ No newline at end of file +#define OLED_UPDATE_INTERVAL 66 diff --git a/keyboards/westm/westm9/rev1/rev1.c b/keyboards/westm/westm9/rev1/rev1.c index cf84b5c52e..8ab502af2a 100644 --- a/keyboards/westm/westm9/rev1/rev1.c +++ b/keyboards/westm/westm9/rev1/rev1.c @@ -113,4 +113,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/westm/westm9/rev2/config.h b/keyboards/westm/westm9/rev2/config.h index 9492e7f6ca..c6f4d5f288 100644 --- a/keyboards/westm/westm9/rev2/config.h +++ b/keyboards/westm/westm9/rev2/config.h @@ -37,4 +37,4 @@ #define I2C1_TIMINGR_SCLH 0x03U #define I2C1_TIMINGR_SCLL 0x09U -#define OLED_UPDATE_INTERVAL 66 \ No newline at end of file +#define OLED_UPDATE_INTERVAL 66 diff --git a/keyboards/westm/westm9/rev2/rev2.c b/keyboards/westm/westm9/rev2/rev2.c index 7524ca6690..e598600c44 100644 --- a/keyboards/westm/westm9/rev2/rev2.c +++ b/keyboards/westm/westm9/rev2/rev2.c @@ -109,4 +109,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/westm/westmergo/keymaps/default/keymap.c b/keyboards/westm/westmergo/keymaps/default/keymap.c index fdffde449a..6ae56e0ee0 100755 --- a/keyboards/westm/westmergo/keymaps/default/keymap.c +++ b/keyboards/westm/westmergo/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, UG_SATU, UG_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/westm/westmergo/readme.md b/keyboards/westm/westmergo/readme.md index 53cb5e6829..467db9d6b9 100644 --- a/keyboards/westm/westmergo/readme.md +++ b/keyboards/westm/westmergo/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build environment): make westm/westmergo:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/whitefacemountain/ampersand/keymaps/default/keymap.c b/keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c index d380e64fa7..c8d176a42d 100644 --- a/keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c +++ b/keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c @@ -9,4 +9,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, 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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL) -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/rama_works_koyu/readme.md b/keyboards/wilba_tech/rama_works_koyu/readme.md index 11fa3bacf6..c4400db9ca 100644 --- a/keyboards/wilba_tech/rama_works_koyu/readme.md +++ b/keyboards/wilba_tech/rama_works_koyu/readme.md @@ -20,4 +20,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_koyu:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/rama_works_m10_b/readme.md b/keyboards/wilba_tech/rama_works_m10_b/readme.md index 6b4130aeb4..bac4c629d6 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/readme.md +++ b/keyboards/wilba_tech/rama_works_m10_b/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m10_b:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/wilba_tech/rama_works_m10_c/readme.md b/keyboards/wilba_tech/rama_works_m10_c/readme.md index be7e225737..2f01c61e1a 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/readme.md +++ b/keyboards/wilba_tech/rama_works_m10_c/readme.md @@ -16,4 +16,4 @@ Flashing example for this keyboard: make wilba_tech/rama_works_m10_c: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). \ No newline at end of file +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/rama_works_m60_a/readme.md b/keyboards/wilba_tech/rama_works_m60_a/readme.md index 1a9d9945bd..23e8a9aafc 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/readme.md +++ b/keyboards/wilba_tech/rama_works_m60_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m60_a:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/rama_works_m6_a/keymaps/naut/keymap.c b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c index df4cf9be37..8a8c78c9e4 100644 --- a/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c +++ b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c @@ -14,4 +14,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Fn Layer [_FNX] = LAYOUT( TO(0), KC_VOLU, KC_MPLY, - KC_MRWD, KC_VOLD, KC_MFFD)}; \ No newline at end of file + KC_MRWD, KC_VOLD, KC_MFFD)}; diff --git a/keyboards/wilba_tech/rama_works_m6_a/readme.md b/keyboards/wilba_tech/rama_works_m6_a/readme.md index 974224b455..c5392a3190 100644 --- a/keyboards/wilba_tech/rama_works_m6_a/readme.md +++ b/keyboards/wilba_tech/rama_works_m6_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m6_a:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/rama_works_m6_b/readme.md b/keyboards/wilba_tech/rama_works_m6_b/readme.md index 747aa74dd5..70d073b3da 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/readme.md +++ b/keyboards/wilba_tech/rama_works_m6_b/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m6_b:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/rama_works_u80_a/readme.md b/keyboards/wilba_tech/rama_works_u80_a/readme.md index ff87889e45..8311b71563 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/readme.md +++ b/keyboards/wilba_tech/rama_works_u80_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_u80_a:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/via_test.c b/keyboards/wilba_tech/via_test.c index 314ec4472c..46cc42a9e4 100644 --- a/keyboards/wilba_tech/via_test.c +++ b/keyboards/wilba_tech/via_test.c @@ -129,4 +129,4 @@ void via_custom_value_command(uint8_t *data, uint8_t length) { // DO NOT call raw_hid_send(data,length) here, let caller do this } -#endif // VIA_ENABLE \ No newline at end of file +#endif // VIA_ENABLE diff --git a/keyboards/wilba_tech/wt20_h1/keyboard.json b/keyboards/wilba_tech/wt20_h1/keyboard.json index 77905e275e..1aafdea67f 100644 --- a/keyboards/wilba_tech/wt20_h1/keyboard.json +++ b/keyboards/wilba_tech/wt20_h1/keyboard.json @@ -77,4 +77,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/wilba_tech/wt60_a/readme.md b/keyboards/wilba_tech/wt60_a/readme.md index 91cc5c8cef..4aac913a3d 100644 --- a/keyboards/wilba_tech/wt60_a/readme.md +++ b/keyboards/wilba_tech/wt60_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt60_a:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/wt60_b/readme.md b/keyboards/wilba_tech/wt60_b/readme.md index f365bf3258..75da06e4ae 100644 --- a/keyboards/wilba_tech/wt60_b/readme.md +++ b/keyboards/wilba_tech/wt60_b/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt60_b:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/wt60_bx/readme.md b/keyboards/wilba_tech/wt60_bx/readme.md index 404742c992..95b4c15310 100644 --- a/keyboards/wilba_tech/wt60_bx/readme.md +++ b/keyboards/wilba_tech/wt60_bx/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt60_bx:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/wt60_g/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c index 12c17135b0..6208dd6fe5 100644 --- a/keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c index 9910c070fc..86030c9d94 100644 --- a/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c index 0f4abc0bb1..708a68ec45 100644 --- a/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt60_xt/wt60_xt.c b/keyboards/wilba_tech/wt60_xt/wt60_xt.c index 53b822e58f..0cc8634e46 100644 --- a/keyboards/wilba_tech/wt60_xt/wt60_xt.c +++ b/keyboards/wilba_tech/wt60_xt/wt60_xt.c @@ -81,4 +81,4 @@ void via_set_device_indication(uint8_t value) { if ( value == 0 ) { PLAY_SONG(tone_device_indication); } -} \ No newline at end of file +} diff --git a/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c index ca0093926d..c30bdcbbf2 100644 --- a/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c index 7db3bb165c..0c18739c7a 100644 --- a/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c index 56310ddef0..f04bef7bc8 100644 --- a/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c index b837b0f8be..9ad8c967ad 100644 --- a/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c index 3e0523b90c..d5eed1d7fa 100644 --- a/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c b/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c index 397d36faf2..ae62259186 100644 --- a/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt80_a/readme.md b/keyboards/wilba_tech/wt80_a/readme.md index 8bddecadee..eb74f218f5 100644 --- a/keyboards/wilba_tech/wt80_a/readme.md +++ b/keyboards/wilba_tech/wt80_a/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt80_a:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/wt8_a/readme.md b/keyboards/wilba_tech/wt8_a/readme.md index 4998e91293..6bd7c2dd36 100644 --- a/keyboards/wilba_tech/wt8_a/readme.md +++ b/keyboards/wilba_tech/wt8_a/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt8_a:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/zeal65/zeal65.c b/keyboards/wilba_tech/zeal65/zeal65.c index a4550031b3..cf6b79972d 100644 --- a/keyboards/wilba_tech/zeal65/zeal65.c +++ b/keyboards/wilba_tech/zeal65/zeal65.c @@ -103,4 +103,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, // LD16 {1, C8_16, C7_16, C6_16}, // LD17 }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/willoucom/keypad/keyboard.json b/keyboards/willoucom/keypad/keyboard.json index 9b4717e63f..bc2d63c387 100644 --- a/keyboards/willoucom/keypad/keyboard.json +++ b/keyboards/willoucom/keypad/keyboard.json @@ -62,4 +62,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/willoucom/keypad/keymaps/default/keymap.json b/keyboards/willoucom/keypad/keymaps/default/keymap.json index c16729bd6c..24aefd4a3a 100644 --- a/keyboards/willoucom/keypad/keymaps/default/keymap.json +++ b/keyboards/willoucom/keypad/keymaps/default/keymap.json @@ -10,4 +10,4 @@ "KC_M" ] ] -} \ No newline at end of file +} diff --git a/keyboards/willoucom/keypad/readme.md b/keyboards/willoucom/keypad/readme.md index 863ce79d37..5d172d3d49 100644 --- a/keyboards/willoucom/keypad/readme.md +++ b/keyboards/willoucom/keypad/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Push the reset button twice. Then drop the u2f file in the usb drive. \ No newline at end of file +Push the reset button twice. Then drop the u2f file in the usb drive. diff --git a/keyboards/wily/info.json b/keyboards/wily/info.json new file mode 100644 index 0000000000..9bba2de910 --- /dev/null +++ b/keyboards/wily/info.json @@ -0,0 +1,20 @@ +{ + "manufacturer": "KKC", + "maintainer": "Gondolindrim", + "usb": { + "vid": "0x5750", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "processor": "STM32F411", + "bootloader": "stm32-dfu" +} diff --git a/keyboards/wily/readme.md b/keyboards/wily/readme.md new file mode 100644 index 0000000000..e70ac11a16 --- /dev/null +++ b/keyboards/wily/readme.md @@ -0,0 +1,26 @@ +# KKC Wily + +The Wily is a 65% keyboard by Keyote Key Company. + +* Keyboard Maintainer: [gondolindrim](https://github.com/gondolindrim) +* Hardware Supported: three PCB variants (solderable, hotswap with Tsangan bottom row, hotswap with default bottom row), both based on STM32F072 +* Hardware Availability: not yet available for purchase as of november 2025. + +Make example for this keyboard (after setting up your build environment): + + make wily/:default + +Where `` can be either `wily_s` , `wily_h625` or `wily_h700`. Flashing example for this keyboard: + + make wily/: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 (Escape) and plug in the keyboard +* **Physical reset button**: press and hold the button on the back of the PCB for five seconds +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + diff --git a/keyboards/wily/wily_h625/keyboard.json b/keyboards/wily/wily_h625/keyboard.json new file mode 100644 index 0000000000..915c3459aa --- /dev/null +++ b/keyboards/wily/wily_h625/keyboard.json @@ -0,0 +1,90 @@ +{ + "keyboard_name": "Keyote Wily-H625", + "usb": { + "pid": "0x5053", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A15", "B10", "C15", "C14", "C13", "B1", "B0", "A7", "A6", "A5", "B14", "B13", "B12", "A4", "A3"], + "rows": ["A0", "B8", "B3", "B5", "B9"] + }, + "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,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":[2,14], "x":15 , "y":1}, + + {"matrix":[2,0], "x":0 , "y":2}, + {"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,13], "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,8], "x":10, "y":4}, + {"matrix":[4,9], "x":11, "y":4}, + {"matrix":[4,10], "x":12, "y":4}, + {"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/wily/wily_h625/keymaps/default/keymap.c b/keyboards/wily/wily_h625/keymaps/default/keymap.c new file mode 100644 index 0000000000..36c2eda7b9 --- /dev/null +++ b/keyboards/wily/wily_h625/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2025 Gondolindrim + * + * 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 +#define LT1GUI LT(1, KC_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_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_ENT , 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 , KC_INS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, LT1GUI , KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wily/wily_h700/keyboard.json b/keyboards/wily/wily_h700/keyboard.json new file mode 100644 index 0000000000..1dfe3d24a4 --- /dev/null +++ b/keyboards/wily/wily_h700/keyboard.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "Keyote Wily-H700", + "usb": { + "pid": "0x5052", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A15", "B10", "C15", "C14", "C13", "B1", "B0", "A7", "A6", "A5", "B14", "B13", "B12", "A4", "A3"], + "rows": ["A0", "B8", "B3", "B5", "B9"] + }, + "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,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":[2,14], "x":15 , "y":1}, + + {"matrix":[2,0], "x":0 , "y":2}, + {"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,13], "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, "y":4}, + {"matrix":[4,2], "x":2.5 , "y":4, "w":1.5}, + {"matrix":[4,6], "x":4, "y":4, "w":7}, + {"matrix":[4,9], "x":11, "y":4}, + {"matrix":[4,10], "x":12, "y":4}, + {"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/wily/wily_h700/keymaps/default/keymap.c b/keyboards/wily/wily_h700/keymaps/default/keymap.c new file mode 100644 index 0000000000..0929de8fa3 --- /dev/null +++ b/keyboards/wily/wily_h700/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2025 Gondolindrim + * + * 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 +#define LT1GUI LT(1, KC_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_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_ENT , 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 , KC_INS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , LT1GUI , KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keebio/rorschach/keymaps/default/config.h b/keyboards/wily/wily_s/config.h similarity index 81% rename from keyboards/keebio/rorschach/keymaps/default/config.h rename to keyboards/wily/wily_s/config.h index da32daebb3..580f722f15 100644 --- a/keyboards/keebio/rorschach/keymaps/default/config.h +++ b/keyboards/wily/wily_s/config.h @@ -1,5 +1,4 @@ -/* -Copyright 2018 Danny Nguyen +/* Copyright 2025 Gondolindrim This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,8 +16,6 @@ along with this program. If not, see . #pragma once -// #define USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS +#define BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 4 +#define BACKLIGHT_PWM_PAL_MOPDE 2 diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/config.h b/keyboards/wily/wily_s/halconf.h similarity index 88% rename from keyboards/tominabox1/le_chiffre/keymaps/default/config.h rename to keyboards/wily/wily_s/halconf.h index 8f0df1847a..6c98f31f9b 100644 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/config.h +++ b/keyboards/wily/wily_s/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2020 tominabox1 +/* Copyright 2025 Gondolindrim * * 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 @@ -13,6 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + #pragma once -#define COMBO_TERM 30 +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/wily/wily_s/keyboard.json b/keyboards/wily/wily_s/keyboard.json new file mode 100644 index 0000000000..a6df026ef3 --- /dev/null +++ b/keyboards/wily/wily_s/keyboard.json @@ -0,0 +1,100 @@ +{ + "keyboard_name": "Keyote Wily-S", + "usb": { + "pid": "0x5051", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A15", "B10", "C15", "C14", "C13", "B1", "B0", "A7", "A6", "A5", "B14", "B13", "B12", "A4", "A3"], + "rows": ["A0", "B8", "B3", "B5", "B9"] + }, + "features": { + "backlight": true + }, + "backlight": { + "pin": "B4", + "levels": 20, + "as_caps_lock": true + }, + "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,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":[2,14], "x":15 , "y":1}, + + {"matrix":[2,0], "x":0 , "y":2}, + {"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":[4,11], "x":12.75, "y":2}, + {"matrix":[2,12], "x":13.75, "y":2, "w":1.25}, + {"matrix":[2,13], "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,8], "x":10, "y":4}, + {"matrix":[4,9], "x":11, "y":4}, + {"matrix":[4,10], "x":12, "y":4}, + {"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/wily/wily_s/keymaps/default/keymap.c b/keyboards/wily/wily_s/keymaps/default/keymap.c new file mode 100644 index 0000000000..22c0188c30 --- /dev/null +++ b/keyboards/wily/wily_s/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2025 Gondolindrim + * + * 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 +#define LT1GUI LT(1, KC_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_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_END , + 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_INS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, LT1GUI , KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wily/wily_s/mcuconf.h b/keyboards/wily/wily_s/mcuconf.h new file mode 100644 index 0000000000..a9bbcfc62c --- /dev/null +++ b/keyboards/wily/wily_s/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 Gondolindrim + * + * 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_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/winkeyless/b87/keymaps/default/keymap.c b/keyboards/winkeyless/b87/keymaps/default/keymap.c index 8fe5a3f0d2..074680273b 100644 --- a/keyboards/winkeyless/b87/keymaps/default/keymap.c +++ b/keyboards/winkeyless/b87/keymaps/default/keymap.c @@ -52,4 +52,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/winkeys/mini_winni/keymaps/default/keymap.c b/keyboards/winkeys/mini_winni/keymaps/default/keymap.c index b878365be1..c6ac99a776 100644 --- a/keyboards/winkeys/mini_winni/keymaps/default/keymap.c +++ b/keyboards/winkeys/mini_winni/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/frogpad/frogpad.c b/keyboards/wolf/frogpad/frogpad.c index ae6a2e0e17..04fdb7e693 100644 --- a/keyboards/wolf/frogpad/frogpad.c +++ b/keyboards/wolf/frogpad/frogpad.c @@ -35,4 +35,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/wolf/frogpad/keymaps/default/keymap.c b/keyboards/wolf/frogpad/keymaps/default/keymap.c index 236afeab06..6eb357a8e3 100644 --- a/keyboards/wolf/frogpad/keymaps/default/keymap.c +++ b/keyboards/wolf/frogpad/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAYER0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/wolf/frogpad/keymaps/default/rules.mk b/keyboards/wolf/frogpad/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/wolf/frogpad/keymaps/default/rules.mk +++ b/keyboards/wolf/frogpad/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wolf/m60_b/keymaps/default/keymap.c b/keyboards/wolf/m60_b/keymaps/default/keymap.c index 3c0fd2bc36..84dcf31a25 100644 --- a/keyboards/wolf/m60_b/keymaps/default/keymap.c +++ b/keyboards/wolf/m60_b/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/m6_c/keyboard.json b/keyboards/wolf/m6_c/keyboard.json index c1d3d1302a..9f42760ed4 100644 --- a/keyboards/wolf/m6_c/keyboard.json +++ b/keyboards/wolf/m6_c/keyboard.json @@ -98,4 +98,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/wolf/silhouette/keymaps/default/keymap.c b/keyboards/wolf/silhouette/keymaps/default/keymap.c index b49f1ea8e4..71ebaccaab 100644 --- a/keyboards/wolf/silhouette/keymaps/default/keymap.c +++ b/keyboards/wolf/silhouette/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/k8split/keymaps/right/config.h b/keyboards/wolf/singa/kohaku_hotswap/config.h similarity index 84% rename from keyboards/handwired/k8split/keymaps/right/config.h rename to keyboards/wolf/singa/kohaku_hotswap/config.h index 968a6eb413..49a055b0ce 100644 --- a/keyboards/handwired/k8split/keymaps/right/config.h +++ b/keyboards/wolf/singa/kohaku_hotswap/config.h @@ -1,11 +1,10 @@ /* -Copyright 2020 Ckat +Copyright 2024 Wolf 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 @@ -17,5 +16,5 @@ along with this program. If not, see . #pragma once -/* ensure NKRO is on */ -#define FORCE_NKRO +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/wolf/singa/kohaku_hotswap/keyboard.json b/keyboards/wolf/singa/kohaku_hotswap/keyboard.json new file mode 100644 index 0000000000..96b539c06f --- /dev/null +++ b/keyboards/wolf/singa/kohaku_hotswap/keyboard.json @@ -0,0 +1,167 @@ +{ + "manufacturer": "SingaKBD", + "keyboard_name": "Kohaku Hotswap", + "maintainer": "ToastyStoemp", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["GP29", "GP19", "GP20", "GP23", "GP24", "GP25", "GP26", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP10", "GP11", "GP17", "GP27", "GP28"] + }, + "processor": "RP2040", + "url": "https://singakbd.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0300", + "vid": "0x5453" + }, + "community_layouts": ["65_ansi_blocker_tsangan"], + "layouts": { + "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": [2, 12], "x": 13, "y": 0}, + {"matrix": [0, 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, 13], "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, 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, 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}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "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_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 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, 13], "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, 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, 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}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "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/wolf/singa/kohaku_hotswap/keymaps/default/keymap.c b/keyboards/wolf/singa/kohaku_hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..8f4f7d17b5 --- /dev/null +++ b/keyboards/wolf/singa/kohaku_hotswap/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Wolf + +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_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_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +[1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, 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/wolf/singa/kohaku_hotswap/matrix_diagram.md b/keyboards/wolf/singa/kohaku_hotswap/matrix_diagram.md new file mode 100644 index 0000000000..fc70fae7ad --- /dev/null +++ b/keyboards/wolf/singa/kohaku_hotswap/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Wolf Kohaku Hotswap + +``` + ┌───┬───┐ + Split Backspace │2C │0D │ + └───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ +├──────┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴────┬───┼───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │3D │3E │ +├─────┬───┼───┴─┬─┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬──┼───┼───┤ +│40 │41 │42 │46 │4A │ │4C│4D │4E │ +└─────┴───┴─────┴─────────────────────────────┴─────┘ └──┴───┴───┘ +``` diff --git a/keyboards/wolf/singa/kohaku_hotswap/readme.md b/keyboards/wolf/singa/kohaku_hotswap/readme.md new file mode 100644 index 0000000000..a1bcfda565 --- /dev/null +++ b/keyboards/wolf/singa/kohaku_hotswap/readme.md @@ -0,0 +1,27 @@ +# Wolf Kohaku Hotswap + +![Wolf Kohaku Hotswap](https://i.imgur.com/Fa3FNCr.png) + +65% hotswap PCB for the Wolf Kohaku. + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) +* Hardware Supported: Wolf Kohaku Hotswap (RP2040) +* Hardware Availability: [SingaKBD](https://singakbd.com) + +Make example for this keyboard (after setting up your build environment): + + make wolf/singa/kohaku_hotswap:default + +Flashing example for this keyboard: + + make wolf/singa/kohaku_hotswap: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/handwired/k8split/keymaps/left/config.h b/keyboards/wolf/singa/kohaku_solder/config.h similarity index 84% rename from keyboards/handwired/k8split/keymaps/left/config.h rename to keyboards/wolf/singa/kohaku_solder/config.h index 968a6eb413..49a055b0ce 100644 --- a/keyboards/handwired/k8split/keymaps/left/config.h +++ b/keyboards/wolf/singa/kohaku_solder/config.h @@ -1,11 +1,10 @@ /* -Copyright 2020 Ckat +Copyright 2024 Wolf 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 @@ -17,5 +16,5 @@ along with this program. If not, see . #pragma once -/* ensure NKRO is on */ -#define FORCE_NKRO +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/wolf/singa/kohaku_solder/keyboard.json b/keyboards/wolf/singa/kohaku_solder/keyboard.json new file mode 100644 index 0000000000..5d0cdc5b99 --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder/keyboard.json @@ -0,0 +1,674 @@ +{ + "manufacturer": "SingaKBD", + "keyboard_name": "Kohaku Solder", + "maintainer": "ToastyStoemp", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP28", "GP29", "GP10", "GP11", "GP18", "GP19", "GP24", "GP25", "GP26", "GP27"] + }, + "processor": "RP2040", + "url": "https://singakbd.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0301", + "vid": "0x5453" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 2], "x": 3.75, "y": 4, "w": 2.75}, + {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/wolf/singa/kohaku_solder/keymaps/default/keymap.c b/keyboards/wolf/singa/kohaku_solder/keymaps/default/keymap.c new file mode 100644 index 0000000000..a034250246 --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Wolf + +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_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_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +[1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, 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/wolf/singa/kohaku_solder/matrix_diagram.md b/keyboards/wolf/singa/kohaku_solder/matrix_diagram.md new file mode 100644 index 0000000000..87c25df1ff --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Wolf Kohaku + +``` + ┌───┬───┐ + Split Backspace │16 │07 │ + └───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │17 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ ┌─────┐ +│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter +│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│80 │90 │81 │83 │95 │ │86 │96 │97 │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +┌────┬───┐ +│60 │70 │ Split Left Shift +└────┴───┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│80 │90 │81 │83 │85 │95 │ 6.25u +└────┴────┴────┴────────────────────────┴────┴────┘ +┌────┬────┬────┬───────────┬────┬───────┬────┬────┐ +│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u) +└────┴────┴────┴───────────┴────┴───────┴────┴────┘ +┌────┬────┬────┬───────┬────┬───────────┬────┬────┐ +│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u) +└────┴────┴────┴───────┴────┴───────────┴────┴────┘ +``` diff --git a/keyboards/wolf/singa/kohaku_solder/readme.md b/keyboards/wolf/singa/kohaku_solder/readme.md new file mode 100644 index 0000000000..d76545cc3b --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder/readme.md @@ -0,0 +1,27 @@ +# Wolf Kohaku Solder + +![Wolf Kohaku Solder](https://i.imgur.com/KmGm8qF.png) + +65% PCB for the Wolf Kohaku. + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) +* Hardware Supported: Wolf Kohaku Solder (RP2040) +* Hardware Availability: [SingaKBD](https://singakbd.com) + +Make example for this keyboard (after setting up your build environment): + + make wolf/singa/kohaku_solder:default + +Flashing example for this keyboard: + + make wolf/singa/kohaku_solder: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/keebio/fourier/keymaps/default/config.h b/keyboards/wolf/singa/kohaku_solder_rgb/config.h similarity index 81% rename from keyboards/keebio/fourier/keymaps/default/config.h rename to keyboards/wolf/singa/kohaku_solder_rgb/config.h index fa952ef4c3..49a055b0ce 100644 --- a/keyboards/keebio/fourier/keymaps/default/config.h +++ b/keyboards/wolf/singa/kohaku_solder_rgb/config.h @@ -1,14 +1,10 @@ /* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +Copyright 2024 Wolf 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 @@ -20,4 +16,5 @@ along with this program. If not, see . #pragma once -// #define USE_I2C +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/wolf/singa/kohaku_solder_rgb/keyboard.json b/keyboards/wolf/singa/kohaku_solder_rgb/keyboard.json new file mode 100644 index 0000000000..8e7d74e52c --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder_rgb/keyboard.json @@ -0,0 +1,699 @@ +{ + "manufacturer": "SingaKBD", + "keyboard_name": "Kohaku Solder RGB", + "maintainer": "ToastyStoemp", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"], + "rows": ["GP28", "GP29", "GP10", "GP11", "GP18", "GP19", "GP24", "GP25", "GP26", "GP27"] + }, + "processor": "RP2040", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "brightness_steps": 8, + "default": { + "animation": "rainbow_swirl" + }, + "led_count": 28, + "saturation_steps": 8, + "sleep": true + }, + "url": "https://singakbd.com", + "usb": { + "device_version": "1.0.0", + "pid": "0x0303", + "vid": "0x5453" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP20" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 2], "x": 3.75, "y": 4, "w": 2.75}, + {"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25}, + {"matrix": [9, 3], "x": 7.75, "y": 4, "w": 2.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [9, 6], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0, "w": 2}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_iso_blocker_tsangan_split_bs": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [1, 0], "x": 1, "y": 0}, + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [1, 1], "x": 3, "y": 0}, + {"matrix": [0, 2], "x": 4, "y": 0}, + {"matrix": [1, 2], "x": 5, "y": 0}, + {"matrix": [0, 3], "x": 6, "y": 0}, + {"matrix": [1, 3], "x": 7, "y": 0}, + {"matrix": [0, 4], "x": 8, "y": 0}, + {"matrix": [1, 4], "x": 9, "y": 0}, + {"matrix": [0, 5], "x": 10, "y": 0}, + {"matrix": [1, 5], "x": 11, "y": 0}, + {"matrix": [0, 6], "x": 12, "y": 0}, + {"matrix": [1, 6], "x": 13, "y": 0}, + {"matrix": [1, 7], "x": 14, "y": 0}, + {"matrix": [0, 7], "x": 15, "y": 0}, + {"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 1.5, "y": 1}, + {"matrix": [2, 1], "x": 2.5, "y": 1}, + {"matrix": [3, 1], "x": 3.5, "y": 1}, + {"matrix": [2, 2], "x": 4.5, "y": 1}, + {"matrix": [3, 2], "x": 5.5, "y": 1}, + {"matrix": [2, 3], "x": 6.5, "y": 1}, + {"matrix": [3, 3], "x": 7.5, "y": 1}, + {"matrix": [2, 4], "x": 8.5, "y": 1}, + {"matrix": [3, 4], "x": 9.5, "y": 1}, + {"matrix": [2, 5], "x": 10.5, "y": 1}, + {"matrix": [3, 5], "x": 11.5, "y": 1}, + {"matrix": [2, 6], "x": 12.5, "y": 1}, + {"matrix": [2, 7], "x": 15, "y": 1}, + {"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [5, 0], "x": 1.75, "y": 2}, + {"matrix": [4, 1], "x": 2.75, "y": 2}, + {"matrix": [5, 1], "x": 3.75, "y": 2}, + {"matrix": [4, 2], "x": 4.75, "y": 2}, + {"matrix": [5, 2], "x": 5.75, "y": 2}, + {"matrix": [4, 3], "x": 6.75, "y": 2}, + {"matrix": [5, 3], "x": 7.75, "y": 2}, + {"matrix": [4, 4], "x": 8.75, "y": 2}, + {"matrix": [5, 4], "x": 9.75, "y": 2}, + {"matrix": [4, 5], "x": 10.75, "y": 2}, + {"matrix": [5, 5], "x": 11.75, "y": 2}, + {"matrix": [4, 6], "x": 12.75, "y": 2}, + {"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"matrix": [5, 7], "x": 15, "y": 2}, + {"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [7, 0], "x": 1.25, "y": 3}, + {"matrix": [6, 1], "x": 2.25, "y": 3}, + {"matrix": [7, 1], "x": 3.25, "y": 3}, + {"matrix": [6, 2], "x": 4.25, "y": 3}, + {"matrix": [7, 2], "x": 5.25, "y": 3}, + {"matrix": [6, 3], "x": 6.25, "y": 3}, + {"matrix": [7, 3], "x": 7.25, "y": 3}, + {"matrix": [6, 4], "x": 8.25, "y": 3}, + {"matrix": [7, 4], "x": 9.25, "y": 3}, + {"matrix": [6, 5], "x": 10.25, "y": 3}, + {"matrix": [7, 6], "x": 11.25, "y": 3}, + {"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [7, 7], "x": 14, "y": 3}, + {"matrix": [6, 7], "x": 15, "y": 3}, + {"matrix": [8, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [9, 0], "x": 1.5, "y": 4}, + {"matrix": [8, 1], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [8, 3], "x": 4, "y": 4, "w": 7}, + {"matrix": [9, 6], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [8, 6], "x": 13, "y": 4}, + {"matrix": [9, 7], "x": 14, "y": 4}, + {"matrix": [8, 7], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/wolf/singa/kohaku_solder_rgb/keymaps/default/keymap.c b/keyboards/wolf/singa/kohaku_solder_rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..a034250246 --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder_rgb/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* +Copyright 2024 Wolf + +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_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_BSPC, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + +[1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, 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/wolf/singa/kohaku_solder_rgb/matrix_diagram.md b/keyboards/wolf/singa/kohaku_solder_rgb/matrix_diagram.md new file mode 100644 index 0000000000..87c25df1ff --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder_rgb/matrix_diagram.md @@ -0,0 +1,30 @@ +# Matrix Diagram for Wolf Kohaku + +``` + ┌───┬───┐ + Split Backspace │16 │07 │ + └───┴───┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │07 │17 │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ ┌─────┐ +│20 │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐56 │ ISO Enter +│40 │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │56 │57 │ │46 │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ +│60 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │76 │77 │ +├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤ +│80 │90 │81 │83 │95 │ │86 │96 │97 │ +└─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ +┌────┬───┐ +│60 │70 │ Split Left Shift +└────┴───┘ +┌────┬────┬────┬────────────────────────┬────┬────┐ +│80 │90 │81 │83 │85 │95 │ 6.25u +└────┴────┴────┴────────────────────────┴────┴────┘ +┌────┬────┬────┬───────────┬────┬───────┬────┬────┐ +│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.75u) +└────┴────┴────┴───────────┴────┴───────┴────┴────┘ +┌────┬────┬────┬───────┬────┬───────────┬────┬────┐ +│80 │90 │81 │92 │83 │94 │85 │95 │ Split Space (Left 2.25u) +└────┴────┴────┴───────┴────┴───────────┴────┴────┘ +``` diff --git a/keyboards/wolf/singa/kohaku_solder_rgb/readme.md b/keyboards/wolf/singa/kohaku_solder_rgb/readme.md new file mode 100644 index 0000000000..6b18ab204f --- /dev/null +++ b/keyboards/wolf/singa/kohaku_solder_rgb/readme.md @@ -0,0 +1,27 @@ +# Wolf Kohaku Solder RGB + +![Wolf Kohaku Solder RGB](https://i.imgur.com/KmGm8qF.png) + +65% PCB for the Wolf Kohaku with RGB underglow. + +* Keyboard Maintainer: [ToastyStoemp](https://github.com/ToastyStoemp) +* Hardware Supported: Wolf Kohaku Solder RGB (RP2040) +* Hardware Availability: [SingaKBD](https://singakbd.com) + +Make example for this keyboard (after setting up your build environment): + + make wolf/singa/kohaku_solder_rgb:default + +Flashing example for this keyboard: + + make wolf/singa/kohaku_solder_rgb: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/wolf/ts60/readme.md b/keyboards/wolf/ts60/readme.md index 5f1d64937b..719e0a2b49 100644 --- a/keyboards/wolf/ts60/readme.md +++ b/keyboards/wolf/ts60/readme.md @@ -22,4 +22,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` diff --git a/keyboards/wolf/twilight/keymaps/default/keymap.c b/keyboards/wolf/twilight/keymaps/default/keymap.c index 0c20711c9a..54524029b0 100644 --- a/keyboards/wolf/twilight/keymaps/default/keymap.c +++ b/keyboards/wolf/twilight/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MENU, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c b/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c index fac2966b4f..01c8c8599f 100644 --- a/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c +++ b/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c @@ -14,4 +14,4 @@ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk b/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk index 1ba2fa8fbe..e5ddcae8d9 100644 --- a/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk +++ b/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes \ No newline at end of file +TAP_DANCE_ENABLE = yes diff --git a/keyboards/woodkeys/meira/matrix.c b/keyboards/woodkeys/meira/matrix.c index e08782dd40..992fbfe637 100644 --- a/keyboards/woodkeys/meira/matrix.c +++ b/keyboards/woodkeys/meira/matrix.c @@ -38,15 +38,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif static matrix_row_t matrix_debouncing[MATRIX_ROWS]; @@ -202,12 +199,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json index 70dc6cc13a..d029f73117 100644 --- a/keyboards/work_louder/loop/info.json +++ b/keyboards/work_louder/loop/info.json @@ -54,6 +54,17 @@ "typing_heatmap": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [0, 10], "x": 169, "y": 32, "flags": 4}, + {"matrix": [0, 9], "x": 150, "y": 32, "flags": 4}, + {"matrix": [0, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [0, 6], "x": 93, "y": 32, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 32, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 32, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 32, "flags": 4} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/work_louder/loop/loop.c b/keyboards/work_louder/loop/loop.c index 7880584d09..138be4e75a 100644 --- a/keyboards/work_louder/loop/loop.c +++ b/keyboards/work_louder/loop/loop.c @@ -41,17 +41,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return true; } #endif - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { - { - { NO_LED, NO_LED, NO_LED, 8, 7, 6, 5, 4, 3, 2, 1, 0 } - }, { - {188, 32}, {169, 32}, {150, 32}, {131, 32}, {112, 32}, {93, 32}, {74, 32}, {55, 32}, {36, 32} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; -// clang-format on -#endif diff --git a/keyboards/work_louder/micro/keyboard.json b/keyboards/work_louder/micro/keyboard.json index b8da74dd92..677facf995 100644 --- a/keyboards/work_louder/micro/keyboard.json +++ b/keyboards/work_louder/micro/keyboard.json @@ -79,6 +79,20 @@ "digital_rain": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 2], "x": 122, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 103, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 84, "y": 45, "flags": 4}, + {"matrix": [2, 1], "x": 103, "y": 45, "flags": 4}, + {"matrix": [2, 2], "x": 133, "y": 45, "flags": 4}, + {"matrix": [2, 3], "x": 152, "y": 45, "flags": 4}, + {"matrix": [1, 3], "x": 152, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 122, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 103, "y": 26, "flags": 4}, + {"matrix": [1, 0], "x": 84, "y": 26, "flags": 4}, + {"matrix": [0, 1], "x": 103, "y": 7, "flags": 4}, + {"matrix": [0, 2], "x": 122, "y": 7, "flags": 4} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/work_louder/micro/matrix.c b/keyboards/work_louder/micro/matrix.c index 3944d676de..1c53487949 100644 --- a/keyboards/work_louder/micro/matrix.c +++ b/keyboards/work_louder/micro/matrix.c @@ -1,9 +1,6 @@ // Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) // SPDX-License-Identifier: GPL-2.0-or-later -/* - * scan matrix - */ #include "matrix.h" #include #include "atomic_util.h" @@ -12,13 +9,8 @@ #include "util.h" #include "debounce.h" -/* matrix state(1:on, 0:off) */ -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -#define MATRIX_ROW_SHIFTER ((matrix_row_t)1) static inline void gpio_atomic_set_pin_output_low(pin_t pin) { ATOMIC_BLOCK_FORCEON { diff --git a/keyboards/work_louder/micro/micro.c b/keyboards/work_louder/micro/micro.c index f88ac8bb45..80af68ad8d 100644 --- a/keyboards/work_louder/micro/micro.c +++ b/keyboards/work_louder/micro/micro.c @@ -3,29 +3,6 @@ #include "micro.h" -#if defined(RGB_MATRIX_ENABLE) -// clang-format off -led_config_t g_led_config = { { - { NO_LED, 10, 11, NO_LED }, - { 9 , 8, 7, 6 }, - { 2, 3, 4, 5 }, - { NO_LED, 1, 0, NO_LED } - }, { - { 122, 64 }, { 103, 64 }, - { 84, 45 }, { 103, 45 }, { 133, 45 }, { 152, 45 }, - { 152, 26 }, { 122, 26 }, { 103, 26 }, { 84, 26 }, - { 103, 7 }, { 122, 7 } - }, - { - 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4 - } -}; -// clang-format on -#endif - #if defined(ENCODER_ENABLE) bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { diff --git a/keyboards/work_louder/nano/keyboard.json b/keyboards/work_louder/nano/keyboard.json index e15d095de0..c870803b1a 100644 --- a/keyboards/work_louder/nano/keyboard.json +++ b/keyboards/work_louder/nano/keyboard.json @@ -56,6 +56,10 @@ "digital_rain": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 2], "x": 103, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 122, "y": 32, "flags": 4} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/work_louder/nano/nano.c b/keyboards/work_louder/nano/nano.c index 28db78e46d..a02b09d90c 100644 --- a/keyboards/work_louder/nano/nano.c +++ b/keyboards/work_louder/nano/nano.c @@ -27,16 +27,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return true; } #endif - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { NO_LED, 1, 0 } - }, { - { 103, 32 }, { 122, 32 } - }, { - 4, 4 - } -}; - -#endif diff --git a/keyboards/wsk/gothic50/keyboard.json b/keyboards/wsk/gothic50/keyboard.json index ecd87d9e81..0e49872b10 100644 --- a/keyboards/wsk/gothic50/keyboard.json +++ b/keyboards/wsk/gothic50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Gothic50", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/gothic70/keyboard.json b/keyboards/wsk/gothic70/keyboard.json index 15acd70287..1c3f54d585 100644 --- a/keyboards/wsk/gothic70/keyboard.json +++ b/keyboards/wsk/gothic70/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Gothic70", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0x5753", diff --git a/keyboards/wsk/houndstooth/keyboard.json b/keyboards/wsk/houndstooth/keyboard.json index d7596b151a..1e6e5b36e2 100644 --- a/keyboards/wsk/houndstooth/keyboard.json +++ b/keyboards/wsk/houndstooth/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Houndstooth", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/jerkin/keyboard.json b/keyboards/wsk/jerkin/keyboard.json index 4ff9701f6e..dfd3a6d314 100644 --- a/keyboards/wsk/jerkin/keyboard.json +++ b/keyboards/wsk/jerkin/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jerkin", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/kodachi50/keyboard.json b/keyboards/wsk/kodachi50/keyboard.json index d37eb965e2..373a1770fb 100644 --- a/keyboards/wsk/kodachi50/keyboard.json +++ b/keyboards/wsk/kodachi50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kodachi50", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/pain27/keyboard.json b/keyboards/wsk/pain27/keyboard.json index 43a9ce5f59..0a88b751dc 100644 --- a/keyboards/wsk/pain27/keyboard.json +++ b/keyboards/wsk/pain27/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PAIN27", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/sl40/keyboard.json b/keyboards/wsk/sl40/keyboard.json index 9c6752b98c..9d92cad7c3 100644 --- a/keyboards/wsk/sl40/keyboard.json +++ b/keyboards/wsk/sl40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SL40", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/tkl30/keyboard.json b/keyboards/wsk/tkl30/keyboard.json index 4a767c1da8..21f4c15545 100644 --- a/keyboards/wsk/tkl30/keyboard.json +++ b/keyboards/wsk/tkl30/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TKL30", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/config.h b/keyboards/xbows/numpad_v2/config.h similarity index 85% rename from keyboards/splitkb/aurora/sofle_v2/rev1/config.h rename to keyboards/xbows/numpad_v2/config.h index 522bea4d5e..e13de33229 100644 --- a/keyboards/splitkb/aurora/sofle_v2/rev1/config.h +++ b/keyboards/xbows/numpad_v2/config.h @@ -1,4 +1,4 @@ -/* Copyright 2023 splitkb.com +/* Copyright 2025 Shulin Huang * * 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 @@ -13,8 +13,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #pragma once -#define OLED_DISPLAY_128X32 -#define SPLIT_OLED_ENABLE +#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_VCC diff --git a/keyboards/xbows/numpad_v2/keyboard.json b/keyboards/xbows/numpad_v2/keyboard.json new file mode 100644 index 0000000000..0ccd2f8d02 --- /dev/null +++ b/keyboards/xbows/numpad_v2/keyboard.json @@ -0,0 +1,106 @@ +{ + "keyboard_name": "NUMPAD_V2", + "manufacturer": "X-BOWS", + "maintainer": "xbows-qmk", + "usb": { + "vid": "0x5842", + "pid": "0x4E76", + "device_version": "0.0.1" + }, + "rgb_matrix": { + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "cycle_out_in": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_reactive_simple": true, + "solid_reactive": true, + "solid_reactive_wide": true, + "solid_reactive_cross": true, + "splash": true, + "solid_multisplash": true + }, + "center_point": [30, 32], + "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 60, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 34, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 50, "flags": 4}, + {"matrix": [4, 1], "x": 20, "y": 50, "flags": 4}, + {"matrix": [4, 2], "x": 40, "y": 50, "flags": 4}, + {"matrix": [4, 3], "x": 52, "y": 57, "flags": 4}, + {"matrix": [5, 0], "x": 10, "y": 63, "flags": 4}, + {"matrix": [5, 2], "x": 40, "y": 63, "flags": 4} + ], + "led_process_limit": 18, + "max_brightness": 200, + "sleep": true + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["D4", "D6", "B2", "B1"], + "rows": ["B5", "B4", "C6", "B6", "D7", "B3"] + }, + "diode_direction": "COL2ROW", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "debounce": 3, + "community_layouts": ["numpad_6x4"], + "layouts": { + "LAYOUT_numpad_6x4": { + "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": [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": [2, 0], "x": 0, "y": 2.5}, + {"matrix": [2, 1], "x": 1, "y": 2.5}, + {"matrix": [2, 2], "x": 2, "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.5}, + {"matrix": [2, 3], "x": 3, "y": 2.5, "h": 2}, + + {"matrix": [4, 0], "x": 0, "y": 4.5}, + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 2}, + {"matrix": [5, 2], "x": 2, "y": 5.5}, + {"matrix": [4, 3], "x": 3, "y": 4.5, "h": 2} + ] + } + } +} diff --git a/keyboards/yushakobo/quick17/quick17.c b/keyboards/xbows/numpad_v2/keymaps/default/keymap.c similarity index 51% rename from keyboards/yushakobo/quick17/quick17.c rename to keyboards/xbows/numpad_v2/keymaps/default/keymap.c index d6fe84199b..3fd67eeb86 100644 --- a/keyboards/yushakobo/quick17/quick17.c +++ b/keyboards/xbows/numpad_v2/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 yushakobo +/* Copyright 2025 Shulin Huang * * 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 @@ -13,25 +13,21 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#include QMK_KEYBOARD_H -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {12, 13, 14, 15, 16, 17}, - {0, 1, 11, 10, 9, 8}, - {2, 3, 4, 5, 6, 7} - }, - { - {0,32}, {44,32}, {0,64}, {44,64}, {89,64}, {134,64}, - {179,64},{224,64},{224,32},{179,32},{134,32},{89,32}, - {0,0}, {44,0}, {89,0}, {134,0}, {179,0}, {224,0} - }, - { - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4 - } +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_numpad_6x4( + KC_ESC, KC_TAB, KC_BSPC, MO(1), + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + [1] = LAYOUT_numpad_6x4( + QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, + KC_CALC, KC_MYCM, KC_MSEL, KC_MAIL, + RM_NEXT, RM_VALU, RM_HUEU, + RM_SPDD, RM_TOGG, RM_SPDU, KC_TRNS, + KC_TRNS, RM_VALD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS) }; -#endif diff --git a/keyboards/xbows/numpad_v2/numpad_v2.c b/keyboards/xbows/numpad_v2/numpad_v2.c new file mode 100644 index 0000000000..4ff1243b37 --- /dev/null +++ b/keyboards/xbows/numpad_v2/numpad_v2.c @@ -0,0 +1,59 @@ +/* Copyright 2025 Shulin Huang + * + * 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 "quantum.h" + #ifdef RGB_MATRIX_ENABLE + const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { + + {0, C3_3, C2_3, C1_3}, // L01 + {0, C3_4, C2_4, C1_4}, // L02 + {0, C9_5, C8_5, C7_5}, // L03 + {0, C9_6, C8_6, C7_6}, // L04 + + {0, C6_1, C5_1, C4_1}, // L05 + {0, C6_2, C5_2, C4_2}, // L06 + {0, C6_3, C5_3, C4_3}, // L07 + {0, C6_6, C5_6, C4_6}, // L08 + + {0, C9_1, C8_1, C7_1}, // L09 + {0, C9_2, C8_2, C7_2}, // L10 + {0, C9_3, C8_3, C7_3}, // L11 + {0, C3_14, C2_14, C1_14}, // L12 + + {0, C3_11, C2_11, C1_11}, // L13 + {0, C3_12, C2_12, C1_12}, // L14 + {0, C3_13, C2_13, C1_13}, // L15 + + + {0, C6_9, C5_9, C4_9}, // L16 + {0, C6_10, C5_10, C4_10}, // L17 + {0, C6_11, C5_11, C4_11}, // L17 + {0, C6_14, C5_14, C4_14}, // L19 + + {0, C6_16, C5_16, C4_16}, // L20 + {0, C6_15, C5_15, C4_15}, // L21 + + }; +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().num_lock) { + rgb_matrix_set_color(4, 0xFF, 0xFF, 0xFF); + } + return true; +} + +#endif diff --git a/keyboards/xbows/numpad_v2/readme.md b/keyboards/xbows/numpad_v2/readme.md new file mode 100644 index 0000000000..662fb1a680 --- /dev/null +++ b/keyboards/xbows/numpad_v2/readme.md @@ -0,0 +1,34 @@ +# NUMPAD_V2 +![NUMPAD_V2](https://i.imgur.com/LHzwyVL.jpg) + +Knight-Plus is an Ergonomic Mechanical keyboard suite redesigned by X-Bow that includes both the main keyboard and the numpad. + +If you spend your work days in front of a computer, you have likely felt some discomfort after a long day of typing. While spending less time on our computers would be the ideal remedy for this problem, that is not a realistic solution for most people. X-Bows was designed to limit the stress on your hands and wrists while also providing a productive and stylish typing experience. + + +X-Bows was designed with three criteria in mind: +* Enhancing the comfort and ergonomics of the keyboard +* Limiting the learning curve for our new layout +* Creating an attractive design + + +* Keyboard Maintainer: X-BOWS +* Hardware Supported: X-BOWS Numpad_v2 +* Hardware Availability: [X-BOWS](https://x-bows.com/) + +Make example for this keyboard (after setting up your build environment): + + make xbows/numpad_v2:default + +Flashing example for this keyboard: + + make xbows/numpad_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 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/xdboards/recon/keyboard.json b/keyboards/xdboards/recon/keyboard.json index 65f3c88a32..2ba4ccdb08 100644 --- a/keyboards/xdboards/recon/keyboard.json +++ b/keyboards/xdboards/recon/keyboard.json @@ -198,4 +198,4 @@ "hue": 126 } } -} \ No newline at end of file +} diff --git a/keyboards/xdboards/recon/post_config.h b/keyboards/xdboards/recon/post_config.h index 9e4950e04a..dc302cbf78 100644 --- a/keyboards/xdboards/recon/post_config.h +++ b/keyboards/xdboards/recon/post_config.h @@ -21,4 +21,4 @@ # define WS2812_DI_PIN 25U #else # define WS2812_DI_PIN B3 -#endif \ No newline at end of file +#endif diff --git a/keyboards/xdboards/recon/post_rules.mk b/keyboards/xdboards/recon/post_rules.mk index 8b9382b32a..afa01106e5 100644 --- a/keyboards/xdboards/recon/post_rules.mk +++ b/keyboards/xdboards/recon/post_rules.mk @@ -1,3 +1,3 @@ ifeq ($(strip $(USE_SEA_PICRO_RGB_PIN)), yes) OPT_DEFS += -DUSE_SEA_PICRO_RGB_PIN -endif \ No newline at end of file +endif diff --git a/keyboards/xdboards/recon/readme.md b/keyboards/xdboards/recon/readme.md index 49dbddbbfb..c431179ae9 100644 --- a/keyboards/xdboards/recon/readme.md +++ b/keyboards/xdboards/recon/readme.md @@ -54,4 +54,4 @@ In your keymap directory: #define RGB_MATRIX_SPLIT { 5, 5 } #define RGB_MATRIX_LED_COUNT 10 ``` - \ No newline at end of file + diff --git a/keyboards/xdboards/recon/recon.c b/keyboards/xdboards/recon/recon.c index 823f3df7bf..f623c5ffbd 100644 --- a/keyboards/xdboards/recon/recon.c +++ b/keyboards/xdboards/recon/recon.c @@ -115,4 +115,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/xelus/akis/keyboard.json b/keyboards/xelus/akis/keyboard.json index 25b4f958d7..0aa4d177cb 100644 --- a/keyboards/xelus/akis/keyboard.json +++ b/keyboards/xelus/akis/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AkiS", "manufacturer": "Xelus", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/xelus/akis", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/dawn60/readme.md b/keyboards/xelus/dawn60/readme.md index 8e01381939..530a93b617 100644 --- a/keyboards/xelus/dawn60/readme.md +++ b/keyboards/xelus/dawn60/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make xelus/dawn60/rev1:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/xelus/dawn60/rev1_qmk/readme.md b/keyboards/xelus/dawn60/rev1_qmk/readme.md index b105dd6c7a..68357d6471 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/readme.md +++ b/keyboards/xelus/dawn60/rev1_qmk/readme.md @@ -1,3 +1,3 @@ # Dawn60 -The QMK RGB Matrix Version \ No newline at end of file +The QMK RGB Matrix Version diff --git a/keyboards/xelus/kangaroo/info.json b/keyboards/xelus/kangaroo/info.json index 791aa75cf7..fb7858dd3b 100644 --- a/keyboards/xelus/kangaroo/info.json +++ b/keyboards/xelus/kangaroo/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Xelus", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/xelus/kangaroo", "maintainer": "qmk", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/valor/rev2/keyboard.json b/keyboards/xelus/valor/rev2/keyboard.json index 451eeb99ff..6356f69646 100644 --- a/keyboards/xelus/valor/rev2/keyboard.json +++ b/keyboards/xelus/valor/rev2/keyboard.json @@ -67,6 +67,9 @@ "solid_splash": true, "solid_multisplash": true }, + "default": { + "flags": 7 + }, "driver": "ws2812", "max_brightness": 200, "sleep": true diff --git a/keyboards/xelus/valor/rev2/rev2.c b/keyboards/xelus/valor/rev2/rev2.c index 34a32cfc61..99db45e08d 100644 --- a/keyboards/xelus/valor/rev2/rev2.c +++ b/keyboards/xelus/valor/rev2/rev2.c @@ -64,9 +64,4 @@ led_config_t g_led_config = { { 8, 8, 8, 8 } }; - -void keyboard_pre_init_kb(void) { - rgb_matrix_set_flags(LED_FLAG_MODIFIER|LED_FLAG_UNDERGLOW|LED_FLAG_KEYLIGHT); - keyboard_pre_init_user(); -} #endif diff --git a/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md b/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md index 80e4550249..bf571d3432 100644 --- a/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md +++ b/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md @@ -49,4 +49,4 @@ controls, RGB (underglow) controls, and firmware reset (DFU mode). * `-----------------------------------------------------------------------------------------' */ -``` \ No newline at end of file +``` diff --git a/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md b/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md index 35a5e4f224..a24685de80 100644 --- a/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md +++ b/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md @@ -5,4 +5,4 @@ make xd60:split_bksp_arrows ![Layout](https://photos.app.goo.gl/cjpRZ2j8q3X1ONck1 "Layout") ## KLE Link -http://www.keyboard-layout-editor.com/#/gists/5bb96ed3f4974bf74b1c448c8349d01f \ No newline at end of file +http://www.keyboard-layout-editor.com/#/gists/5bb96ed3f4974bf74b1c448c8349d01f diff --git a/keyboards/xiudi/xd84pro/keymaps/default/keymap.c b/keyboards/xiudi/xd84pro/keymaps/default/keymap.c index 884b7b27ec..6c16b4d82d 100644 --- a/keyboards/xiudi/xd84pro/keymaps/default/keymap.c +++ b/keyboards/xiudi/xd84pro/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ ) -}; \ No newline at end of file +}; diff --git a/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md b/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md index 676709fccd..627449e489 100755 --- a/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md +++ b/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md @@ -10,4 +10,4 @@ The RGB Underglow feature is disabled by default. This specific keymap enables R ### Layer 1 -![XD87 - rgb_default keymap - layer 1](https://i.imgur.com/BIsAgtO.png) \ No newline at end of file +![XD87 - rgb_default keymap - layer 1](https://i.imgur.com/BIsAgtO.png) diff --git a/keyboards/xiudi/xd87/readme.md b/keyboards/xiudi/xd87/readme.md index 7beae2c6c8..79bbcddd22 100644 --- a/keyboards/xiudi/xd87/readme.md +++ b/keyboards/xiudi/xd87/readme.md @@ -23,4 +23,4 @@ It also supports the tkl_ansi and tkl_iso community layouts: The keyboard can be reset to bootloader by using bootmagic (top left key by default) or short out the small connector between the Delete and End keys. -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). \ No newline at end of file +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/xiudi/xd96/matrix.c b/keyboards/xiudi/xd96/matrix.c index 2c433f02b8..f73fce267f 100644 --- a/keyboards/xiudi/xd96/matrix.c +++ b/keyboards/xiudi/xd96/matrix.c @@ -90,4 +90,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { changed |= read_cols_on_row(current_matrix, current_row); } return changed; -} \ No newline at end of file +} diff --git a/keyboards/xw60/keymaps/default/readme.md b/keyboards/xw60/keymaps/default/readme.md index 0e146718a4..71bd405428 100644 --- a/keyboards/xw60/keymaps/default/readme.md +++ b/keyboards/xw60/keymaps/default/readme.md @@ -55,4 +55,4 @@ |--------------------------------------------------------------------------| | | | | | | | | '--------------------------------------------------------------------------' - ``` \ No newline at end of file + ``` diff --git a/keyboards/yandrstudio/nz64/keyboard.json b/keyboards/yandrstudio/nz64/keyboard.json index 8c36b73c1e..e7c879ca36 100644 --- a/keyboards/yandrstudio/nz64/keyboard.json +++ b/keyboards/yandrstudio/nz64/keyboard.json @@ -59,6 +59,90 @@ }, "center_point": [96, 32], "driver": "ws2812", + "layout": [ + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 207, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 190, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 155, "y": 64, "flags": 4}, + {"x": 121, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 86, "y": 64, "flags": 4}, + {"x": 52, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 207, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 190, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 155, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 138, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 121, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 207, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 190, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 155, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 138, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 37, "y": 0, "flags": 2}, + {"x": 75, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 187, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 187, "y": 64, "flags": 2}, + {"x": 149, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 75, "y": 64, "flags": 2}, + {"x": 37, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/yandrstudio/nz64/nz64.c b/keyboards/yandrstudio/nz64/nz64.c index 928b0b5114..6bd3e08fbf 100644 --- a/keyboards/yandrstudio/nz64/nz64.c +++ b/keyboards/yandrstudio/nz64/nz64.c @@ -23,40 +23,6 @@ typedef union { } kb_cums_t; kb_cums_t kb_cums; -led_config_t g_led_config = { - { - { 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, - { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 }, - { 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, NO_LED, 25 }, - { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11 }, - { 10, 9, 8, NO_LED, NO_LED, 6, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 } - }, - { - /* LED Index to Physical Position */ - {224,64},{207,64},{190,64},{172,64},{155,64}, {121,64}, {86,64}, {52,64}, {34,64},{17,64},{0,64}, - {224,48},{207,48},{190,48},{172,48},{155,48},{138,48},{121,48},{103,48},{86,48},{69,48},{52,48},{34,48},{17,48},{0,48}, - {224,32},{190,32},{172,32},{155,32},{138,32},{121,32},{103,32},{86,32},{69,32},{52,32},{34,32},{17,32},{0,32}, - {224,16},{207,16},{190,16},{172,16},{155,16},{138,16},{121,16},{103,16},{86,16},{69,16},{52,16},{34,16},{17,16},{0,16}, - {224,0},{207,0},{190,0},{172,0},{155,0},{138,0},{121,0},{103,0},{86,0},{69,0},{52,0},{34,0},{17,0},{0,0}, - {0,0},{37,0},{75,0},{112,0},{149,0},{187,0},{224,0}, - {0,32}, - {224,64},{187,64},{149,64},{112,64},{75,64},{37,64},{0,64}, - {224,32} - }, - { - /* LED Index to Flag */ - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4, - 2,2,2,2,2, 2,2,2,2,2, - 2,2,2,2,2, 2 - } -}; - 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; diff --git a/keyboards/yandrstudio/nz67v2/keyboard.json b/keyboards/yandrstudio/nz67v2/keyboard.json index fc931f3427..56de8d8b87 100644 --- a/keyboards/yandrstudio/nz67v2/keyboard.json +++ b/keyboards/yandrstudio/nz67v2/keyboard.json @@ -65,6 +65,94 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "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, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 196, "y": 0, "flags": 2}, + {"x": 168, "y": 0, "flags": 2}, + {"x": 140, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 84, "y": 0, "flags": 2}, + {"x": 56, "y": 0, "flags": 2}, + {"x": 28, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 196, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2}, + {"x": 140, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 84, "y": 64, "flags": 2}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 28, "y": 64, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/yandrstudio/nz67v2/nz67v2.c b/keyboards/yandrstudio/nz67v2/nz67v2.c index c3162dd961..22f3570607 100644 --- a/keyboards/yandrstudio/nz67v2/nz67v2.c +++ b/keyboards/yandrstudio/nz67v2/nz67v2.c @@ -24,36 +24,6 @@ typedef union { } kb_cums_t; kb_cums_t kb_cums; -led_config_t g_led_config = { - { - {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68}, - {53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39}, - {25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, 38}, - {24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, NO_LED, 13, 12, 11}, - {0, 1, 2, 3, NO_LED, 4, NO_LED, 5, NO_LED, 6, 7, NO_LED, 8, 9, 10} - }, - { - {0,64},{16,64},{32,64},{48,64}, {80,64}, {112,64}, {144,64},{160,64}, {192,64},{208,64},{224,64}, - {224,48},{208,48},{192,48}, {160,48},{144,48},{128,48},{112,48},{96,48},{80,48},{64,48},{48,48},{32,48},{16,48},{0,48}, - {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32}, {208,32},{224,32}, - {224,16},{208,16},{192,16},{176,16},{160,16},{144,16},{128,16},{112,16},{96,16},{80,16},{64,16},{48,16},{32,16},{16,16},{0,16}, - {0,0},{16,0},{32,0},{48,0},{64,0},{80,0},{96,0},{112,0},{128,0},{144,0},{160,0},{176,0},{192,0},{208,0},{224,0}, - {224,0},{196,0},{168,0},{140,0},{112,0},{84,0},{56,0},{28,0},{0,0}, - {224,64},{196,64},{168,64},{140,64},{112,64},{84,64},{56,64},{28,64} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2 - } -}; - 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; diff --git a/keyboards/yandrstudio/tg67/keyboard.json b/keyboards/yandrstudio/tg67/keyboard.json index 8a1df37805..924b1ec689 100644 --- a/keyboards/yandrstudio/tg67/keyboard.json +++ b/keyboards/yandrstudio/tg67/keyboard.json @@ -64,6 +64,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "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, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"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": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 250, "sleep": true }, diff --git a/keyboards/yandrstudio/tg67/tg67.c b/keyboards/yandrstudio/tg67/tg67.c deleted file mode 100644 index 5384778a68..0000000000 --- a/keyboards/yandrstudio/tg67/tg67.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2022 JasonRen(biu) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { - { - {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68}, - {53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39}, - {25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, 38}, - {24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, NO_LED, 13, 12, 11}, - {0, 1, 2, NO_LED, NO_LED, 4, NO_LED, NO_LED, NO_LED, 6, 7, NO_LED, 8, 9, 10} - }, - { - {0,64},{16,64},{32,64},{48,64}, {80,64}, {112,64}, {144,64},{160,64}, {192,64},{208,64},{224,64}, - {224,48},{208,48},{192,48}, {160,48},{144,48},{128,48},{112,48},{96,48},{80,48},{64,48},{48,48},{32,48},{16,48},{0,48}, - {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32}, {208,32},{224,32}, - {224,16},{208,16},{192,16},{176,16},{160,16},{144,16},{128,16},{112,16},{96,16},{80,16},{64,16},{48,16},{32,16},{16,16},{0,16}, - {0,0},{16,0},{32,0},{48,0},{64,0},{80,0},{96,0},{112,0},{128,0},{144,0},{160,0},{176,0},{192,0},{208,0},{224,0} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - -#endif diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json index 1b890dcaba..838f9d330e 100644 --- a/keyboards/yanghu/unicorne/info.json +++ b/keyboards/yanghu/unicorne/info.json @@ -41,7 +41,17 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [3, 5], "x": 94, "y": 60, "flags": 255}, + {"matrix": [2, 2], "x": 18, "y": 44, "flags": 255}, + {"matrix": [1, 2], "x": 8, "y": 10, "flags": 255}, + {"matrix": [1, 5], "x": 94, "y": 10, "flags": 255}, + {"matrix": [1, 8], "x": 130, "y": 10, "flags": 255}, + {"matrix": [1, 11], "x": 216, "y": 10, "flags": 255}, + {"matrix": [2, 11], "x": 208, "y": 44, "flags": 255}, + {"matrix": [3, 8], "x": 130, "y": 60, "flags": 255} + ] }, "matrix_pins": { "cols": ["A14", "A15", "B13", "B14", "B15", "A13", "A0", "A1", "A2", "A3", "A6", "A7"], diff --git a/keyboards/yanghu/unicorne/unicorne.c b/keyboards/yanghu/unicorne/unicorne.c index bce8f52075..e1d173d8c5 100644 --- a/keyboards/yanghu/unicorne/unicorne.c +++ b/keyboards/yanghu/unicorne/unicorne.c @@ -33,37 +33,6 @@ void i2c_init(void) { } } -// LED matrix -// physical location -// 2 3 4 5 -// -// 1 6 -// 0 7 -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = {{ - // Key Matrix to LED Index - // Since we only have 8 LEDs, map the keys near them to the same LED. - {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5}, - {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5}, - {1, 1, 1, 0, 0, 0, 7, 7, 7, 6, 6, 6}, - {NO_LED, NO_LED, NO_LED, 0, 0, 0, 7, 7, 7, NO_LED, NO_LED, NO_LED}, -}, {// LED Index to Physical Position - {94, 60}, - {18, 44}, - {8, 10}, - {94, 10}, - {130,10}, - {216, 10}, - {208, 44}, - {130, 60} -}, {// LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -}}; -// clang-format on -#endif - #ifdef OLED_ENABLE // OLED shared code // The oled is vertical. Need to rotate 270 degrees. diff --git a/keyboards/splitkb/aurora/lily58/rev1/config.h b/keyboards/yiancardesigns/float65/config.h similarity index 78% rename from keyboards/splitkb/aurora/lily58/rev1/config.h rename to keyboards/yiancardesigns/float65/config.h index 5a5910d81c..4c744c95af 100644 --- a/keyboards/splitkb/aurora/lily58/rev1/config.h +++ b/keyboards/yiancardesigns/float65/config.h @@ -1,4 +1,4 @@ -/* Copyright 2022 splitkb.com +/* Copyright 2024 Yiancar-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 @@ -16,8 +16,9 @@ #pragma once -// Not yet available in `info.json` -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X32 -# define SPLIT_OLED_ENABLE -#endif +/* RGB options */ + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/splitkb/aurora/helix/rev1/config.h b/keyboards/yiancardesigns/float65/halconf.h similarity index 86% rename from keyboards/splitkb/aurora/helix/rev1/config.h rename to keyboards/yiancardesigns/float65/halconf.h index 522bea4d5e..1c97d8e0fb 100644 --- a/keyboards/splitkb/aurora/helix/rev1/config.h +++ b/keyboards/yiancardesigns/float65/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2023 splitkb.com +/* Copyright 2024 Yiancar-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 @@ -16,5 +16,6 @@ #pragma once -#define OLED_DISPLAY_128X32 -#define SPLIT_OLED_ENABLE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/yiancardesigns/float65/keyboard.json b/keyboards/yiancardesigns/float65/keyboard.json new file mode 100644 index 0000000000..49e4f02831 --- /dev/null +++ b/keyboards/yiancardesigns/float65/keyboard.json @@ -0,0 +1,333 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "Float 65", + "maintainer": "Yiancar", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["A13", "A10", "A9", "A14", "A15", "B8", "B9", "B2", "B1", "B0", "A0", "A1", "A2", "A3", "A5"], + "rows": ["B3", "B4", "B5", "A8", "A4"] + }, + "processor": "STM32F072", + "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": 8 + }, + "url": "https://yiancar-designs.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x5334", + "vid": "0x8968" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layout_aliases": { + "LAYOUT": "LAYOUT_65_ansi_blocker_split_bs" + }, + "layouts": { + "LAYOUT_65_ansi_blocker": { + "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": [2, 12], "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, 13], "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, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_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": [1, 13], "x": 13, "y": 0}, + {"matrix": [0, 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": [2, 12], "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, 13], "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, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 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": [2, 12], "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, 13], "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}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_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": [1, 13], "x": 13, "y": 0}, + {"matrix": [0, 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": [2, 12], "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, 13], "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}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13, "y": 4}, + {"matrix": [4, 13], "x": 14, "y": 4}, + {"matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/yiancardesigns/float65/keymaps/default/keymap.c b/keyboards/yiancardesigns/float65/keymaps/default/keymap.c new file mode 100644 index 0000000000..df023f5c5a --- /dev/null +++ b/keyboards/yiancardesigns/float65/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* Copyright 2024 Yiancar-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] = { +[0] = LAYOUT_65_ansi_blocker_split_bs( /* Base */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_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, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + +[1] = LAYOUT_65_ansi_blocker_split_bs( /* FN */ + 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, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, + KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, _______) +}; diff --git a/keyboards/yiancardesigns/float65/mcuconf.h b/keyboards/yiancardesigns/float65/mcuconf.h new file mode 100644 index 0000000000..db2c3ca747 --- /dev/null +++ b/keyboards/yiancardesigns/float65/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2024 Yiancar-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 . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/yiancardesigns/float65/readme.md b/keyboards/yiancardesigns/float65/readme.md new file mode 100644 index 0000000000..6b3c2bc66c --- /dev/null +++ b/keyboards/yiancardesigns/float65/readme.md @@ -0,0 +1,32 @@ +# Float 65 + +This is a 65% layout PCB. It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A 65% keyboard with STM32F072CB +* Hardware Availability: https://omnitype.com + +## Instructions + +### Build + +Make example for this keyboard (after setting up your build environment): + + make yiancardesigns/float65:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Reset + +- Unplug +- Hold Escape +- Plug In +- Unplug +- Release Escape + +### Flash + +- Unplug +- Hold Escape +- Plug In +- Flash using QMK Toolbox or CLI (`make yiancardesigns/float65::flash`) diff --git a/keyboards/yiancardesigns/gingham/keymaps/default/readme.md b/keyboards/yiancardesigns/gingham/keymaps/default/readme.md index 2f3372492e..9e12473d8b 100644 --- a/keyboards/yiancardesigns/gingham/keymaps/default/readme.md +++ b/keyboards/yiancardesigns/gingham/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for Gingham ![Layout image](https://i.imgur.com/WwOVJTh.jpg) -Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster. \ No newline at end of file +Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster. diff --git a/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md b/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md index cd29c28900..eed9639cbc 100644 --- a/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md +++ b/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md @@ -3,4 +3,4 @@ The default keymap for ISO Gingham ![Layout image](https://i.imgur.com/WwOVJTh.jpg) -Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster \ No newline at end of file +Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster diff --git a/keyboards/yiancardesigns/hyper7/v4/config.h b/keyboards/yiancardesigns/hyper7/v4/config.h new file mode 100644 index 0000000000..a33e746458 --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/config.h @@ -0,0 +1,5 @@ +// Copyright 2025 Yiancar-Designs, Bit-Shifter +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_MACRO_COUNT 30 diff --git a/keyboards/yiancardesigns/hyper7/v4/keyboard.json b/keyboards/yiancardesigns/hyper7/v4/keyboard.json new file mode 100644 index 0000000000..b6cab6df6a --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/keyboard.json @@ -0,0 +1,429 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "Hyper7 v4", + "maintainer": "Yiancar-Designs", + "bootloader": "stm32-dfu", + "bootmagic": { + "matrix": [3, 0] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "C5", "C4", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "B12", "B13", "B14", "B15", "A8", "C9", "C8", "C7", "C6", "C11", "C10", "A15", "A14"], + "rows": ["C1", "C2", "C3", "A13", "C12", "B3", "B4", "B5"] + }, + "processor": "STM32F072", + "url": "https://yiancar-designs.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x6837", + "vid": "0x8968" + }, + "layouts": { + "LAYOUT_modern": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w":2}, + {"matrix": [0, 2], "x": 2, "y": 0, "w":2}, + {"matrix": [0, 4], "x": 4.5, "y": 0, "w":2}, + {"matrix": [0, 6], "x": 6.5, "y": 0, "w":2}, + {"matrix": [0, 8], "x": 8.5, "y": 0, "w":2}, + {"matrix": [0, 10], "x": 10.5, "y": 0, "w":2}, + {"matrix": [0, 12], "x": 12.5, "y": 0, "w":2}, + {"matrix": [0, 14], "x": 14.5, "y": 0, "w":2}, + {"matrix": [0, 16], "x": 16.5, "y": 0, "w":2}, + {"matrix": [0, 18], "x": 18.5, "y": 0, "w":2}, + {"matrix": [0, 20], "x": 20.5, "y": 0, "w":2}, + {"matrix": [0, 22], "x": 22.5, "y": 0, "w":2}, + {"matrix": [0, 24], "x": 25, "y": 0, "w":2}, + {"matrix": [0, 26], "x": 27, "y": 0, "w":2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w":2}, + {"matrix": [1, 2], "x": 2, "y": 1, "w":2}, + {"matrix": [1, 4], "x": 4.5, "y": 1, "w":2}, + {"matrix": [1, 6], "x": 6.5, "y": 1, "w":2}, + {"matrix": [1, 8], "x": 8.5, "y": 1, "w":2}, + {"matrix": [1, 10], "x": 10.5, "y": 1, "w":2}, + {"matrix": [1, 12], "x": 12.5, "y": 1, "w":2}, + {"matrix": [1, 14], "x": 14.5, "y": 1, "w":2}, + {"matrix": [1, 16], "x": 16.5, "y": 1, "w":2}, + {"matrix": [1, 18], "x": 18.5, "y": 1, "w":2}, + {"matrix": [1, 20], "x": 20.5, "y": 1, "w":2}, + {"matrix": [1, 22], "x": 22.5, "y": 1, "w":2}, + {"matrix": [1, 24], "x": 25, "y": 1, "w":2}, + {"matrix": [1, 26], "x": 27, "y": 1, "w":2}, + {"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.5, "y": 2, "w":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}, + {"matrix": [2, 14], "x": 14.5, "y": 2}, + {"matrix": [2, 15], "x": 15.5, "y": 2}, + {"matrix": [2, 16], "x": 16.5, "y": 2}, + {"matrix": [2, 17], "x": 17.5, "y": 2}, + {"matrix": [2, 18], "x": 18.5, "y": 2}, + {"matrix": [2, 19], "x": 19.5, "y": 2}, + {"matrix": [2, 20], "x": 20.5, "y": 2}, + {"matrix": [2, 21], "x": 21.5, "y": 2}, + {"matrix": [2, 22], "x": 22.5, "y": 2, "w":2}, + {"matrix": [2, 24], "x": 25, "y": 2}, + {"matrix": [2, 25], "x": 26, "y": 2}, + {"matrix": [2, 26], "x": 27, "y": 2}, + {"matrix": [2, 27], "x": 28, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.5}, + {"matrix": [3, 2], "x": 2, "y": 3.5}, + {"matrix": [3, 3], "x": 3, "y": 3.5}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5, "w": 1.5}, + {"matrix": [3, 6], "x": 6, "y": 3.5}, + {"matrix": [3, 7], "x": 7, "y": 3.5}, + {"matrix": [3, 8], "x": 8, "y": 3.5}, + {"matrix": [3, 9], "x": 9, "y": 3.5}, + {"matrix": [3, 10], "x": 10, "y": 3.5}, + {"matrix": [3, 11], "x": 11, "y": 3.5}, + {"matrix": [3, 12], "x": 12, "y": 3.5}, + {"matrix": [3, 13], "x": 13, "y": 3.5}, + {"matrix": [3, 14], "x": 14, "y": 3.5}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + {"matrix": [3, 16], "x": 16, "y": 3.5}, + {"matrix": [3, 17], "x": 17, "y": 3.5}, + {"matrix": [3, 18], "x": 18, "y": 3.5}, + {"matrix": [3, 19], "x": 19, "y": 3.5}, + {"matrix": [3, 20], "x": 20, "y": 3.5}, + {"matrix": [3, 21], "x": 21, "y": 3.5}, + {"matrix": [3, 22], "x": 22, "y": 3.5}, + {"matrix": [3, 23], "x": 23, "y": 3.5, "w": 1.5}, + {"matrix": [3, 24], "x": 25, "y": 3.5}, + {"matrix": [3, 25], "x": 26, "y": 3.5}, + {"matrix": [3, 26], "x": 27, "y": 3.5}, + {"matrix": [3, 27], "x": 28, "y": 3.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5}, + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + {"matrix": [4, 3], "x": 3, "y": 4.5}, + {"matrix": [4, 4], "x": 4.5, "y": 4.5}, + {"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 7], "x": 7, "y": 4.5, "w": 1.5}, + {"matrix": [4, 8], "x": 8.5, "y": 4.5}, + {"matrix": [4, 9], "x": 9.5, "y": 4.5}, + {"matrix": [4, 10], "x": 10.5, "y": 4.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4.5}, + {"matrix": [4, 14], "x": 14.5, "y": 4.5}, + {"matrix": [4, 15], "x": 15.5, "y": 4.5}, + {"matrix": [4, 16], "x": 16.5, "y": 4.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4.5}, + {"matrix": [4, 18], "x": 18.5, "y": 4.5}, + {"matrix": [4, 19], "x": 19.5, "y": 4.5}, + {"matrix": [4, 20], "x": 20.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 22], "x": 22, "y": 4.5, "w": 1.5}, + {"matrix": [4, 23], "x": 23.5, "y": 4.5}, + {"matrix": [4, 24], "x": 25, "y": 4.5}, + {"matrix": [4, 25], "x": 26, "y": 4.5}, + {"matrix": [4, 26], "x": 27, "y": 4.5}, + {"matrix": [4, 27], "x": 28, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5}, + {"matrix": [5, 1], "x": 1, "y": 5.5}, + {"matrix": [5, 2], "x": 2, "y": 5.5}, + {"matrix": [5, 3], "x": 3, "y": 5.5}, + {"matrix": [5, 4], "x": 4.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 7.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 9, "y": 5.5}, + {"matrix": [5, 10], "x": 10, "y": 5.5}, + {"matrix": [5, 11], "x": 11, "y": 5.5}, + {"matrix": [5, 12], "x": 12, "y": 5.5}, + {"matrix": [5, 13], "x": 13, "y": 5.5}, + {"matrix": [5, 14], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5}, + {"matrix": [5, 16], "x": 16, "y": 5.5}, + {"matrix": [5, 17], "x": 17, "y": 5.5}, + {"matrix": [5, 18], "x": 18, "y": 5.5}, + {"matrix": [5, 19], "x": 19, "y": 5.5}, + {"matrix": [5, 20], "x": 20, "y": 5.5, "w": 1.5}, + {"matrix": [5, 21], "x": 21.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 23], "x": 23, "y": 5.5, "w": 1.5}, + {"matrix": [5, 24], "x": 25, "y": 5.5}, + {"matrix": [5, 25], "x": 26, "y": 5.5}, + {"matrix": [5, 26], "x": 27, "y": 5.5}, + {"matrix": [5, 27], "x": 28, "y": 5.5}, + {"matrix": [6, 0], "x": 0, "y": 6.5}, + {"matrix": [6, 1], "x": 1, "y": 6.5}, + {"matrix": [6, 2], "x": 2, "y": 6.5}, + {"matrix": [6, 3], "x": 3, "y": 6.5}, + {"matrix": [6, 4], "x": 4.5, "y": 6.5}, + {"matrix": [6, 5], "x": 5.5, "y": 6.5}, + {"matrix": [6, 6], "x": 6.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 8], "x": 8, "y": 6.5, "w": 1.5}, + {"matrix": [6, 9], "x": 9.5, "y": 6.5}, + {"matrix": [6, 10], "x": 10.5, "y": 6.5}, + {"matrix": [6, 11], "x": 11.5, "y": 6.5}, + {"matrix": [6, 12], "x": 12.5, "y": 6.5}, + {"matrix": [6, 13], "x": 13.5, "y": 6.5}, + {"matrix": [6, 14], "x": 14.5, "y": 6.5}, + {"matrix": [6, 15], "x": 15.5, "y": 6.5}, + {"matrix": [6, 16], "x": 16.5, "y": 6.5}, + {"matrix": [6, 17], "x": 17.5, "y": 6.5}, + {"matrix": [6, 18], "x": 18.5, "y": 6.5}, + {"matrix": [6, 19], "x": 19.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 21], "x": 21, "y": 6.5, "w": 1.5}, + {"matrix": [6, 22], "x": 22.5, "y": 6.5}, + {"matrix": [6, 23], "x": 23.5, "y": 6.5}, + {"matrix": [6, 24], "x": 25, "y": 6.5}, + {"matrix": [6, 25], "x": 26, "y": 6.5}, + {"matrix": [6, 26], "x": 27, "y": 6.5}, + {"matrix": [6, 27], "x": 28, "y": 6.5}, + {"matrix": [7, 0], "x": 0, "y": 7.5}, + {"matrix": [7, 1], "x": 1, "y": 7.5}, + {"matrix": [7, 2], "x": 2, "y": 7.5}, + {"matrix": [7, 3], "x": 3, "y": 7.5}, + {"matrix": [7, 4], "x": 4.5, "y": 7.5}, + {"matrix": [7, 5], "x": 5.5, "y": 7.5}, + {"matrix": [7, 6], "x": 6.5, "y": 7.5}, + {"matrix": [7, 7], "x": 7.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 8], "x": 9, "y": 7.5, "w": 1.5}, + {"matrix": [7, 13], "x": 10.5, "y": 7.5, "w": 7}, + {"matrix": [7, 18], "x": 17.5, "y": 7.5}, + {"matrix": [7, 19], "x": 18.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 20], "x": 20, "y": 7.5, "w": 1.5}, + {"matrix": [7, 21], "x": 21.5, "y": 7.5}, + {"matrix": [7, 22], "x": 22.5, "y": 7.5}, + {"matrix": [7, 23], "x": 23.5, "y": 7.5}, + {"matrix": [7, 24], "x": 25, "y": 7.5}, + {"matrix": [7, 25], "x": 26, "y": 7.5}, + {"matrix": [7, 26], "x": 27, "y": 7.5}, + {"matrix": [7, 27], "x": 28, "y": 7.5} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4.5, "y": 0}, + {"matrix": [0, 5], "x": 5.5, "y": 0}, + {"matrix": [0, 6], "x": 6.5, "y": 0}, + {"matrix": [0, 7], "x": 7.5, "y": 0}, + {"matrix": [0, 8], "x": 8.5, "y": 0}, + {"matrix": [0, 9], "x": 9.5, "y": 0}, + {"matrix": [0, 10], "x": 10.5, "y": 0}, + {"matrix": [0, 11], "x": 11.5, "y": 0}, + {"matrix": [0, 12], "x": 12.5, "y": 0}, + {"matrix": [0, 13], "x": 13.5, "y": 0}, + {"matrix": [0, 14], "x": 14.5, "y": 0}, + {"matrix": [0, 15], "x": 15.5, "y": 0}, + {"matrix": [0, 16], "x": 16.5, "y": 0}, + {"matrix": [0, 17], "x": 17.5, "y": 0}, + {"matrix": [0, 18], "x": 18.5, "y": 0}, + {"matrix": [0, 19], "x": 19.5, "y": 0}, + {"matrix": [0, 20], "x": 20.5, "y": 0}, + {"matrix": [0, 21], "x": 21.5, "y": 0}, + {"matrix": [0, 22], "x": 22.5, "y": 0}, + {"matrix": [0, 23], "x": 23.5, "y": 0}, + {"matrix": [0, 24], "x": 25, "y": 0}, + {"matrix": [0, 25], "x": 26, "y": 0}, + {"matrix": [0, 26], "x": 27, "y": 0}, + {"matrix": [0, 27], "x": 28, "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.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}, + {"matrix": [1, 14], "x": 14.5, "y": 1}, + {"matrix": [1, 15], "x": 15.5, "y": 1}, + {"matrix": [1, 16], "x": 16.5, "y": 1}, + {"matrix": [1, 17], "x": 17.5, "y": 1}, + {"matrix": [1, 18], "x": 18.5, "y": 1}, + {"matrix": [1, 19], "x": 19.5, "y": 1}, + {"matrix": [1, 20], "x": 20.5, "y": 1}, + {"matrix": [1, 21], "x": 21.5, "y": 1}, + {"matrix": [1, 22], "x": 22.5, "y": 1}, + {"matrix": [1, 23], "x": 23.5, "y": 1}, + {"matrix": [1, 24], "x": 25, "y": 1}, + {"matrix": [1, 25], "x": 26, "y": 1}, + {"matrix": [1, 26], "x": 27, "y": 1}, + {"matrix": [1, 27], "x": 28, "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.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}, + {"matrix": [2, 14], "x": 14.5, "y": 2}, + {"matrix": [2, 15], "x": 15.5, "y": 2}, + {"matrix": [2, 16], "x": 16.5, "y": 2}, + {"matrix": [2, 17], "x": 17.5, "y": 2}, + {"matrix": [2, 18], "x": 18.5, "y": 2}, + {"matrix": [2, 19], "x": 19.5, "y": 2}, + {"matrix": [2, 20], "x": 20.5, "y": 2}, + {"matrix": [2, 21], "x": 21.5, "y": 2}, + {"matrix": [2, 22], "x": 22.5, "y": 2}, + {"matrix": [2, 23], "x": 23.5, "y": 2}, + {"matrix": [2, 24], "x": 25, "y": 2}, + {"matrix": [2, 25], "x": 26, "y": 2}, + {"matrix": [2, 26], "x": 27, "y": 2}, + {"matrix": [2, 27], "x": 28, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3.5}, + {"matrix": [3, 1], "x": 1, "y": 3.5}, + {"matrix": [3, 2], "x": 2, "y": 3.5}, + {"matrix": [3, 3], "x": 3, "y": 3.5}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5, "w": 1.5}, + {"matrix": [3, 6], "x": 6, "y": 3.5}, + {"matrix": [3, 7], "x": 7, "y": 3.5}, + {"matrix": [3, 8], "x": 8, "y": 3.5}, + {"matrix": [3, 9], "x": 9, "y": 3.5}, + {"matrix": [3, 10], "x": 10, "y": 3.5}, + {"matrix": [3, 11], "x": 11, "y": 3.5}, + {"matrix": [3, 12], "x": 12, "y": 3.5}, + {"matrix": [3, 13], "x": 13, "y": 3.5}, + {"matrix": [3, 14], "x": 14, "y": 3.5}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + {"matrix": [3, 16], "x": 16, "y": 3.5}, + {"matrix": [3, 17], "x": 17, "y": 3.5}, + {"matrix": [3, 18], "x": 18, "y": 3.5}, + {"matrix": [3, 19], "x": 19, "y": 3.5}, + {"matrix": [3, 20], "x": 20, "y": 3.5}, + {"matrix": [3, 21], "x": 21, "y": 3.5}, + {"matrix": [3, 22], "x": 22, "y": 3.5}, + {"matrix": [3, 23], "x": 23, "y": 3.5, "w": 1.5}, + {"matrix": [3, 24], "x": 25, "y": 3.5}, + {"matrix": [3, 25], "x": 26, "y": 3.5}, + {"matrix": [3, 26], "x": 27, "y": 3.5}, + {"matrix": [3, 27], "x": 28, "y": 3.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5}, + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + {"matrix": [4, 3], "x": 3, "y": 4.5}, + {"matrix": [4, 4], "x": 4.5, "y": 4.5}, + {"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 7], "x": 7, "y": 4.5, "w": 1.5}, + {"matrix": [4, 8], "x": 8.5, "y": 4.5}, + {"matrix": [4, 9], "x": 9.5, "y": 4.5}, + {"matrix": [4, 10], "x": 10.5, "y": 4.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4.5}, + {"matrix": [4, 14], "x": 14.5, "y": 4.5}, + {"matrix": [4, 15], "x": 15.5, "y": 4.5}, + {"matrix": [4, 16], "x": 16.5, "y": 4.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4.5}, + {"matrix": [4, 18], "x": 18.5, "y": 4.5}, + {"matrix": [4, 19], "x": 19.5, "y": 4.5}, + {"matrix": [4, 20], "x": 20.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 22], "x": 22, "y": 4.5, "w": 1.5}, + {"matrix": [4, 23], "x": 23.5, "y": 4.5}, + {"matrix": [4, 24], "x": 25, "y": 4.5}, + {"matrix": [4, 25], "x": 26, "y": 4.5}, + {"matrix": [4, 26], "x": 27, "y": 4.5}, + {"matrix": [4, 27], "x": 28, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5}, + {"matrix": [5, 1], "x": 1, "y": 5.5}, + {"matrix": [5, 2], "x": 2, "y": 5.5}, + {"matrix": [5, 3], "x": 3, "y": 5.5}, + {"matrix": [5, 4], "x": 4.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 7.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 9, "y": 5.5}, + {"matrix": [5, 10], "x": 10, "y": 5.5}, + {"matrix": [5, 11], "x": 11, "y": 5.5}, + {"matrix": [5, 12], "x": 12, "y": 5.5}, + {"matrix": [5, 13], "x": 13, "y": 5.5}, + {"matrix": [5, 14], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5}, + {"matrix": [5, 16], "x": 16, "y": 5.5}, + {"matrix": [5, 17], "x": 17, "y": 5.5}, + {"matrix": [5, 18], "x": 18, "y": 5.5}, + {"matrix": [5, 19], "x": 19, "y": 5.5}, + {"matrix": [5, 20], "x": 20, "y": 5.5, "w": 1.5}, + {"matrix": [5, 21], "x": 21.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 23], "x": 23, "y": 5.5, "w": 1.5}, + {"matrix": [5, 24], "x": 25, "y": 5.5}, + {"matrix": [5, 25], "x": 26, "y": 5.5}, + {"matrix": [5, 26], "x": 27, "y": 5.5}, + {"matrix": [5, 27], "x": 28, "y": 5.5}, + {"matrix": [6, 0], "x": 0, "y": 6.5}, + {"matrix": [6, 1], "x": 1, "y": 6.5}, + {"matrix": [6, 2], "x": 2, "y": 6.5}, + {"matrix": [6, 3], "x": 3, "y": 6.5}, + {"matrix": [6, 4], "x": 4.5, "y": 6.5}, + {"matrix": [6, 5], "x": 5.5, "y": 6.5}, + {"matrix": [6, 6], "x": 6.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 8], "x": 8, "y": 6.5, "w": 1.5}, + {"matrix": [6, 9], "x": 9.5, "y": 6.5}, + {"matrix": [6, 10], "x": 10.5, "y": 6.5}, + {"matrix": [6, 11], "x": 11.5, "y": 6.5}, + {"matrix": [6, 12], "x": 12.5, "y": 6.5}, + {"matrix": [6, 13], "x": 13.5, "y": 6.5}, + {"matrix": [6, 14], "x": 14.5, "y": 6.5}, + {"matrix": [6, 15], "x": 15.5, "y": 6.5}, + {"matrix": [6, 16], "x": 16.5, "y": 6.5}, + {"matrix": [6, 17], "x": 17.5, "y": 6.5}, + {"matrix": [6, 18], "x": 18.5, "y": 6.5}, + {"matrix": [6, 19], "x": 19.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 21], "x": 21, "y": 6.5, "w": 1.5}, + {"matrix": [6, 22], "x": 22.5, "y": 6.5}, + {"matrix": [6, 23], "x": 23.5, "y": 6.5}, + {"matrix": [6, 24], "x": 25, "y": 6.5}, + {"matrix": [6, 25], "x": 26, "y": 6.5}, + {"matrix": [6, 26], "x": 27, "y": 6.5}, + {"matrix": [6, 27], "x": 28, "y": 6.5}, + {"matrix": [7, 0], "x": 0, "y": 7.5}, + {"matrix": [7, 1], "x": 1, "y": 7.5}, + {"matrix": [7, 2], "x": 2, "y": 7.5}, + {"matrix": [7, 3], "x": 3, "y": 7.5}, + {"matrix": [7, 4], "x": 4.5, "y": 7.5}, + {"matrix": [7, 5], "x": 5.5, "y": 7.5}, + {"matrix": [7, 6], "x": 6.5, "y": 7.5}, + {"matrix": [7, 7], "x": 7.5, "y": 7.5}, + {"matrix": [7, 8], "x": 8.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 10], "x": 10, "y": 7.5}, + {"matrix": [7, 11], "x": 11, "y": 7.5, "w": 1.5}, + {"matrix": [7, 12], "x": 12.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 14], "x": 14, "y": 7.5}, + {"matrix": [7, 15], "x": 15, "y": 7.5, "w": 1.5}, + {"matrix": [7, 16], "x": 16.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 18], "x": 18, "y": 7.5}, + {"matrix": [7, 19], "x": 19, "y": 7.5, "w": 1.5}, + {"matrix": [7, 20], "x": 20.5, "y": 7.5}, + {"matrix": [7, 21], "x": 21.5, "y": 7.5}, + {"matrix": [7, 22], "x": 22.5, "y": 7.5}, + {"matrix": [7, 23], "x": 23.5, "y": 7.5}, + {"matrix": [7, 24], "x": 25, "y": 7.5}, + {"matrix": [7, 25], "x": 26, "y": 7.5}, + {"matrix": [7, 26], "x": 27, "y": 7.5}, + {"matrix": [7, 27], "x": 28, "y": 7.5}, + {"matrix": [7, 13], "x": 11, "y": 8.5, "w": 7} + ] + } + } +} diff --git a/keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c b/keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c new file mode 100644 index 0000000000..3b2a333ac3 --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c @@ -0,0 +1,111 @@ +// Copyright 2025 Yiancar-Designs, Bit-Shifter +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum my_keycodes { + MACRO = QK_USER_0, + QUOTE, + CLRIN, + SQUAR, + CIRCL, + TRIAN, + DIAMO, + WRITE, + TTY, + PLUSM, + MODE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MACRO: + if (record->event.pressed) { + // when keycode MACRO is pressed + SEND_STRING("Hyper7 is the best thing ever!"); + } + break; + case QUOTE: + if (record->event.pressed) { + // when keycode QUOTE is pressed + SEND_STRING("\"\"" SS_TAP(X_LEFT)); + } + break; + case CLRIN: + if (record->event.pressed) { + // when keycode CLRIN is pressed + SEND_STRING(SS_LCTL("a") SS_TAP(X_DEL)); + } + break; + case SQUAR: + if (record->event.pressed) { + // when keycode SQUAR is pressed + SEND_STRING("I like squares"); + } + break; + case CIRCL: + if (record->event.pressed) { + // when keycode CIRCL is pressed + SEND_STRING("I like circles"); + } + break; + case TRIAN: + if (record->event.pressed) { + // when keycode TRIAN is pressed + SEND_STRING("I like the illuminati"); + } + break; + case DIAMO: + if (record->event.pressed) { + // when keycode DIAMO is pressed + SEND_STRING("Everyone likes diamonds"); + } + break; + case WRITE: + if (record->event.pressed) { + // when keycode WRITE is pressed + SEND_STRING(SS_LGUI("x") "notepad" SS_TAP(X_ENT)); + } + break; + case TTY: + if (record->event.pressed) { + // when keycode TTY is pressed + SEND_STRING(SS_LGUI("x") "cmd" SS_TAP(X_ENT)); + } + break; + case PLUSM: + if (record->event.pressed) { + // when keycode PLUSM is pressed + SEND_STRING("+-"); + } + case MODE: + if (record->event.pressed) { + // when keycode MODE is pressed + SEND_STRING("Mode"); + } + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_modern( + G(KC_F1), MACRO, RCS(KC_ESC), QUOTE, KC_INS, CLRIN, G(KC_D), C(KC_S), C(KC_C), A(KC_F4), KC_PAUS, C(KC_P), G(C(KC_Q)), LCA(KC_DEL), + G(KC_X), KC_WHOM, G(KC_PAUS), C(KC_R), A(KC_TAB), SQUAR, CIRCL, TRIAN, DIAMO, C(KC_Y), LAG(KC_R), RCS(KC_ESC), G(KC_L), KC_CAPS, + KC_F1, KC_F2, A(KC_F4), G(KC_R), KC_ESC, KC_QUES, KC_EXLM, KC_AT, KC_AT, KC_AT, KC_AT, KC_GRV, KC_GRV, KC_GRV, KC_GRV, KC_UNDS, KC_LABK, KC_RABK, KC_PIPE, KC_LCBR, KC_RCBR, C(KC_ENT), KC_CIRC, KC_PERC, KC_HASH, KC_DLR, + KC_F3, KC_F4, C(KC_F), WRITE, LSFT(KC_N), PLUSM, KC_TILD, 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_NUBS, KC_LBRC, KC_RBRC, C(KC_Z), KC_PMNS, KC_PSLS, KC_PAST, KC_PMNS, + KC_F5, KC_F6, C(KC_M), C(KC_Z), C(KC_V), C(KC_X), KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, KC_BSPC, KC_CLEAR, C(KC_HOME),KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_F7, KC_F8, C(KC_A), KC_F12, MO(1), MODE, KC_PGUP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_ENT, KC_HOME, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_AMPR, + KC_F9, KC_F10, TTY, G(KC_L), C(KC_HOME),KC_END, G(KC_DOT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, G(KC_DOT), KC_UP, KC_LGUI, KC_P1, KC_P2, KC_P3, KC_EQL, + KC_F11, KC_F12, KC_HOME, C(KC_END), C(KC_LEFT),C(KC_RGHT),G(KC_DOWN),KC_HYPR, KC_LALT, KC_SPC, KC_RGUI, KC_HYPR, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_P0, KC_PDOT, KC_ENTER + ), + [1] = LAYOUT_modern( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/yiancardesigns/hyper7/v4/readme.md b/keyboards/yiancardesigns/hyper7/v4/readme.md new file mode 100644 index 0000000000..264ee7d578 --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/readme.md @@ -0,0 +1,25 @@ +# Hyper7 v4 + +This is a very big pcb... It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A very big keyboard with STM32F072RB +* Hardware Availability: https://mechboards.co.uk/ + +Make example for this keyboard (after setting up your build environment): + + make yiancardesigns/hyper7/v4:default + +Flashing example for this keyboard: + + make yiancardesigns/hyper7/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 at (3,0) in the matrix (F3) 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/ymdk/sp64/keymaps/default/keymap.c b/keyboards/ymdk/sp64/keymaps/default/keymap.c index dbdd6f0cb2..fac693b1ad 100644 --- a/keyboards/ymdk/sp64/keymaps/default/keymap.c +++ b/keyboards/ymdk/sp64/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2019 Neil Kettle +// SPDX-License-Identifier: GPL-2.0+ + #include QMK_KEYBOARD_H enum layer_names { diff --git a/keyboards/ymdk/sp64/matrix.c b/keyboards/ymdk/sp64/matrix.c index 6f8c7962eb..97fdb87ecb 100644 --- a/keyboards/ymdk/sp64/matrix.c +++ b/keyboards/ymdk/sp64/matrix.c @@ -40,132 +40,129 @@ static uint8_t mcp23018_reset_loop = 0; // user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); +} -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} __attribute__((weak)) void matrix_init_user(void) {} __attribute__((weak)) void matrix_scan_user(void) {} // helper functions -void matrix_init(void) -{ - // all outputs for rows high - DDRB = 0xFF; - PORTB = 0xFF; - // all inputs for columns - DDRA = 0x00; - DDRC &= ~(0x111111<<2); - DDRD &= ~(1<= 1300) { - // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans - // this will be approx bit more frequent than once per second - print("trying to reset mcp23018\n"); - mcp23018_status = init_mcp23018(); - if (mcp23018_status) { - print("left side not responding\n"); - } else { - print("left side attached\n"); - } + // Then the keyboard + if (mcp23018_status != I2C_STATUS_SUCCESS) { + if (++mcp23018_reset_loop == 0) { + // if (++mcp23018_reset_loop >= 1300) { + // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + } + } } - } #endif - bool changed = false; - for (uint8_t row = 0; row < MATRIX_ROWS; row++) - { - matrix_row_t cols; + bool changed = false; + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + matrix_row_t cols; - matrix_select_row(row); + matrix_select_row(row); #ifndef RIGHT_HALF - _delay_us(5); + _delay_us(5); #endif - cols = ( - // cols 0..7, PORTA 0 -> 7 - (~PINA) & 0xFF - ); + cols = ( + // cols 0..7, PORTA 0 -> 7 + (~PINA) & 0xFF); #ifdef RIGHT_HALF - uint8_t data = 0x7F; - // Receive the columns from right half - i2c_receive(I2C_ADDR, &data, 1, MCP23018_I2C_TIMEOUT); - cols |= ((~(data) & 0x7F) << 7); + uint8_t data = 0x7F; + // Receive the columns from right half + i2c_receive(I2C_ADDR, &data, 1, MCP23018_I2C_TIMEOUT); + cols |= ((~(data) & 0x7F) << 7); #endif - if (matrix_debouncing[row] != cols) { - matrix_debouncing[row] = cols; - //debouncing = DEBOUNCE; - changed = true; + if (matrix_debouncing[row] != cols) { + matrix_debouncing[row] = cols; + // debouncing = DEBOUNCE; + changed = true; + } } - } - debounce(matrix_debouncing, matrix, MATRIX_ROWS, changed); + debounce(matrix_debouncing, matrix, changed); - matrix_scan_kb(); + matrix_scan_kb(); #ifdef DEBUG_MATRIX - for (uint8_t c = 0; c < MATRIX_COLS; c++) - for (uint8_t r = 0; r < MATRIX_ROWS; r++) - if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); + for (uint8_t c = 0; c < MATRIX_COLS; c++) + for (uint8_t r = 0; r < MATRIX_ROWS; r++) + if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); #endif - return (uint8_t)changed; + return (uint8_t)changed; } -inline -matrix_row_t matrix_get_row(uint8_t row) -{ +inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } -void matrix_print(void) -{ - print("\nr/c 0123456789ABCDEF\n"); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - print_hex8(row); print(": "); - print_bin_reverse16(matrix_get_row(row)); - print("\n"); - } +void matrix_print(void) { + print("\nr/c 0123456789ABCDEF\n"); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + print_hex8(row); + print(": "); + print_bin_reverse16(matrix_get_row(row)); + print("\n"); + } } -static void matrix_select_row(uint8_t row) -{ +static void matrix_select_row(uint8_t row) { #ifdef RIGHT_HALF - uint8_t txdata[3]; + uint8_t txdata[3]; - //Set the remote row on port A - txdata[0] = GPIOA; - txdata[1] = 0xFF & ~(1<. - */ - -#include "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { - { - // Key Matrix to LED Index for center 2u - {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, - {23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12}, - {35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24}, - {50, 49, 48, 47, 46, 43, 41, 40, 39, 38, 37, 36} - }, { - // LED Index to Physical Position, more positions due to extra leds for other layout options - { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {85, 64}, {94, 64}, {103, 64}, {112, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} - - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1 ,1 ,1, 1, 1, 1, 1, 1, 1, 1 - - } -}; -#endif diff --git a/keyboards/ymdk/ymd40/air40/keyboard.json b/keyboards/ymdk/ymd40/air40/keyboard.json index 0adc965cc7..ea21557423 100644 --- a/keyboards/ymdk/ymd40/air40/keyboard.json +++ b/keyboards/ymdk/ymd40/air40/keyboard.json @@ -60,6 +60,59 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 11], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 11], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 10], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 11], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 10], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 0], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 11], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 85, "y": 64, "flags": 1}, + {"x": 94, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 103, "y": 64, "flags": 1}, + {"x": 112, "y": 64, "flags": 1}, + {"x": 122, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 130, "sleep": true }, diff --git a/keyboards/ymdk/ymd62/config.h b/keyboards/ymdk/ymd62/config.h index 5f1f3f3a2a..dfe035edf0 100644 --- a/keyboards/ymdk/ymd62/config.h +++ b/keyboards/ymdk/ymd62/config.h @@ -8,4 +8,4 @@ #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 #define WS2812_DMA_STREAM STM32_DMA1_STREAM7 -#define WS2812_DMA_CHANNEL 7 \ No newline at end of file +#define WS2812_DMA_CHANNEL 7 diff --git a/keyboards/ymdk/ymd62/keymaps/default/keymap.c b/keyboards/ymdk/ymd62/keymaps/default/keymap.c index e5be1d7910..cbef3448ee 100644 --- a/keyboards/ymdk/ymd62/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd62/keymaps/default/keymap.c @@ -16,4 +16,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_TRNS, RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RGB_M_P, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/ymdk/ymd62/mcuconf.h b/keyboards/ymdk/ymd62/mcuconf.h index 3c07640371..4c28b523ec 100644 --- a/keyboards/ymdk/ymd62/mcuconf.h +++ b/keyboards/ymdk/ymd62/mcuconf.h @@ -6,4 +6,4 @@ #include_next #undef STM32_PWM_USE_TIM4 -#define STM32_PWM_USE_TIM4 TRUE \ No newline at end of file +#define STM32_PWM_USE_TIM4 TRUE diff --git a/keyboards/ymdk/ymd62/readme.md b/keyboards/ymdk/ymd62/readme.md index 73eeed3dbb..5fc42487e7 100644 --- a/keyboards/ymdk/ymd62/readme.md +++ b/keyboards/ymdk/ymd62/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 3 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available Note: The device does not reconnect automatically after the QMK firmware has been flashed. -Wait for the USB device to disappear after writing firmware, then unplug and re-plug it. \ No newline at end of file +Wait for the USB device to disappear after writing firmware, then unplug and re-plug it. diff --git a/keyboards/ymdk/ymd62/rules.mk b/keyboards/ymdk/ymd62/rules.mk index ef4364b06a..6f0a3736a7 100644 --- a/keyboards/ymdk/ymd62/rules.mk +++ b/keyboards/ymdk/ymd62/rules.mk @@ -1,2 +1,2 @@ # Configure for 128K flash -MCU_LDSCRIPT = STM32F103xB \ No newline at end of file +MCU_LDSCRIPT = STM32F103xB diff --git a/keyboards/yncognito/batpad/keyboard.json b/keyboards/yncognito/batpad/keyboard.json index 3e62042a4e..02e480ca22 100644 --- a/keyboards/yncognito/batpad/keyboard.json +++ b/keyboards/yncognito/batpad/keyboard.json @@ -60,6 +60,16 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 145, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 145, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 64, "flags": 4} + ], "react_on_keyup": true }, "features": { diff --git a/keyboards/yushakobo/ergo68/readme.md b/keyboards/yushakobo/ergo68/readme.md index 863c747f77..09369eef56 100644 --- a/keyboards/yushakobo/ergo68/readme.md +++ b/keyboards/yushakobo/ergo68/readme.md @@ -24,4 +24,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/yushakobo/quick17/keyboard.json b/keyboards/yushakobo/quick17/keyboard.json index 627642a179..621bbf810a 100644 --- a/keyboards/yushakobo/quick17/keyboard.json +++ b/keyboards/yushakobo/quick17/keyboard.json @@ -18,6 +18,26 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 44, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 89, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 134, "y": 64, "flags": 4}, + {"matrix": [2, 4], "x": 179, "y": 64, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 4], "x": 179, "y": 32, "flags": 4}, + {"matrix": [1, 3], "x": 134, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 89, "y": 32, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 89, "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} + ], "max_brightness": 150, "sat_steps": 8, "sleep": true, diff --git a/keyboards/yushakobo/quick7/keymaps/default/readme.md b/keyboards/yushakobo/quick7/keymaps/default/readme.md index 644098edfa..faa75fdd17 100644 --- a/keyboards/yushakobo/quick7/keymaps/default/readme.md +++ b/keyboards/yushakobo/quick7/keymaps/default/readme.md @@ -22,4 +22,4 @@ Right Encoder(CW: RGB HUE-, CCW: RGB HUE+) ----------- --------- ------------ | MEDIA << | VOL- | MEDIA >> | `----------- --------- ------------' -``` \ No newline at end of file +``` diff --git a/keyboards/zeix/acidandco/stellaron/readme.md b/keyboards/zeix/acidandco/stellaron/readme.md index 0b865aeee4..f07153035c 100644 --- a/keyboards/zeix/acidandco/stellaron/readme.md +++ b/keyboards/zeix/acidandco/stellaron/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top left key and plug in the keyboard. * **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT`. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. diff --git a/keyboards/zeix/eden/readme.md b/keyboards/zeix/eden/readme.md index 85f1ff66de..af36d01fb0 100644 --- a/keyboards/zeix/eden/readme.md +++ b/keyboards/zeix/eden/readme.md @@ -24,4 +24,4 @@ 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 `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zeix/qwertyqop60hs/readme.md b/keyboards/zeix/qwertyqop60hs/readme.md index 1a36951fd1..746f069f47 100644 --- a/keyboards/zeix/qwertyqop60hs/readme.md +++ b/keyboards/zeix/qwertyqop60hs/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard * **Physical reset button**: Press the 'USB_BOOT' button and plug in keyboard or briefly short the `RESET` and `GND` pads on the SWD header twice -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zigotica/z12/keymaps/default/config.h b/keyboards/zigotica/z12/keymaps/default/config.h index 1fcf924f35..a199d94aee 100644 --- a/keyboards/zigotica/z12/keymaps/default/config.h +++ b/keyboards/zigotica/z12/keymaps/default/config.h @@ -16,8 +16,6 @@ along with this program. If not, see . #pragma once -#define OLED_DISPLAY_128X32 - // EC11 encoders' resolution. // Reduce the value to 2 if you feel missing values: #define ENCODER_RESOLUTION 4 diff --git a/keyboards/zj68/keymaps/default/readme.md b/keyboards/zj68/keymaps/default/readme.md index 3522fe0229..6845f00f12 100644 --- a/keyboards/zj68/keymaps/default/readme.md +++ b/keyboards/zj68/keymaps/default/readme.md @@ -1,3 +1,3 @@ # ZJ68 Default layout -This is the default layout from the json file provided on Drop, that was intended to be used on kbdfirmware, with an added soft reset on fn(backspace). \ No newline at end of file +This is the default layout from the json file provided on Drop, that was intended to be used on kbdfirmware, with an added soft reset on fn(backspace). diff --git a/keyboards/ztboards/after/readme.md b/keyboards/ztboards/after/readme.md index 6dc2bc783a..7e89351fcb 100644 --- a/keyboards/ztboards/after/readme.md +++ b/keyboards/ztboards/after/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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). -Esc + plugging in will put the keyboard into bootloader. \ No newline at end of file +Esc + plugging in will put the keyboard into bootloader. diff --git a/keyboards/ztboards/noon/readme.md b/keyboards/ztboards/noon/readme.md index 96b2bcd8de..b143e02de1 100644 --- a/keyboards/ztboards/noon/readme.md +++ b/keyboards/ztboards/noon/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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). -Esc + plugging in will put the keyboard into bootloader. \ No newline at end of file +Esc + plugging in will put the keyboard into bootloader. diff --git a/keyboards/zvecr/split_blackpill/readme.md b/keyboards/zvecr/split_blackpill/readme.md index 811e308f77..bdf8470b2a 100644 --- a/keyboards/zvecr/split_blackpill/readme.md +++ b/keyboards/zvecr/split_blackpill/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make zvecr/split_blackpill:default -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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/zykrah/fuyu/fuyu.c b/keyboards/zykrah/fuyu/fuyu.c deleted file mode 100644 index ea1e048a64..0000000000 --- a/keyboards/zykrah/fuyu/fuyu.c +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright 2022 Zykrah - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} - }, { - // LED Index to Physical Position - {112, 32}, {138, 17}, {112, 2}, { 86, 17}, { 86, 47}, {112, 62}, {138, 47}, // SNOWFLAKE - { 0, 0}, { 16, 0}, { 32, 0}, { 48, 0}, { 64, 0}, { 80, 0}, { 96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, // UNDERGLOW - {208, 16}, {208, 32}, {208, 48}, // UNDERGLOW - {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, { 96, 64}, { 80, 64}, { 64, 64}, { 48, 64}, { 32, 64}, { 16, 64}, { 0, 64}, // UNDERGLOW - { 0, 48}, { 0, 32}, { 0, 16} // UNDERGLOW - }, { - // LED Index to Flag - 8, 8, 8, 8, 8, 8, 8, // SNOWFLAKE - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2 // UNDERGLOW - } -}; -#endif diff --git a/keyboards/zykrah/fuyu/keyboard.json b/keyboards/zykrah/fuyu/keyboard.json index db4236b698..eafc92c1d2 100644 --- a/keyboards/zykrah/fuyu/keyboard.json +++ b/keyboards/zykrah/fuyu/keyboard.json @@ -60,6 +60,49 @@ "val": 150 }, "driver": "ws2812", + "layout": [ + {"x": 112, "y": 32, "flags": 8}, + {"x": 138, "y": 17, "flags": 8}, + {"x": 112, "y": 2, "flags": 8}, + {"x": 86, "y": 17, "flags": 8}, + {"x": 86, "y": 47, "flags": 8}, + {"x": 112, "y": 62, "flags": 8}, + {"x": 138, "y": 47, "flags": 8}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 16, "y": 0, "flags": 2}, + {"x": 32, "y": 0, "flags": 2}, + {"x": 48, "y": 0, "flags": 2}, + {"x": 64, "y": 0, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 96, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 128, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 160, "y": 0, "flags": 2}, + {"x": 176, "y": 0, "flags": 2}, + {"x": 192, "y": 0, "flags": 2}, + {"x": 208, "y": 0, "flags": 2}, + {"x": 208, "y": 16, "flags": 2}, + {"x": 208, "y": 32, "flags": 2}, + {"x": 208, "y": 48, "flags": 2}, + {"x": 208, "y": 64, "flags": 2}, + {"x": 192, "y": 64, "flags": 2}, + {"x": 176, "y": 64, "flags": 2}, + {"x": 160, "y": 64, "flags": 2}, + {"x": 144, "y": 64, "flags": 2}, + {"x": 128, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 80, "y": 64, "flags": 2}, + {"x": 64, "y": 64, "flags": 2}, + {"x": 48, "y": 64, "flags": 2}, + {"x": 32, "y": 64, "flags": 2}, + {"x": 16, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 16, "flags": 2} + ], "max_brightness": 200 }, "ws2812": { diff --git a/lib/chibios b/lib/chibios index 8bd61b8043..6170ddf92d 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit 8bd61b804303f1614d574546c2dd735eeabb09f5 +Subproject commit 6170ddf92d55be54c89b708d1882eea229edeb2c diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 3ac181e4ca..5a9ad82b6b 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 3ac181e4ca5cafddaf8b472baa1d09c2b24c77b6 +Subproject commit 5a9ad82b6ba4f649cdb800e8c2bbc9be2d3ce767 diff --git a/lib/googletest b/lib/googletest index e2239ee604..6910c9d916 160000 --- a/lib/googletest +++ b/lib/googletest @@ -1 +1 @@ -Subproject commit e2239ee6043f73722e7aa812a459f54a28552929 +Subproject commit 6910c9d9165801d8827d628cb72eb7ea9dd538c5 diff --git a/lib/python/qmk/c_parse.py b/lib/python/qmk/c_parse.py index 785b940456..8a186ea9d3 100644 --- a/lib/python/qmk/c_parse.py +++ b/lib/python/qmk/c_parse.py @@ -45,7 +45,7 @@ def strip_multiline_comment(string): def c_source_files(dir_names): - """Returns a list of all *.c, *.h, and *.cpp files for a given list of directories + """Returns a list of all *.c, *.h, *.cpp, and *.hpp files for a given list of directories Args: @@ -54,7 +54,7 @@ def c_source_files(dir_names): """ files = [] for dir in dir_names: - files.extend(file for file in Path(dir).glob('**/*') if file.suffix in ['.c', '.h', '.cpp']) + files.extend(file for file in Path(dir).glob('**/*') if file.suffix in ['.c', '.h', '.cpp', '.hpp']) return files diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 26905ec134..ca816ba0b7 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -3,6 +3,8 @@ We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup. """ import os +import platform +import platformdirs import shlex import sys from importlib.util import find_spec @@ -12,6 +14,28 @@ from subprocess import run from milc import cli, __VERSION__ from milc.questions import yesno + +def _get_default_distrib_path(): + if 'windows' in platform.platform().lower(): + try: + result = cli.run(['cygpath', '-w', '/opt/qmk']) + if result.returncode == 0: + return result.stdout.strip() + except Exception: + pass + + return platformdirs.user_data_dir('qmk') + + +# Ensure the QMK distribution is on the `$PATH` if present. This must be kept in sync with qmk/qmk_cli. +QMK_DISTRIB_DIR = Path(os.environ.get('QMK_DISTRIB_DIR', _get_default_distrib_path())) +if QMK_DISTRIB_DIR.exists(): + os.environ['PATH'] = str(QMK_DISTRIB_DIR / 'bin') + os.pathsep + os.environ['PATH'] + +# Prepend any user-defined path prefix +if 'QMK_PATH_PREFIX' in os.environ: + os.environ['PATH'] = os.environ['QMK_PATH_PREFIX'] + os.pathsep + os.environ['PATH'] + import_names = { # A mapping of package name to importable name 'pep8-naming': 'pep8ext_naming', @@ -32,6 +56,7 @@ safe_commands = [ subcommands = [ 'qmk.cli.ci.validate_aliases', + 'qmk.cli.ci.validate_keyboard_targets', 'qmk.cli.bux', 'qmk.cli.c2json', 'qmk.cli.cd', diff --git a/lib/python/qmk/cli/ci/validate_keyboard_targets.py b/lib/python/qmk/cli/ci/validate_keyboard_targets.py new file mode 100644 index 0000000000..173eb8a8e7 --- /dev/null +++ b/lib/python/qmk/cli/ci/validate_keyboard_targets.py @@ -0,0 +1,28 @@ +"""Validates the list of keyboard targets. +""" +from milc import cli + +from pathlib import Path + + +@cli.subcommand('Validates the list of keyboard targets.', hidden=True) +def ci_validate_keyboard_targets(cli): + errors = set() + + for rules_mk in Path('keyboards').glob('**/rules.mk'): + if any({'keymaps', 'common', 'lib'} & set(rules_mk.parts)): + continue + + folder = rules_mk.parent + if not any(folder.glob('**/keyboard.json')): + errors.add(folder) + + for keymap in Path('keyboards').glob('**/keymaps/'): + folder = keymap.parent + if not any(folder.glob('**/keyboard.json')): + errors.add(folder) + + for error in errors: + print(f"{error}::Legacy target detected") + + exit(min(len(errors), 255)) diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py index 8d1195bc8f..a5a8f9f6d5 100755 --- a/lib/python/qmk/cli/compile.py +++ b/lib/python/qmk/cli/compile.py @@ -41,6 +41,7 @@ def compile(cli): cli.args.filter = [] cli.config.mass_compile.keymap = cli.config.compile.keymap cli.config.mass_compile.parallel = cli.config.compile.parallel + cli.args.print_failures = False cli.args.no_temp = False return mass_compile(cli) @@ -51,6 +52,7 @@ def compile(cli): cli.args.filter = [] cli.config.mass_compile.keymap = None cli.config.mass_compile.parallel = cli.config.compile.parallel + cli.args.print_failures = False cli.args.no_temp = False return mass_compile(cli) diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py index 51b0f0c80a..a717bcb591 100644 --- a/lib/python/qmk/cli/doctor/check.py +++ b/lib/python/qmk/cli/doctor/check.py @@ -1,7 +1,6 @@ """Check for specific programs. """ from enum import Enum -import re import shutil from subprocess import DEVNULL, TimeoutExpired from tempfile import TemporaryDirectory @@ -9,6 +8,7 @@ from pathlib import Path from milc import cli from qmk import submodules +from qmk.commands import find_make class CheckStatus(Enum): @@ -17,7 +17,13 @@ class CheckStatus(Enum): ERROR = 3 +WHICH_MAKE = Path(find_make()).name + ESSENTIAL_BINARIES = { + WHICH_MAKE: {}, + 'git': {}, + 'dos2unix': {}, + 'diff': {}, 'dfu-programmer': {}, 'avrdude': {}, 'dfu-util': {}, @@ -30,14 +36,39 @@ ESSENTIAL_BINARIES = { } -def _parse_gcc_version(version): - m = re.match(r"(\d+)(?:\.(\d+))?(?:\.(\d+))?", version) +def _check_make_version(): + last_line = ESSENTIAL_BINARIES[WHICH_MAKE]['output'].split('\n')[0] + version_number = last_line.split()[2] + cli.log.info('Found %s version %s', WHICH_MAKE, version_number) - return { - 'major': int(m.group(1)), - 'minor': int(m.group(2)) if m.group(2) else 0, - 'patch': int(m.group(3)) if m.group(3) else 0, - } + return CheckStatus.OK + + +def _check_git_version(): + last_line = ESSENTIAL_BINARIES['git']['output'].split('\n')[0] + version_number = last_line.split()[2] + cli.log.info('Found git version %s', version_number) + + return CheckStatus.OK + + +def _check_dos2unix_version(): + last_line = ESSENTIAL_BINARIES['dos2unix']['output'].split('\n')[0] + version_number = last_line.split()[1] + cli.log.info('Found dos2unix version %s', version_number) + + return CheckStatus.OK + + +def _check_diff_version(): + last_line = ESSENTIAL_BINARIES['diff']['output'].split('\n')[0] + if 'Apple diff' in last_line: + version_number = last_line + else: + version_number = last_line.split()[3] + cli.log.info('Found diff version %s', version_number) + + return CheckStatus.OK def _check_arm_gcc_version(): @@ -121,8 +152,10 @@ def _check_avr_gcc_installation(): def _check_avrdude_version(): - last_line = ESSENTIAL_BINARIES['avrdude']['output'].split('\n')[-2] - version_number = last_line.split()[2][:-1] + lines = ESSENTIAL_BINARIES['avrdude']['output'].split('\n') + # avrdude version text is currently not translated, however we fall back to old behaviour of assuming a line + version_line = next((line for line in lines if 'version' in line), lines[-2]) + version_number = version_line.split()[2][:-1] cli.log.info('Found avrdude version %s', version_number) return CheckStatus.OK @@ -148,16 +181,24 @@ def check_binaries(): """Iterates through ESSENTIAL_BINARIES and tests them. """ ok = CheckStatus.OK + missing_from_path = [] for binary in sorted(ESSENTIAL_BINARIES): try: - if not is_executable(binary): + if not is_in_path(binary): + ok = CheckStatus.ERROR + missing_from_path.append(binary) + elif not is_executable(binary): ok = CheckStatus.ERROR except TimeoutExpired: cli.log.debug('Timeout checking %s', binary) if ok != CheckStatus.ERROR: ok = CheckStatus.WARNING + if missing_from_path: + location_noun = 'its location' if len(missing_from_path) == 1 else 'their locations' + cli.log.error('{fg_red}' + ', '.join(missing_from_path) + f' may need to be installed, or {location_noun} added to your path.') + return ok @@ -165,6 +206,10 @@ def check_binary_versions(): """Check the versions of ESSENTIAL_BINARIES """ checks = { + WHICH_MAKE: _check_make_version, + 'git': _check_git_version, + 'dos2unix': _check_dos2unix_version, + 'diff': _check_diff_version, 'arm-none-eabi-gcc': _check_arm_gcc_version, 'avr-gcc': _check_avr_gcc_version, 'avrdude': _check_avrdude_version, @@ -196,15 +241,18 @@ def check_submodules(): return CheckStatus.OK -def is_executable(command): - """Returns True if command exists and can be executed. +def is_in_path(command): + """Returns True if command is found in the path. """ - # Make sure the command is in the path. - res = shutil.which(command) - if res is None: + if shutil.which(command) is None: cli.log.error("{fg_red}Can't find %s in your path.", command) return False + return True + +def is_executable(command): + """Returns True if command can be executed. + """ # Make sure the command can be executed version_arg = ESSENTIAL_BINARIES[command].get('version_arg', '--version') check = cli.run([command, version_arg], combined_output=True, stdin=DEVNULL, timeout=5) diff --git a/lib/python/qmk/cli/doctor/linux.py b/lib/python/qmk/cli/doctor/linux.py index f0850d4e64..25a166a77f 100644 --- a/lib/python/qmk/cli/doctor/linux.py +++ b/lib/python/qmk/cli/doctor/linux.py @@ -1,62 +1,23 @@ """OS-specific functions for: Linux """ import platform -import shutil from pathlib import Path from milc import cli -from qmk.constants import QMK_FIRMWARE, BOOTLOADER_VIDS_PIDS +from qmk.constants import QMK_FIRMWARE from .check import CheckStatus, release_info +QMK_UDEV_INSTALL_SCRIPT = 'util/install_udev.sh' + def _is_wsl(): return 'microsoft' in platform.uname().release.lower() -def _udev_rule(vid, pid=None, *args): - """ Helper function that return udev rules - """ - rule = "" - if pid: - rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", TAG+="uaccess"' % ( - vid, - pid, - ) - else: - rule = 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", TAG+="uaccess"' % vid - if args: - rule = ', '.join([rule, *args]) - return rule - - -def _generate_desired_rules(bootloader_vids_pids): - rules = dict() - for bl in bootloader_vids_pids.keys(): - rules[bl] = set() - for vid_pid in bootloader_vids_pids[bl]: - if bl == 'caterina' or bl == 'md-boot': - rules[bl].add(_udev_rule(vid_pid[0], vid_pid[1], 'ENV{ID_MM_DEVICE_IGNORE}="1"')) - else: - rules[bl].add(_udev_rule(vid_pid[0], vid_pid[1])) - return rules - - -def _deprecated_udev_rule(vid, pid=None): - """ Helper function that return udev rules - - Note: these are no longer the recommended rules, this is just used to check for them - """ - if pid: - return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", MODE:="0666"' % (vid, pid) - else: - return 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="%s", MODE:="0666"' % vid - - def check_udev_rules(): """Make sure the udev rules look good. """ - rc = CheckStatus.OK udev_dirs = [ Path("/usr/lib/udev/rules.d/"), Path("/usr/local/lib/udev/rules.d/"), @@ -64,71 +25,34 @@ def check_udev_rules(): Path("/etc/udev/rules.d/"), ] - desired_rules = _generate_desired_rules(BOOTLOADER_VIDS_PIDS) + if not any(udev_dir.exists() for udev_dir in udev_dirs): + cli.log.warning("{fg_yellow}Can't find udev rules directories, skipping udev rule checking...") + cli.log.debug("Checked directories: %s", ', '.join(str(udev_dir) for udev_dir in udev_dirs)) + return CheckStatus.WARNING - # These rules are no longer recommended, only use them to check for their presence. - deprecated_rules = { - 'atmel-dfu': {_deprecated_udev_rule("03eb", "2ff4"), _deprecated_udev_rule("03eb", "2ffb"), _deprecated_udev_rule("03eb", "2ff0")}, - 'kiibohd': {_deprecated_udev_rule("1c11")}, - 'stm32': {_deprecated_udev_rule("1eaf", "0003"), _deprecated_udev_rule("0483", "df11")}, - 'bootloadhid': {_deprecated_udev_rule("16c0", "05df")}, - 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}, - 'tmk': {_deprecated_udev_rule("feed")} - } - - if any(udev_dir.exists() for udev_dir in udev_dirs): - udev_rules = [rule_file for udev_dir in udev_dirs for rule_file in udev_dir.glob('*.rules')] - current_rules = set() - - # Collect all rules from the config files - for rule_file in udev_rules: + # Collect all non-comment lines from QMK-related rules files + current_rules = set() + for udev_dir in udev_dirs: + for rule_file in udev_dir.glob('*qmk*'): try: for line in rule_file.read_text(encoding='utf-8').split('\n'): line = line.strip() if not line.startswith("#") and len(line): current_rules.add(line) - except PermissionError: + except (PermissionError, FileNotFoundError): cli.log.debug("Failed to read: %s", rule_file) - # Check if the desired rules are among the currently present rules - for bootloader, rules in desired_rules.items(): - if not rules.issubset(current_rules): - deprecated_rule = deprecated_rules.get(bootloader) - if deprecated_rule and deprecated_rule.issubset(current_rules): - cli.log.warning("{fg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) - else: - # For caterina, check if ModemManager is running - if bootloader == "caterina" and check_modem_manager(): - cli.log.warning("{fg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") + if not current_rules: + cli.log.warning("{fg_yellow}Missing udev rules for QMK boards. Please run '%s' to install the rules", QMK_UDEV_INSTALL_SCRIPT) + return CheckStatus.WARNING - rc = CheckStatus.WARNING - cli.log.warning("{fg_yellow}Missing or outdated udev rules for '%s' boards. Run 'sudo cp %s/util/udev/50-qmk.rules /etc/udev/rules.d/'.", bootloader, QMK_FIRMWARE) + # Check for the qmk_udev ID_QMK marker + if any('ID_QMK' in rule for rule in current_rules): + return CheckStatus.OK - else: - cli.log.warning("{fg_yellow}Can't find udev rules, skipping udev rule checking...") - cli.log.debug("Checked directories: %s", ', '.join(str(udev_dir) for udev_dir in udev_dirs)) - - return rc - - -def check_systemd(): - """Check if it's a systemd system - """ - return bool(shutil.which("systemctl")) - - -def check_modem_manager(): - """Returns True if ModemManager is running. - - """ - if check_systemd(): - mm_check = cli.run(["systemctl", "--quiet", "is-active", "ModemManager.service"], timeout=10) - if mm_check.returncode == 0: - return True - else: - """(TODO): Add check for non-systemd systems - """ - return False + # Legacy rules found (TAG+="uaccess" without ID_QMK) + cli.log.warning("{fg_yellow}Found legacy udev rules. Please run '%s' to install the latest rules", QMK_UDEV_INSTALL_SCRIPT) + return CheckStatus.WARNING def os_test_linux(): diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 391353ebbf..db6cf0383e 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -3,7 +3,6 @@ Check out the user's QMK environment and make sure it's ready to compile. """ import platform -from subprocess import DEVNULL from milc import cli from milc.questions import yesno @@ -11,11 +10,65 @@ from milc.questions import yesno from qmk import submodules from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM, QMK_USERSPACE, HAS_QMK_USERSPACE from .check import CheckStatus, check_binaries, check_binary_versions, check_submodules -from qmk.git import git_check_repo, git_get_branch, git_get_tag, git_get_last_log_entry, git_get_common_ancestor, git_is_dirty, git_get_remotes, git_check_deviation +from qmk.git import git_check_repo, git_check_safe, git_get_branch, git_get_tag, git_get_last_log_entry, git_get_common_ancestor, git_is_dirty, git_get_remotes, git_check_deviation from qmk.commands import in_virtualenv from qmk.userspace import qmk_userspace_paths, qmk_userspace_validate, UserspaceValidationError +def distrib_tests(): + def _load_kvp_file(file): + """Load a simple key=value file into a dictionary + """ + vars = {} + with open(file, 'r') as f: + for line in f: + if '=' in line: + key, value = line.split('=', 1) + vars[key.strip()] = value.strip() + return vars + + def _parse_toolchain_release_file(file): + """Parse the QMK toolchain release info file + """ + try: + vars = _load_kvp_file(file) + return f'{vars.get("TOOLCHAIN_HOST", "unknown")}:{vars.get("TOOLCHAIN_TARGET", "unknown")}:{vars.get("COMMIT_HASH", "unknown")}' + except Exception as e: + cli.log.warning('Error reading QMK toolchain release info file: %s', e) + return f'Unknown toolchain release info file: {file}' + + def _parse_flashutils_release_file(file): + """Parse the QMK flashutils release info file + """ + try: + vars = _load_kvp_file(file) + return f'{vars.get("FLASHUTILS_HOST", "unknown")}:{vars.get("COMMIT_HASH", "unknown")}' + except Exception as e: + cli.log.warning('Error reading QMK flashutils release info file: %s', e) + return f'Unknown flashutils release info file: {file}' + + try: + from qmk.cli import QMK_DISTRIB_DIR + if (QMK_DISTRIB_DIR / 'etc').exists(): + cli.log.info('Found QMK tools distribution directory: {fg_cyan}%s', QMK_DISTRIB_DIR) + + toolchains = [_parse_toolchain_release_file(file) for file in (QMK_DISTRIB_DIR / 'etc').glob('toolchain_release_*')] + if len(toolchains) > 0: + cli.log.info('Found QMK toolchains: {fg_cyan}%s', ', '.join(toolchains)) + else: + cli.log.warning('No QMK toolchains manifest found.') + + flashutils = [_parse_flashutils_release_file(file) for file in (QMK_DISTRIB_DIR / 'etc').glob('flashutils_release_*')] + if len(flashutils) > 0: + cli.log.info('Found QMK flashutils: {fg_cyan}%s', ', '.join(flashutils)) + else: + cli.log.warning('No QMK flashutils manifest found.') + except ImportError: + cli.log.info('QMK tools distribution not found.') + + return CheckStatus.OK + + def os_tests(): """Determine our OS and run platform specific tests """ @@ -38,39 +91,47 @@ def os_tests(): def git_tests(): """Run Git-related checks """ - status = CheckStatus.OK - # Make sure our QMK home is a Git repo git_ok = git_check_repo() if not git_ok: cli.log.warning("{fg_yellow}QMK home does not appear to be a Git repository! (no .git folder)") + return CheckStatus.WARNING + + git_safe = git_check_safe() + if not git_safe: + cli.log.warning("{fg_yellow}Detected dubious ownership in repository!") + return CheckStatus.WARNING + + git_branch = git_get_branch() + if not git_branch: + cli.log.warning("{fg_yellow}Failed to query Git repository!") + return CheckStatus.WARNING + + cli.log.info('Git branch: %s', git_branch) + + repo_version = git_get_tag() + if repo_version: + cli.log.info('Repo version: %s', repo_version) + + status = CheckStatus.OK + git_dirty = git_is_dirty() + if git_dirty: + cli.log.warning('{fg_yellow}Git has unstashed/uncommitted changes.') + status = CheckStatus.WARNING + + git_remotes = git_get_remotes() + if 'upstream' not in git_remotes.keys() or QMK_FIRMWARE_UPSTREAM not in git_remotes['upstream'].get('url', ''): + cli.log.warning('{fg_yellow}The official repository does not seem to be configured as git remote "upstream".') status = CheckStatus.WARNING else: - git_branch = git_get_branch() - if git_branch: - cli.log.info('Git branch: %s', git_branch) - - repo_version = git_get_tag() - if repo_version: - cli.log.info('Repo version: %s', repo_version) - - git_dirty = git_is_dirty() - if git_dirty: - cli.log.warning('{fg_yellow}Git has unstashed/uncommitted changes.') - status = CheckStatus.WARNING - git_remotes = git_get_remotes() - if 'upstream' not in git_remotes.keys() or QMK_FIRMWARE_UPSTREAM not in git_remotes['upstream'].get('url', ''): - cli.log.warning('{fg_yellow}The official repository does not seem to be configured as git remote "upstream".') - status = CheckStatus.WARNING - else: - git_deviation = git_check_deviation(git_branch) - if git_branch in ['master', 'develop'] and git_deviation: - cli.log.warning('{fg_yellow}The local "%s" branch contains commits not found in the upstream branch.', git_branch) - status = CheckStatus.WARNING - for branch in [git_branch, 'upstream/master', 'upstream/develop']: - cli.log.info('- Latest %s: %s', branch, git_get_last_log_entry(branch)) - for branch in ['upstream/master', 'upstream/develop']: - cli.log.info('- Common ancestor with %s: %s', branch, git_get_common_ancestor(branch, 'HEAD')) + git_deviation = git_check_deviation(git_branch) + if git_branch in ['master', 'develop'] and git_deviation: + cli.log.warning('{fg_yellow}The local "%s" branch contains commits not found in the upstream branch.', git_branch) + status = CheckStatus.WARNING + for branch in [git_branch, 'upstream/master', 'upstream/develop']: + cli.log.info('- Latest %s: %s', branch, git_get_last_log_entry(branch)) + for branch in ['upstream/master', 'upstream/develop']: + cli.log.info('- Common ancestor with %s: %s', branch, git_get_common_ancestor(branch, 'HEAD')) return status @@ -87,10 +148,12 @@ def output_submodule_status(): sub_shorthash = sub_info['shorthash'] if 'shorthash' in sub_info else '' sub_describe = sub_info['describe'] if 'describe' in sub_info else '' sub_last_log_timestamp = sub_info['last_log_timestamp'] if 'last_log_timestamp' in sub_info else '' - if sub_last_log_timestamp != '': - cli.log.info(f'- {sub_name}: {sub_last_log_timestamp} -- {sub_describe} ({sub_shorthash})') - else: + if not git_check_safe(sub_name): + cli.log.error(f'- {sub_name}: <<< dubious ownership in repository >>>') + elif sub_last_log_timestamp == '': cli.log.error(f'- {sub_name}: <<< missing or unknown >>>') + else: + cli.log.info(f'- {sub_name}: {sub_last_log_timestamp} -- {sub_describe} ({sub_shorthash})') def userspace_tests(qmk_firmware): @@ -124,10 +187,12 @@ def doctor(cli): * [ ] Compile a trivial program with each compiler """ cli.log.info('QMK Doctor is checking your environment.') + cli.log.info('Python version: %s', platform.python_version()) cli.log.info('CLI version: %s', cli.version) cli.log.info('QMK home: {fg_cyan}%s', QMK_FIRMWARE) status = os_status = os_tests() + distrib_tests() userspace_tests(None) @@ -141,12 +206,6 @@ def doctor(cli): # Make sure the basic CLI tools we need are available and can be executed. bin_ok = check_binaries() - - if bin_ok == CheckStatus.ERROR: - if yesno('Would you like to install dependencies?', default=True): - cli.run(['util/qmk_install.sh', '-y'], stdin=DEVNULL, capture_output=False) - bin_ok = check_binaries() - if bin_ok == CheckStatus.OK: cli.log.info('All dependencies are installed.') elif bin_ok == CheckStatus.WARNING: @@ -163,7 +222,6 @@ def doctor(cli): # Check out the QMK submodules sub_ok = check_submodules() - if sub_ok == CheckStatus.OK: cli.log.info('Submodules are up to date.') else: @@ -186,6 +244,7 @@ def doctor(cli): cli.log.info('{fg_yellow}QMK is ready to go, but minor problems were found') return 1 else: - cli.log.info('{fg_red}Major problems detected, please fix these problems before proceeding.') - cli.log.info('{fg_blue}Check out the FAQ (https://docs.qmk.fm/#/faq_build) or join the QMK Discord (https://discord.gg/qmk) for help.') + cli.log.info('{fg_red}Major problems detected, please fix these problems before proceeding.{fg_reset}') + cli.log.info('{fg_blue}If you\'re missing dependencies, try following the instructions on: https://docs.qmk.fm/newbs_getting_started{fg_reset}') + cli.log.info('{fg_blue}Additionally, check out the FAQ (https://docs.qmk.fm/#/faq_build) or join the QMK Discord (https://discord.gg/qmk) for help.{fg_reset}') return 2 diff --git a/lib/python/qmk/cli/format/c.py b/lib/python/qmk/cli/format/c.py index 65818155b0..4f1c0e2b2c 100644 --- a/lib/python/qmk/cli/format/c.py +++ b/lib/python/qmk/cli/format/c.py @@ -6,7 +6,7 @@ from subprocess import CalledProcessError, DEVNULL, Popen, PIPE from argcomplete.completers import FilesCompleter from milc import cli -from qmk.path import normpath +from qmk.path import normpath, is_relative_to from qmk.c_parse import c_source_files c_file_suffixes = ('c', 'h', 'cpp', 'hpp') @@ -14,12 +14,6 @@ core_dirs = ('drivers', 'quantum', 'tests', 'tmk_core', 'platforms', 'modules') ignored = ('tmk_core/protocol/usb_hid', 'platforms/chibios/boards') -def is_relative_to(file, other): - """Provide similar behavior to PurePath.is_relative_to in Python > 3.9 - """ - return str(normpath(file).resolve()).startswith(str(normpath(other).resolve())) - - def find_clang_format(): """Returns the path to clang-format. """ @@ -105,7 +99,7 @@ def format_c(cli): if not files: cli.log.error('No C files in filelist: %s', ', '.join(map(str, cli.args.files))) - exit(0) + return False if cli.args.all_files: cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) diff --git a/lib/python/qmk/cli/format/python.py b/lib/python/qmk/cli/format/python.py index e7b545109f..a455ce50c2 100755 --- a/lib/python/qmk/cli/format/python.py +++ b/lib/python/qmk/cli/format/python.py @@ -47,7 +47,7 @@ def format_python(cli): if not files: cli.log.error('No Python files in filelist: %s', ', '.join(map(str, cli.args.files))) - exit(0) + return False if cli.args.all_files: cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) diff --git a/lib/python/qmk/cli/format/text.py b/lib/python/qmk/cli/format/text.py index 344631081b..861220eac8 100644 --- a/lib/python/qmk/cli/format/text.py +++ b/lib/python/qmk/cli/format/text.py @@ -5,7 +5,20 @@ from subprocess import DEVNULL from milc import cli -from qmk.path import normpath +from qmk.path import normpath, is_relative_to + +IGNORE_SUFFIXES = [ + 'hex', + 'ico', + 'jpeg', + 'jpg', + 'png', +] +IGNORE_DIRS = [ + 'lib/fnv', + 'lib/lib8tion', + 'lib/usbhost', +] def _get_chunks(it, size): @@ -15,16 +28,40 @@ def _get_chunks(it, size): return iter(lambda: tuple(islice(it, size)), ()) +def _check_dos2unix(): + """Check for a 'valid' dos2unix executable + """ + dos2unix = cli.run(['dos2unix', '--help']) + return dos2unix.returncode == 0 and '--add-eol' in dos2unix.stdout + + def dos2unix_run(files): """Spawn multiple dos2unix subprocess avoiding too long commands on formatting everything """ for chunk in _get_chunks([normpath(file).as_posix() for file in files], 10): - dos2unix = cli.run(['dos2unix', *chunk]) + dos2unix = cli.run(['dos2unix', '--add-eol', *chunk]) if dos2unix.returncode: + cli.log.debug(dos2unix.stdout) + cli.log.error(dos2unix.stderr) return False +def filter_files(files): + """Yield only files to be formatted and skip the rest + """ + ret = [] + + for file in map(normpath, filter(None, files)): + if file.suffix[1:] in IGNORE_SUFFIXES: + continue + + if not any(is_relative_to(file, i) for i in IGNORE_DIRS): + ret.append(file) + + return ret + + @cli.argument('-b', '--base-branch', default='origin/master', help='Branch to compare to diffs to.') @cli.argument('-a', '--all-files', arg_only=True, action='store_true', help='Format all files.') @cli.argument('files', nargs='*', arg_only=True, type=normpath, help='Filename(s) to format.') @@ -32,9 +69,17 @@ def dos2unix_run(files): def format_text(cli): """Ensure text files have the proper line endings. """ + if not _check_dos2unix(): + cli.log.error('Formatting requires an up-to-date version of "dos2unix"') + return False + # Find the list of files to format if cli.args.files: - files = list(cli.args.files) + files = filter_files(cli.args.files) + + if not files: + cli.log.error('No valid files in filelist: %s', ', '.join(map(str, cli.args.files))) + return False if cli.args.all_files: cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) @@ -42,12 +87,12 @@ def format_text(cli): elif cli.args.all_files: git_ls_cmd = ['git', 'ls-files'] git_ls = cli.run(git_ls_cmd, stdin=DEVNULL) - files = list(filter(None, git_ls.stdout.split('\n'))) + files = filter_files(git_ls.stdout.split('\n')) else: git_diff_cmd = ['git', 'diff', '--name-only', cli.args.base_branch] git_diff = cli.run(git_diff_cmd, stdin=DEVNULL) - files = list(filter(None, git_diff.stdout.split('\n'))) + files = filter_files(git_diff.stdout.split('\n')) # Sanity check if not files: diff --git a/lib/python/qmk/cli/generate/autocorrect_data.py b/lib/python/qmk/cli/generate/autocorrect_data.py index 01a29b46fe..4f322adce2 100644 --- a/lib/python/qmk/cli/generate/autocorrect_data.py +++ b/lib/python/qmk/cli/generate/autocorrect_data.py @@ -250,8 +250,8 @@ def to_hex(b: int) -> str: @cli.argument('filename', type=normpath, help='The autocorrection database file') -@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') -@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.') +@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a output file is supplied.') +@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a output file is supplied.') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.subcommand('Generate the autocorrection data file from a dictionary file.') @@ -263,7 +263,7 @@ def generate_autocorrect_data(cli): current_keyboard = cli.args.keyboard or cli.config.user.keyboard or cli.config.generate_autocorrect_data.keyboard current_keymap = cli.args.keymap or cli.config.user.keymap or cli.config.generate_autocorrect_data.keymap - if current_keyboard and current_keymap: + if not cli.args.output and current_keyboard and current_keymap: cli.args.output = locate_keymap(current_keyboard, current_keymap).parent / 'autocorrect_data.h' assert all(0 <= b <= 255 for b in data) diff --git a/lib/python/qmk/cli/generate/community_modules.py b/lib/python/qmk/cli/generate/community_modules.py index a5ab61f9bd..22bb7c0a13 100644 --- a/lib/python/qmk/cli/generate/community_modules.py +++ b/lib/python/qmk/cli/generate/community_modules.py @@ -194,6 +194,38 @@ def generate_community_modules_rules_mk(cli): cli.log.info('Wrote rules.mk to %s.', cli.args.output) +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_config.h for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates a community_config.h from a keymap.json file.') +def generate_community_config_h(cli): + """Creates a community_config.h from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + lines = [ + GPL2_HEADER_C_LIKE, + GENERATED_HEADER_C_LIKE, + '#pragma once', + '', + ] + + modules = get_modules(cli.args.keyboard, cli.args.filename) + if len(modules) > 0: + lines.append('// Split transactions') + for module in modules: + lines.extend([ + f'#ifdef SPLIT_TRANSACTION_IDS_MODULE_{Path(module).name.upper()}', + '# define SPLIT_TRANSACTION_RPC', + '#endif', + ]) + lines.append('') + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) + + @cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.h for.') @@ -339,3 +371,26 @@ def generate_rgb_matrix_community_modules_inc(cli): """Creates an rgb_matrix_community_modules.inc from a keymap.json file """ _generate_include_per_module(cli, 'rgb_matrix_module.inc') + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate split_transaction_id_community_modules.inc for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates an split_transaction_id_community_modules.inc from a keymap.json file.') +def generate_split_transaction_id_community_modules_inc(cli): + """Creates an split_transaction_id_community_modules.inc from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE] + + for module in get_modules(cli.args.keyboard, cli.args.filename): + lines.extend([ + f'#ifdef SPLIT_TRANSACTION_IDS_MODULE_{Path(module).name.upper()}', + f' SPLIT_TRANSACTION_IDS_MODULE_{Path(module).name.upper()},', + '#endif', + ]) + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index d6d0299291..4fd628f016 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -14,6 +14,14 @@ from qmk.path import normpath, FileType from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +def generate_flag(define, value=None): + # TODO: Change behavior to always use is_keymap logic for keyboard level config + is_keymap = cli.args.filename + if is_keymap: + return f'\n#define {define}' if value else f'\n#undef {define}' + return f'\n#define {define}' if value else '' + + def generate_define(define, value=None): is_keymap = cli.args.filename value = f' {value}' if value is not None else '' @@ -87,7 +95,7 @@ def generate_config_items(kb_info_json, config_h_lines): try: config_value = kb_info_json[info_key] - except KeyError: + except (KeyError, IndexError): continue if key_type.startswith('array.array'): @@ -97,8 +105,7 @@ def generate_config_items(kb_info_json, config_h_lines): elif key_type == 'bool': config_h_lines.append(generate_define(config_key, 'true' if config_value else 'false')) elif key_type == 'flag': - if config_value: - config_h_lines.append(generate_define(config_key)) + config_h_lines.append(generate_flag(config_key, config_value)) elif key_type == 'mapping': for key, value in config_value.items(): config_h_lines.append(generate_define(key, value)) @@ -125,11 +132,12 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): config_h_lines.append(generate_define(f'ENCODER_A_PINS{postfix}', f'{{ {", ".join(a_pads)} }}')) config_h_lines.append(generate_define(f'ENCODER_B_PINS{postfix}', f'{{ {", ".join(b_pads)} }}')) - if None in resolutions: - cli.log.debug(f"Unable to generate ENCODER_RESOLUTION{postfix} configuration") - elif len(resolutions) == 0: + if len(resolutions) == 0 or all(r is None for r in resolutions): cli.log.debug(f"Skipping ENCODER_RESOLUTION{postfix} configuration") - elif len(set(resolutions)) == 1: + return + + resolutions = [4 if r is None else r for r in resolutions] + if len(set(resolutions)) == 1: config_h_lines.append(generate_define(f'ENCODER_RESOLUTION{postfix}', resolutions[0])) else: config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}')) @@ -159,8 +167,7 @@ def generate_led_animations_config(feature, led_feature_json, config_h_lines, en config_h_lines.append(generate_define(f'{feature.upper()}_DEFAULT_MODE', f'{animation_prefix}{led_feature_json["default"]["animation"].upper()}')) for animation in led_feature_json.get('animations', {}): - if led_feature_json['animations'][animation]: - config_h_lines.append(generate_define(f'{enable_prefix}{animation.upper()}')) + config_h_lines.append(generate_flag(f'{enable_prefix}{animation.upper()}', led_feature_json['animations'][animation])) @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py index d686935fa8..d694202aec 100644 --- a/lib/python/qmk/cli/generate/keycodes.py +++ b/lib/python/qmk/cli/generate/keycodes.py @@ -92,15 +92,15 @@ def _generate_helpers(lines, keycodes): for group, codes in temp.items(): lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key'] hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] - lines.append(f'#define IS_{ _translate_group(group).upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})') + lines.append(f'#define IS_{_translate_group(group).upper()}_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})') lines.append('') lines.append('// Switch statement Helpers') for group, codes in temp.items(): lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key'] hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] - name = f'{ _translate_group(group).upper() }_KEYCODE_RANGE' - lines.append(f'#define { name.ljust(35) } {lo} ... {hi}') + name = f'{_translate_group(group).upper()}_KEYCODE_RANGE' + lines.append(f'#define {name.ljust(35)} {lo} ... {hi}') def _generate_aliases(lines, keycodes): diff --git a/lib/python/qmk/cli/generate/keymap_h.py b/lib/python/qmk/cli/generate/keymap_h.py index a3aaa405c0..10be16391a 100644 --- a/lib/python/qmk/cli/generate/keymap_h.py +++ b/lib/python/qmk/cli/generate/keymap_h.py @@ -43,6 +43,13 @@ def generate_keymap_h(cli): keymap_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '// clang-format off'] + # Allow a potential keymap level keymap.h for items like user defined keycode aliases used within a keymap.json keymap + keymap_h_lines += [ + '#if __has_include_next("keymap.h")', + '# include_next "keymap.h"', + '#endif', + ] + keymap_json = parse_configurator_json(cli.args.filename) if 'keycodes' in keymap_json and keymap_json['keycodes'] is not None: diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index 358a22fd1d..4a1085c588 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -31,7 +31,7 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict): try: rules_value = kb_info_json[info_key] - except KeyError: + except (KeyError, IndexError): return None if key_type in ['array', 'list']: @@ -96,11 +96,10 @@ def generate_rules_mk(cli): rules_mk_lines.append(generate_rule('SPLIT_TRANSPORT', 'custom')) # Set CUSTOM_MATRIX, if needed - if kb_info_json.get('matrix_pins', {}).get('custom'): - if kb_info_json.get('matrix_pins', {}).get('custom_lite'): - rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite')) - else: - rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes')) + if kb_info_json.get('matrix_pins', {}).get('custom_lite'): + rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite')) + elif kb_info_json.get('matrix_pins', {}).get('custom'): + rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes')) if converter: rules_mk_lines.append(generate_rule('CONVERT_TO', converter)) diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py index fd87df3617..d32b9d00ca 100644 --- a/lib/python/qmk/cli/generate/version_h.py +++ b/lib/python/qmk/cli/generate/version_h.py @@ -1,13 +1,17 @@ """Used by the make system to generate version.h for use in code. """ from time import strftime +from pathlib import Path from milc import cli +from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE + from qmk.path import normpath from qmk.commands import dump_lines from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.util import triplet_to_bcd TIME_FMT = '%Y-%m-%d-%H:%M:%S' @@ -32,14 +36,21 @@ def generate_version_h(cli): git_dirty = False git_version = "NA" git_qmk_hash = "NA" + git_bcd_version = "0x00000000" chibios_version = "NA" chibios_contrib_version = "NA" + userspace_version = "NA" else: git_dirty = git_is_dirty() git_version = git_get_version() or current_time git_qmk_hash = git_get_qmk_hash() or "Unknown" - chibios_version = git_get_version("chibios", "os") or current_time - chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time + git_bcd_version = triplet_to_bcd(git_version) + chibios_version = git_get_version(Path('lib') / "chibios", "os") or current_time + chibios_contrib_version = git_get_version(Path('lib') / "chibios-contrib") or current_time + if HAS_QMK_USERSPACE: + userspace_version = git_get_version(Path(QMK_USERSPACE).resolve()) or current_time + else: + userspace_version = "None" # Build the version.h file. version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once'] @@ -48,9 +59,11 @@ def generate_version_h(cli): f""" #define QMK_VERSION "{git_version}" #define QMK_BUILDDATE "{current_time}" +#define QMK_VERSION_BCD {git_bcd_version} #define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}" #define CHIBIOS_VERSION "{chibios_version}" #define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" +#define QMK_USERSPACE_VERSION "{userspace_version}" """ ) diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py index 26f7f0269d..f13e4e91cc 100755 --- a/lib/python/qmk/cli/info.py +++ b/lib/python/qmk/cli/info.py @@ -24,7 +24,6 @@ def _strip_api_content(info_json): info_json.pop('platform_key', None) info_json.pop('processor_type', None) info_json.pop('protocol', None) - info_json.pop('config_h_features', None) info_json.pop('keymaps', None) info_json.pop('keyboard_folder', None) info_json.pop('parse_errors', None) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 484ddb5bd9..f9f40e74a8 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -8,7 +8,7 @@ from milc import cli from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.info import info_json from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards, list_keyboards -from qmk.keymap import locate_keymap, list_keymaps +from qmk.keymap import locate_keymap, list_keymaps, is_valid_keymap_name from qmk.path import keyboard from qmk.git import git_get_ignored_files from qmk.c_parse import c_source_files, preprocess_c_file @@ -22,15 +22,10 @@ INVALID_KM_NAMES = ['via', 'vial'] def _list_defaultish_keymaps(kb): """Return default like keymaps for a given keyboard """ - defaultish = ['ansi', 'iso'] + keymaps = set(list_keymaps(kb, include_userspace=False, include_community=False)) - # This is only here to flag it as "testable", so it doesn't fly under the radar during PR - defaultish.extend(INVALID_KM_NAMES) - - keymaps = set() - for x in list_keymaps(kb, include_userspace=False): - if x in defaultish or x.startswith('default'): - keymaps.add(x) + # Ensure that at least a 'default' keymap always exists + keymaps.add('default') return keymaps @@ -173,14 +168,6 @@ def _handle_invalid_features(kb, info): return ok -def _handle_invalid_config(kb, info): - """Check for invalid keyboard level config - """ - if info.get('url') == "": - cli.log.warning(f'{kb}: Invalid keyboard level config detected - Optional field "url" should not be empty.') - return True - - def _chibios_conf_includenext_check(target): """Check the ChibiOS conf.h for the correct inclusion of the next conf.h """ @@ -234,29 +221,35 @@ def _handle_duplicating_code_defaults(kb, info): defaults_map = json_load(Path('data/mappings/info_defaults.hjson')) dotty_info = dotty(info) + ok = True + for key, v_default in _collect_dotted_output(defaults_map): v_info = dotty_info.get(key) if v_default == v_info: - cli.log.warning(f'{kb}: Option "{key}" duplicates default value of "{v_default}"') + cli.log.error(f'{kb}: Option "{key}" duplicates default value of "{v_default}"') + ok = False - return True + return ok def keymap_check(kb, km): """Perform the keymap level checks. """ - ok = True keymap_path = locate_keymap(kb, km) if not keymap_path: - ok = False cli.log.error("%s: Can't find %s keymap.", kb, km) - return ok + return False if km in INVALID_KM_NAMES: - ok = False cli.log.error("%s: The keymap %s should not exist!", kb, km) - return ok + return False + + ok = True + + if not is_valid_keymap_name(km): + cli.log.error(f'{kb}/{km}: Keymap name must contain only a-z, 0-9 and _!') + ok = False # Additional checks invalid_files = git_get_ignored_files(keymap_path.parent.as_posix()) @@ -291,9 +284,6 @@ def keyboard_check(kb): # noqa C901 if not _handle_invalid_features(kb, kb_info): ok = False - if not _handle_invalid_config(kb, kb_info): - ok = False - if not _handle_duplicating_code_defaults(kb, kb_info): ok = False @@ -304,6 +294,10 @@ def keyboard_check(kb): # noqa C901 cli.log.error(f'{kb}: The file "{file}" should not exist!') ok = False + if not _get_readme_files(kb): + cli.log.error(f'{kb}: Is missing a readme.md file!') + ok = False + for file in _get_readme_files(kb): if _is_invalid_readme(file): cli.log.error(f'{kb}: The file "{file}" still contains template tokens!') @@ -356,6 +350,11 @@ def lint(cli): cli.print_help() return False + # milc config handling of user.keymap breaks running lint without keymap argument + # so we have to disable that while still allowing a default to be set with lint.keymap + if 'keymap' not in cli.config_source.lint.keys() and cli.config.lint.keymap: + cli.config.lint.keymap = None + if isinstance(cli.config.lint.keyboard, str): # if provided via config - string not array keyboard_list = [cli.config.lint.keyboard] @@ -371,12 +370,12 @@ def lint(cli): # Determine keymaps to also check if cli.args.keymap == 'all': keymaps = list_keymaps(kb) + elif cli.args.keymap: + keymaps = {cli.args.keymap} elif cli.config.lint.keymap: keymaps = {cli.config.lint.keymap} else: keymaps = _list_defaultish_keymaps(kb) - # Ensure that at least a 'default' keymap always exists - keymaps.add('default') ok = True diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index e71280f482..732d778e7a 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -23,7 +23,7 @@ def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, os.environ.setdefault('SKIP_SCHEMA_VALIDATION', '1') make_cmd = find_make() - builddir = Path(QMK_FIRMWARE) / '.build' + builddir = Path(env.get("BUILD_DIR")) if env.get("BUILD_DIR") is not None else Path(QMK_FIRMWARE) / '.build' makefile = builddir / 'parallel_kb_builds.mk' if dry_run: @@ -71,8 +71,8 @@ print_failures: all_targets command = target.compile_command(**env) command[0] = '+@$(MAKE)' # Override the make so that we can use jobserver to handle parallelism extra_args = '_'.join([f"{k}_{v}" for k, v in target.extra_args.items()]) - build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + build_log = f"{builddir}/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + failed_log = f"{builddir}/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" target_suffix = '' if len(extra_args) > 0: build_log += f".{extra_args}" @@ -101,9 +101,9 @@ all_targets: {target_filename}{target_suffix}_binary # yapf: disable f.write( f"""\ - @rm -rf "{QMK_FIRMWARE}/.build/{target_filename}.elf" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/{target_filename}.map" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/obj_{target_filename}" || true + @rm -rf "{builddir}/{target_filename}.elf" 2>/dev/null || true + @rm -rf "{builddir}/{target_filename}.map" 2>/dev/null || true + @rm -rf "{builddir}/obj_{target_filename}" || true """# noqa ) # yapf: enable diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py index bd02acf9c8..dd1d06e189 100644 --- a/lib/python/qmk/cli/new/keyboard.py +++ b/lib/python/qmk/cli/new/keyboard.py @@ -184,7 +184,10 @@ def prompt_dev_board(): prompt_heading_subheading("Select Development Board", """For more information, see: https://docs.qmk.fm/compatible_microcontrollers""") - return choice("Development Board?", dev_boards, default=dev_boards.index("promicro")) + filtered_dev_boards = dev_boards.copy() + filtered_dev_boards.append("none of the above") + + return choice("Development Board?", filtered_dev_boards, default=len(filtered_dev_boards) - 1) def prompt_mcu(): @@ -222,10 +225,14 @@ def new_keyboard(cli): real_name = cli.args.realname or cli.config.new_keyboard.name if cli.args.realname or cli.config.new_keyboard.name else prompt_name(user_name) default_layout = cli.args.layout if cli.args.layout else prompt_layout() + mcu = None if cli.args.type: mcu = cli.args.type else: - mcu = prompt_dev_board() if prompt_mcu_type() else prompt_mcu() + if prompt_mcu_type(): + mcu = prompt_dev_board() + if not mcu or mcu == "none of the above": + mcu = prompt_mcu() config = {} if mcu in dev_boards: diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index 4d19a726a4..2c088aa903 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -57,7 +57,13 @@ def prompt_keyboard(): If you're unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. Keyboard Name? """ - return question(prompt) + kb_name = question(prompt) + + try: + # Resolve any keyboard alias + return keyboard_folder(kb_name) + except ValueError: + return None def prompt_user(): @@ -105,9 +111,7 @@ def new_keymap(cli): converter = cli.config.new_keymap.converter if cli.args.skip_converter or cli.config.new_keymap.converter else prompt_converter(kb_name) # check directories - try: - kb_name = keyboard_folder(kb_name) - except ValueError: + if not is_keyboard(kb_name): cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} does not exist! Please choose a valid name.') return False @@ -126,7 +130,7 @@ def new_keymap(cli): return False if not validate_keymap_name(user_name): - cli.log.error('Keymap names must contain only {fg_cyan}a-z{fg_reset}, {fg_cyan}0-9{fg_reset} and {fg_cyan}_{fg_reset}! Please choose a different name.') + cli.log.error(f'Keymap name {{fg_cyan}}{user_name}{{fg_reset}} must contain only {{fg_cyan}}a-z{{fg_reset}}, {{fg_cyan}}0-9{{fg_reset}} and {{fg_cyan}}_{{fg_reset}}! Please choose a different name.') return False if keymap_path_new.exists(): diff --git a/lib/python/qmk/cli/userspace/add.py b/lib/python/qmk/cli/userspace/add.py index 0d6f32cd11..eea70efb95 100644 --- a/lib/python/qmk/cli/userspace/add.py +++ b/lib/python/qmk/cli/userspace/add.py @@ -47,6 +47,7 @@ def userspace_add(cli): from qmk.cli.new.keymap import new_keymap cli.config.new_keymap.keyboard = cli.args.keyboard cli.config.new_keymap.keymap = cli.args.keymap + cli.args.skip_converter = True if new_keymap(cli) is not False: userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap, build_env=build_env) else: diff --git a/lib/python/qmk/cli/userspace/doctor.py b/lib/python/qmk/cli/userspace/doctor.py index 2b7e29aa7e..7c016e5a2f 100644 --- a/lib/python/qmk/cli/userspace/doctor.py +++ b/lib/python/qmk/cli/userspace/doctor.py @@ -2,10 +2,12 @@ # SPDX-License-Identifier: GPL-2.0-or-later from milc import cli -from qmk.constants import QMK_FIRMWARE +from qmk.constants import QMK_FIRMWARE, HAS_QMK_USERSPACE from qmk.cli.doctor.main import userspace_tests @cli.subcommand('Checks userspace configuration.') def userspace_doctor(cli): userspace_tests(QMK_FIRMWARE) + + return 0 if HAS_QMK_USERSPACE else 1 diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index 22d9133d65..2705bb7d5b 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -136,6 +136,10 @@ def _find_serial_port(vid, pid): return None +def _flash_bootloadhid(file): + cli.run(['bootloadHID', '-r', file], capture_output=False) + + def _flash_caterina(details, file): port = _find_serial_port(details[0], details[1]) if port: @@ -153,11 +157,12 @@ def _flash_atmel_dfu(mcu, file): def _flash_hid_bootloader(mcu, details, file): + cmd = None if details == 'halfkay': - if shutil.which('teensy-loader-cli'): - cmd = 'teensy-loader-cli' - elif shutil.which('teensy_loader_cli'): + if shutil.which('teensy_loader_cli'): cmd = 'teensy_loader_cli' + elif shutil.which('teensy-loader-cli'): + cmd = 'teensy-loader-cli' # Use 'hid_bootloader_cli' for QMK HID and as a fallback for HalfKay if not cmd: @@ -217,6 +222,8 @@ def flasher(mcu, file): time.sleep(1) if bl == 'atmel-dfu': _flash_atmel_dfu(details, file) + elif bl == 'bootloadhid': + _flash_bootloadhid(file) elif bl == 'caterina': if _flash_caterina(details, file): return (True, "The Caterina bootloader was found but is not writable. Check 'qmk doctor' output for advice.") diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index 9d567475d8..f61e0bdb47 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -13,9 +13,6 @@ def git_get_version(repo_dir='.', check_dir='.'): """ git_describe_cmd = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags'] - if repo_dir != '.': - repo_dir = Path('lib') / repo_dir - if check_dir != '.': check_dir = repo_dir / check_dir @@ -27,7 +24,7 @@ def git_get_version(repo_dir='.', check_dir='.'): else: cli.log.warning(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') - print(git_describe.stderr) + cli.log.warning(git_describe.stderr) return None return None @@ -121,6 +118,18 @@ def git_check_repo(): return dot_git_dir.is_dir() +def git_check_safe(repo_dir='.'): + """Checks if a directory passes the git safe.directory checks + """ + if repo_dir != '.': + git_cmd = ['git', '-C', repo_dir, 'status'] + else: + git_cmd = ['git', 'status'] + + status = cli.run(git_cmd) + return '--add safe.directory' not in status.stderr + + def git_check_deviation(active_branch): """Return True if branch has custom commits """ diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index f63228b2bc..44fed0843c 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -5,6 +5,7 @@ import os from pathlib import Path import jsonschema from dotty_dict import dotty +from enum import IntFlag from milc import cli @@ -14,11 +15,20 @@ from qmk.json_schema import deep_update, json_load, validate from qmk.keyboard import config_h, rules_mk from qmk.commands import parse_configurator_json from qmk.makefile import parse_rules_mk_file -from qmk.math import compute +from qmk.math_ops import compute from qmk.util import maybe_exit, truthy -true_values = ['1', 'on', 'yes'] -false_values = ['0', 'off', 'no'] +TRUE_VALUES = ['true', '1', 'on', 'yes'] +FALSE_VALUES = ['false', '0', 'off', 'no'] + + +class LedFlags(IntFlag): + ALL = 0xFF + NONE = 0x00 + MODIFIER = 0x01 + UNDERGLOW = 0x02 + KEYLIGHT = 0x04 + INDICATOR = 0x08 def _keyboard_in_layout_name(keyboard, layout): @@ -201,6 +211,32 @@ def _validate_encoders(keyboard, info_data): _log_error(info_data, f'Layout "{layout_name}" contains {reason} encoder index {encoder_index}.') +def _validate_bootmagic(keyboard, info_data): + """Non schema checks + """ + # bootmagic matrix indexes must be in range + rows = info_data.get('matrix_size', {}).get('rows', 0) + cols = info_data.get('matrix_size', {}).get('cols', 0) + + bootmagic_row, bootmagic_col = info_data.get('bootmagic', {}).get('matrix', [0, 0]) + bootmagic_right_row, bootmagic_right_col = info_data.get('split', {}).get('bootmagic', {}).get('matrix', [rows // 2, cols - 1]) + + if not info_data.get('split', {}).get('enabled', False): + if bootmagic_row >= rows: + _log_error(info_data, f'Bootmagic row ({bootmagic_row}) must be in the range 0-{rows - 1}') + if bootmagic_col >= cols: + _log_error(info_data, f'Bootmagic col ({bootmagic_col}) must be in the range 0-{cols - 1}') + else: + if bootmagic_row >= rows // 2: + _log_error(info_data, f'Bootmagic left row ({bootmagic_row}) must be in the range 0-{rows // 2 - 1}') + if bootmagic_col >= cols: + _log_error(info_data, f'Bootmagic left col ({bootmagic_col}) must be in the range 0-{cols - 1}') + if bootmagic_right_row < rows // 2 or bootmagic_right_row >= rows: + _log_error(info_data, f'Bootmagic right row ({bootmagic_right_row}) must be in the range {rows // 2}-{rows - 1}') + if bootmagic_right_col >= cols: + _log_error(info_data, f'Bootmagic right col ({bootmagic_right_col}) must be in the range 0-{cols - 1}') + + def _validate(keyboard, info_data): """Perform various validation on the provided info.json data """ @@ -213,6 +249,7 @@ def _validate(keyboard, info_data): _validate_layouts(keyboard, info_data) _validate_keycodes(keyboard, info_data) _validate_encoders(keyboard, info_data) + _validate_bootmagic(keyboard, info_data) except jsonschema.ValidationError as e: json_path = '.'.join([str(p) for p in e.absolute_path]) @@ -282,14 +319,11 @@ def _extract_features(info_data, rules): for key, value in rules.items(): if key.endswith('_ENABLE'): key = '_'.join(key.split('_')[:-1]).lower() - value = True if value.lower() in true_values else False if value.lower() in false_values else value + value = True if value.lower() in TRUE_VALUES else False if value.lower() in FALSE_VALUES else value if key in ['lto']: continue - if 'config_h_features' not in info_data: - info_data['config_h_features'] = {} - if 'features' not in info_data: info_data['features'] = {} @@ -297,7 +331,24 @@ def _extract_features(info_data, rules): _log_warning(info_data, 'Feature %s is specified in both info.json (%s) and rules.mk (%s). The rules.mk value wins.' % (key, info_data['features'], value)) info_data['features'][key] = value - info_data['config_h_features'][key] = value + + return info_data + + +def _extract_matrix_rules(info_data, rules): + """Find all the features enabled in rules.mk. + """ + if rules.get('CUSTOM_MATRIX', 'no') != 'no': + if 'matrix_pins' in info_data and 'custom' in info_data['matrix_pins']: + _log_warning(info_data, 'Custom Matrix is specified in both info.json and rules.mk, the rules.mk values win.') + + if 'matrix_pins' not in info_data: + info_data['matrix_pins'] = {} + + if rules['CUSTOM_MATRIX'] == 'lite': + info_data['matrix_pins']['custom_lite'] = True + else: + info_data['matrix_pins']['custom'] = True return info_data @@ -369,19 +420,6 @@ def _extract_direct_matrix(direct_pins): return direct_pin_array -def _extract_audio(info_data, config_c): - """Populate data about the audio configuration - """ - audio_pins = [] - - for pin in 'B5', 'B6', 'B7', 'C4', 'C5', 'C6': - if config_c.get(f'{pin}_AUDIO'): - audio_pins.append(pin) - - if audio_pins: - info_data['audio'] = {'pins': audio_pins} - - def _extract_encoders_values(config_c, postfix=''): """Common encoder extraction logic """ @@ -552,7 +590,6 @@ def _extract_matrix_info(info_data, config_c): row_pins = config_c.get('MATRIX_ROW_PINS', '').replace('{', '').replace('}', '').strip() col_pins = config_c.get('MATRIX_COL_PINS', '').replace('{', '').replace('}', '').strip() direct_pins = config_c.get('DIRECT_PINS', '').replace(' ', '')[1:-1] - info_snippet = {} if 'MATRIX_ROWS' in config_c and 'MATRIX_COLS' in config_c: if 'matrix_size' in info_data: @@ -567,26 +604,20 @@ def _extract_matrix_info(info_data, config_c): if 'matrix_pins' in info_data and 'cols' in info_data['matrix_pins'] and 'rows' in info_data['matrix_pins']: _log_warning(info_data, 'Matrix pins are specified in both info.json and config.h, the config.h values win.') - info_snippet['cols'] = _extract_pins(col_pins) - info_snippet['rows'] = _extract_pins(row_pins) + if 'matrix_pins' not in info_data: + info_data['matrix_pins'] = {} + + info_data['matrix_pins']['cols'] = _extract_pins(col_pins) + info_data['matrix_pins']['rows'] = _extract_pins(row_pins) if direct_pins: if 'matrix_pins' in info_data and 'direct' in info_data['matrix_pins']: _log_warning(info_data, 'Direct pins are specified in both info.json and config.h, the config.h values win.') - info_snippet['direct'] = _extract_direct_matrix(direct_pins) + if 'matrix_pins' not in info_data: + info_data['matrix_pins'] = {} - if config_c.get('CUSTOM_MATRIX', 'no') != 'no': - if 'matrix_pins' in info_data and 'custom' in info_data['matrix_pins']: - _log_warning(info_data, 'Custom Matrix is specified in both info.json and config.h, the config.h values win.') - - info_snippet['custom'] = True - - if config_c['CUSTOM_MATRIX'] == 'lite': - info_snippet['custom_lite'] = True - - if info_snippet: - info_data['matrix_pins'] = info_snippet + info_data['matrix_pins']['direct'] = _extract_direct_matrix(direct_pins) return info_data @@ -613,7 +644,7 @@ def _config_to_json(key_type, config_value): elif key_type in ['bool', 'flag']: if isinstance(config_value, bool): return config_value - return config_value in true_values + return config_value in TRUE_VALUES elif key_type == 'hex': return '0x' + config_value[2:].upper() @@ -674,7 +705,6 @@ def _extract_config_h(info_data, config_c): # Pull data that easily can't be mapped in json _extract_matrix_info(info_data, config_c) - _extract_audio(info_data, config_c) _extract_secure_unlock(info_data, config_c) _extract_split_handedness(info_data, config_c) _extract_split_serial(info_data, config_c) @@ -755,6 +785,7 @@ def _extract_rules_mk(info_data, rules): # Merge in config values that can't be easily mapped _extract_features(info_data, rules) + _extract_matrix_rules(info_data, rules) return info_data @@ -800,6 +831,25 @@ def _extract_led_config(info_data, keyboard): if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None): info_data[feature]['led_count'] = len(info_data[feature]['layout']) + if info_data[feature].get('layout', None) and not info_data[feature].get('flag_steps', None): + flags = {LedFlags.ALL, LedFlags.NONE} + default_flags = {LedFlags.MODIFIER | LedFlags.KEYLIGHT, LedFlags.UNDERGLOW} + + # if only a single flag is used, assume only all+none flags + kb_flags = set(x.get('flags', LedFlags.NONE) for x in info_data[feature]['layout']) + if len(kb_flags) > 1: + # check if any part of LED flag is with the defaults + unique_flags = set() + for candidate in default_flags: + if any(candidate & flag for flag in kb_flags): + unique_flags.add(candidate) + + # if we still have a single flag, assume only all+none + if len(unique_flags) > 1: + flags.update(unique_flags) + + info_data[feature]['flag_steps'] = sorted([int(flag) for flag in flags], reverse=True) + return info_data @@ -1087,4 +1137,17 @@ def get_modules(keyboard, keymap_filename): if keymap_json: modules.extend(keymap_json.get('modules', [])) - return list(dict.fromkeys(modules)) # remove dupes + # remove duplicates while maintaining the current order + ret = list(dict.fromkeys(modules)) + + # We currently do not support duplicate module names + # e.g.: ['foo/hello_world', 'bar/hello_world'] will fail + seen = set() + for module in ret: + module_slug = Path(module).name.lower() + if module_slug in seen: + duplicates = list(filter(lambda m: module_slug == Path(m).name.lower(), ret)) + raise Exception(f'Duplicate module name detected: "{module_slug}" - {duplicates}') + seen.add(module_slug) + + return ret diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py index e8bcf48996..6bad820a76 100755 --- a/lib/python/qmk/json_encoders.py +++ b/lib/python/qmk/json_encoders.py @@ -178,9 +178,9 @@ class KeymapJSONEncoder(QMKJSONEncoder): else: layer[-1].append(f'"{key}"') - layer = [f"{self.indent_str*indent_level}{', '.join(row)}" for row in layer] + layer = [f"{self.indent_str * indent_level}{', '.join(row)}" for row in layer] - return f"{self.indent_str}[\n{newline.join(layer)}\n{self.indent_str*self.indentation_level}]" + return f"{self.indent_str}[\n{newline.join(layer)}\n{self.indent_str * self.indentation_level}]" elif self.primitives_only(obj): return "[" + ", ".join(self.encode(element) for element in obj) + "]" diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 254dc62309..e8534492c9 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -175,8 +175,9 @@ def keyboard_completer(prefix, action, parser, parsed_args): return list_keyboards() +@lru_cache(maxsize=None) def list_keyboards(): - """Returns a list of all keyboards + """Returns a list of all keyboards. """ # We avoid pathlib here because this is performance critical code. kb_wildcard = os.path.join(base_path, "**", 'keyboard.json') @@ -184,6 +185,9 @@ def list_keyboards(): found = map(_find_name, paths) + # Convert to posix paths for consistency + found = map(lambda x: str(Path(x).as_posix()), found) + return sorted(set(found)) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 4cf07f59d6..fa8f5df5f9 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -1,7 +1,7 @@ """Functions that help you work with QMK keymaps. """ -import json import sys +import re from pathlib import Path from subprocess import DEVNULL @@ -32,6 +32,7 @@ __INCLUDES__ __KEYMAP_GOES_HERE__ __ENCODER_MAP_GOES_HERE__ +__DIP_SWITCH_MAP_GOES_HERE__ __MACRO_OUTPUT_GOES_HERE__ #ifdef OTHER_KEYMAP_C @@ -66,6 +67,19 @@ def _generate_encodermap_table(keymap_json): return lines +def _generate_dipswitchmap_table(keymap_json): + lines = [ + '#if defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)', + 'const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {', + ] + for index, switch in enumerate(keymap_json['dip_switches']): + if index != 0: + lines[-1] = lines[-1] + ',' + lines.append(f' DIP_SWITCH_OFF_ON({_strip_any(switch["off"])}, {_strip_any(switch["on"])})') + lines.extend(['};', '#endif // defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)']) + return lines + + def _generate_macros_function(keymap_json): macro_txt = [ 'bool process_record_user(uint16_t keycode, keyrecord_t *record) {', @@ -226,6 +240,13 @@ def is_keymap_dir(keymap, c=True, json=True, additional_files=None): return True +def is_valid_keymap_name(name): + """Returns True if the given keymap name contains only valid characters. + """ + regex = re.compile(r'^[a-z0-9][a-z0-9_]+$') + return bool(regex.match(name)) + + def generate_json(keymap, keyboard, layout, layers, macros=None): """Returns a `keymap.json` for the specified keyboard, layout, and layers. @@ -286,6 +307,12 @@ def generate_c(keymap_json): encodermap = '\n'.join(encoder_txt) new_keymap = new_keymap.replace('__ENCODER_MAP_GOES_HERE__', encodermap) + dipswitchmap = '' + if 'dip_switches' in keymap_json and keymap_json['dip_switches'] is not None: + dip_txt = _generate_dipswitchmap_table(keymap_json) + dipswitchmap = '\n'.join(dip_txt) + new_keymap = new_keymap.replace('__DIP_SWITCH_MAP_GOES_HERE__', dipswitchmap) + macros = '' if 'macros' in keymap_json and keymap_json['macros'] is not None: macro_txt = _generate_macros_function(keymap_json) @@ -300,40 +327,6 @@ def generate_c(keymap_json): return new_keymap -def write_file(keymap_filename, keymap_content): - keymap_filename.parent.mkdir(parents=True, exist_ok=True) - keymap_filename.write_text(keymap_content) - - cli.log.info('Wrote keymap to {fg_cyan}%s', keymap_filename) - - return keymap_filename - - -def write_json(keyboard, keymap, layout, layers, macros=None): - """Generate the `keymap.json` and write it to disk. - - Returns the filename written to. - - Args: - keyboard - The name of the keyboard - - keymap - The name of the keymap - - layout - The LAYOUT macro this keymap uses. - - layers - An array of arrays describing the keymap. Each item in the inner array should be a string that is a valid QMK keycode. - """ - keymap_json = generate_json(keyboard, keymap, layout, layers, macros=None) - keymap_content = json.dumps(keymap_json) - keymap_file = qmk.path.keymaps(keyboard)[0] / keymap / 'keymap.json' - - return write_file(keymap_file, keymap_content) - - def locate_keymap(keyboard, keymap, force_layout=None): """Returns the path to a keymap for a specific keyboard. """ @@ -396,7 +389,7 @@ def is_keymap_target(keyboard, keymap): return False -def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False, include_userspace=True): +def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False, include_userspace=True, include_community=True): """List the available keymaps for a keyboard. Args: @@ -418,6 +411,9 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa include_userspace When set to True, also search userspace for available keymaps + include_community + When set to True, also search community layouts folder for available keymaps + Returns: a sorted list of valid keymap names. """ @@ -441,21 +437,22 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa kb_path = kb_path.parent - # Check community layouts as a fallback - info = info_json(keyboard) + if include_community: + # Check community layouts as a fallback + info = info_json(keyboard) - community_parents = list(Path('layouts').glob('*/')) - if has_userspace and (Path(QMK_USERSPACE) / "layouts").exists(): - community_parents.append(Path(QMK_USERSPACE) / "layouts") + community_parents = list(Path('layouts').glob('*/')) + if has_userspace and (Path(QMK_USERSPACE) / "layouts").exists(): + community_parents.append(Path(QMK_USERSPACE) / "layouts") - for community_parent in community_parents: - for layout in info.get("community_layouts", []): - cl_path = community_parent / layout - if cl_path.is_dir(): - for keymap in cl_path.iterdir(): - if is_keymap_dir(keymap, c, json, additional_files): - keymap = keymap if fullpath else keymap.name - names.add(keymap) + for community_parent in community_parents: + for layout in info.get("community_layouts", []): + cl_path = community_parent / layout + if cl_path.is_dir(): + for keymap in cl_path.iterdir(): + if is_keymap_dir(keymap, c, json, additional_files): + keymap = keymap if fullpath else keymap.name + names.add(keymap) return sorted(names) diff --git a/lib/python/qmk/math.py b/lib/python/qmk/math_ops.py similarity index 92% rename from lib/python/qmk/math.py rename to lib/python/qmk/math_ops.py index 88dc4a300c..1f14b18f4e 100644 --- a/lib/python/qmk/math.py +++ b/lib/python/qmk/math_ops.py @@ -23,8 +23,8 @@ def compute(expr): def _eval(node): - if isinstance(node, ast.Num): # - return node.n + if isinstance(node, ast.Constant): # + return node.value elif isinstance(node, ast.BinOp): # return operators[type(node.op)](_eval(node.left), _eval(node.right)) elif isinstance(node, ast.UnaryOp): # e.g., -1 diff --git a/lib/python/qmk/painter.py b/lib/python/qmk/painter.py index ed0372c163..1a07f7442c 100644 --- a/lib/python/qmk/painter.py +++ b/lib/python/qmk/painter.py @@ -129,7 +129,7 @@ def _render_image_metadata(metadata): px = size["width"] * size["height"] # FIXME: May need need more chars here too - deltas.append(f"// Frame {i:3d}: ({l:3d}, {t:3d}) - ({r:3d}, {b:3d}) >> {delta_px:4d}/{px:4d} pixels ({100*delta_px/px:.2f}%)") + deltas.append(f"// Frame {i:3d}: ({l:3d}, {t:3d}) - ({r:3d}, {b:3d}) >> {delta_px:4d}/{px:4d} pixels ({100 * delta_px / px:.2f}%)") if deltas: lines.append("// Areas on delta frames") diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 1739689adf..3a8fdce1e8 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -144,6 +144,12 @@ def normpath(path): return Path(os.environ['ORIG_CWD']) / path +def is_relative_to(file, other): + """Provide normpath behavior to Path.is_relative_to + """ + return normpath(file).is_relative_to(normpath(other)) + + def unix_style_path(path): """Converts a Windows-style path with drive letter to a Unix path. @@ -177,5 +183,17 @@ class FileType(argparse.FileType): """normalize and check exists otherwise magic strings like '-' for stdin resolve to bad paths """ + # TODO: This should not return both Path and TextIOWrapper as consumers + # assume that they can call Path.as_posix without checking type + + # Handle absolute paths and relative paths to CWD norm = normpath(string) - return norm if norm.exists() else super().__call__(string) + if norm.exists(): + return norm + + # Handle relative paths to QMK_HOME + relative = Path(string) + if relative.exists(): + return relative + + return super().__call__(string) diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index dd659fe0f2..2716459989 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -159,6 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + #ifdef OTHER_KEYMAP_C # include OTHER_KEYMAP_C #endif // OTHER_KEYMAP_C @@ -196,6 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + #ifdef OTHER_KEYMAP_C # include OTHER_KEYMAP_C #endif // OTHER_KEYMAP_C diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index 80cc679b00..818560e861 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -27,6 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + #ifdef OTHER_KEYMAP_C # include OTHER_KEYMAP_C #endif // OTHER_KEYMAP_C @@ -41,6 +42,3 @@ def test_generate_json_pytest_basic(): def test_parse_keymap_c(): parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/pytest/basic/keymaps/default/keymap.c') assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]} - - -# FIXME(skullydazed): Add a test for qmk.keymap.write that mocks up an FD. diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py index 8f99410e1d..6da684a577 100644 --- a/lib/python/qmk/util.py +++ b/lib/python/qmk/util.py @@ -3,9 +3,12 @@ import contextlib import multiprocessing import sys +import re from milc import cli +TRIPLET_PATTERN = re.compile(r'^(\d+)\.(\d+)\.(\d+)') + maybe_exit_should_exit = True maybe_exit_reraise = False @@ -96,3 +99,10 @@ def parallel_map(*args, **kwargs): # before the results are returned. Returning a list ensures results are # materialised before any worker pool is shut down. return list(map_fn(*args, **kwargs)) + + +def triplet_to_bcd(ver: str): + m = TRIPLET_PATTERN.match(ver) + if not m: + return '0x00000000' + return f'0x{int(m.group(1)):02d}{int(m.group(2)):02d}{int(m.group(3)):04d}' diff --git a/modules/qmk/split_data_sync/config.h b/modules/qmk/split_data_sync/config.h new file mode 100644 index 0000000000..22a8505489 --- /dev/null +++ b/modules/qmk/split_data_sync/config.h @@ -0,0 +1,5 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define SPLIT_TRANSACTION_IDS_MODULE_SPLIT_DATA_SYNC EXAMPLE_MODULE_SYNC_A diff --git a/modules/qmk/split_data_sync/qmk_module.json b/modules/qmk/split_data_sync/qmk_module.json new file mode 100644 index 0000000000..286cf29248 --- /dev/null +++ b/modules/qmk/split_data_sync/qmk_module.json @@ -0,0 +1,5 @@ +{ + "module_name": "Example split data sync", + "maintainer": "QMK Maintainers", + "license": "GPL-2.0-or-later" +} diff --git a/modules/qmk/split_data_sync/split_data_sync.c b/modules/qmk/split_data_sync/split_data_sync.c new file mode 100644 index 0000000000..4b70f7808a --- /dev/null +++ b/modules/qmk/split_data_sync/split_data_sync.c @@ -0,0 +1,43 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include "debug.h" +#include "timer.h" +#include "transactions.h" +#include "community_modules.h" + +ASSERT_COMMUNITY_MODULES_MIN_API_VERSION(1, 1, 2); + +typedef struct _master_to_slave_t { + int m2s_data; +} master_to_slave_t; + +typedef struct _slave_to_master_t { + int s2m_data; +} slave_to_master_t; + +static void module_sync_slave_handler(uint8_t in_buflen, const void *in_data, uint8_t out_buflen, void *out_data) { + const master_to_slave_t *m2s = (const master_to_slave_t *)in_data; + slave_to_master_t *s2m = (slave_to_master_t *)out_data; + s2m->s2m_data = m2s->m2s_data + 5; // whatever comes in, add 5 so it can be sent back +} + +void keyboard_post_init_split_data_sync(void) { + transaction_register_rpc(EXAMPLE_MODULE_SYNC_A, module_sync_slave_handler); +} + +void housekeeping_task_split_data_sync(void) { + if (is_keyboard_master()) { + // Interact with slave every 500ms + static uint32_t last_sync = 0; + if (timer_elapsed32(last_sync) > 500) { + master_to_slave_t m2s = {6}; + slave_to_master_t s2m = {0}; + if (transaction_rpc_exec(EXAMPLE_MODULE_SYNC_A, sizeof(m2s), &m2s, sizeof(s2m), &s2m)) { + last_sync = timer_read32(); + dprintf("Slave value: %d\n", s2m.s2m_data); // this will now be 11, as the slave adds 5 + } else { + dprint("Slave sync failed!\n"); + } + } + } +} diff --git a/platforms/avr/_print.h b/platforms/avr/_print.h index bf8247c2f3..7a6ff65d42 100644 --- a/platforms/avr/_print.h +++ b/platforms/avr/_print.h @@ -24,3 +24,9 @@ #pragma once #include "avr/xprintf.h" + +// TODO: Remove xprintf due to conflicts/assumptions on direct library usage +#undef xprintf + +// Export main print function +#define print_printf(fmt, ...) __xprintf(PSTR(fmt), ##__VA_ARGS__) diff --git a/platforms/avr/drivers/analog.c b/platforms/avr/drivers/analog.c index a68c6a371d..b2cb97223c 100644 --- a/platforms/avr/drivers/analog.c +++ b/platforms/avr/drivers/analog.c @@ -96,7 +96,7 @@ int16_t adc_read(uint8_t mux) { #if defined(MUX4) ADMUX = aref | (mux & (_BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0))); #else - ADMUX = aref | (mux & (_BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0))); + ADMUX = aref | (mux & (_BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0))); #endif // Start the conversion diff --git a/platforms/avr/drivers/glcdfont.c b/platforms/avr/drivers/glcdfont.c deleted file mode 100644 index 57a21965de..0000000000 --- a/platforms/avr/drivers/glcdfont.c +++ /dev/null @@ -1,23 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x18, 0x3C, 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24, 0x18, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x41, 0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, 0x36, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, 0x14, 0x63, 0x03, 0x04, 0x78, 0x04, 0x03, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x38, 0x44, 0x44, 0x44, 0x28, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x48, 0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, 0x30, 0x40, 0x3C, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x1E, 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40, 0x20, 0x7A, 0x38, 0x54, 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41, 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut - 0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, 0x1E, 0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, 0x54, 0x54, 0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, 0x7C, 0x41, 0x00, 0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, 0x40, 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut - 0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, 0x54, 0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, 0x49, 0x49, 0x32, 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut - 0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, 0x42, 0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut - 0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, 0x7E, 0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, 0x29, 0xF6, 0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, 0x79, 0x41, 0x00, 0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, 0x32, 0x38, 0x40, 0x40, 0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, 0x7D, 0x0D, 0x19, 0x31, 0x7D, 0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, 0x29, 0x29, 0x29, 0x26, 0x30, 0x48, 0x4D, 0x40, 0x20, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A, 0x14, 0x08, 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code - 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block - 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x17, 0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0xF4, 0x14, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44, 0x38, 0x44, 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta - 0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, 0x55, 0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, 0x20, 0x1E, 0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, 0xA5, 0x99, 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, 0x4C, 0x30, 0x4A, 0x4D, 0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, 0xBC, 0x62, 0x5A, 0x46, 0x3D, 0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x44, 0x44, 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44, 0x40, 0x40, 0x44, 0x4A, 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0, 0x80, 0xFF, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36, 0x24, 0x36, 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F, 0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP -}; diff --git a/platforms/avr/drivers/i2c_master.c b/platforms/avr/drivers/i2c_master.c index 9136f4a7b9..e5caa995cf 100644 --- a/platforms/avr/drivers/i2c_master.c +++ b/platforms/avr/drivers/i2c_master.c @@ -207,6 +207,32 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16 return (status < 0) ? status : I2C_STATUS_SUCCESS; } +i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout) { + i2c_status_t status = i2c_start(address | I2C_ACTION_WRITE, timeout); + + for (uint16_t i = 0; i < tx_length && status >= 0; i++) { + status = i2c_write(tx_data[i], timeout); + } + + for (uint16_t i = 0; i < (rx_length - 1) && status >= 0; i++) { + status = i2c_read_ack(timeout); + if (status >= 0) { + rx_data[i] = status; + } + } + + if (status >= 0) { + status = i2c_read_nack(timeout); + if (status >= 0) { + rx_data[(rx_length - 1)] = status; + } + } + + i2c_stop(); + + return status; +} + i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) { i2c_status_t status = i2c_start(devaddr | 0x00, timeout); if (status >= 0) { diff --git a/platforms/avr/drivers/ws2812_bitbang.c b/platforms/avr/drivers/ws2812_bitbang.c index 183690c967..c4a854d9ee 100644 --- a/platforms/avr/drivers/ws2812_bitbang.c +++ b/platforms/avr/drivers/ws2812_bitbang.c @@ -26,7 +26,7 @@ #include "ws2812.h" #include "pin_defs.h" -#define pinmask(pin) (_BV((pin)&0xF)) +#define pinmask(pin) (_BV((pin) & 0xF)) /* This routine writes an array of bytes with RGB values to the Dataout pin @@ -105,7 +105,7 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t w_nop8 #endif #if (w1_nops & 16) - w_nop16 + w_nop16 #endif " sbrs %1,7 \n\t" // '1' [03] '0' [02] " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low @@ -123,7 +123,7 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t w_nop8 #endif #if (w2_nops & 16) - w_nop16 + w_nop16 #endif " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high #if (w3_nops & 1) @@ -139,7 +139,7 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t w_nop8 #endif #if (w3_nops & 16) - w_nop16 + w_nop16 #endif " dec %0 \n\t" // '1' [+2] '0' [+2] @@ -173,7 +173,7 @@ void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void ws2812_flush(void) { - uint8_t masklo = ~(pinmask(WS2812_DI_PIN)) & PORTx_ADDRESS(WS2812_DI_PIN); + uint8_t masklo = ~(pinmask(WS2812_DI_PIN))&PORTx_ADDRESS(WS2812_DI_PIN); uint8_t maskhi = pinmask(WS2812_DI_PIN) | PORTx_ADDRESS(WS2812_DI_PIN); ws2812_sendarray_mask((uint8_t *)ws2812_leds, WS2812_LED_COUNT * sizeof(ws2812_led_t), masklo, maskhi); diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk index 51731f0aa8..bfb292224c 100644 --- a/platforms/avr/flash.mk +++ b/platforms/avr/flash.mk @@ -5,10 +5,10 @@ # Autodetect teensy loader ifndef TEENSY_LOADER_CLI - ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI ?= teensy-loader-cli - else + ifneq (, $(shell which teensy_loader_cli 2>/dev/null)) TEENSY_LOADER_CLI ?= teensy_loader_cli + else + TEENSY_LOADER_CLI ?= teensy-loader-cli endif endif diff --git a/platforms/avr/gpio.h b/platforms/avr/gpio.h index 4c09619772..9b5b3edc68 100644 --- a/platforms/avr/gpio.h +++ b/platforms/avr/gpio.h @@ -24,17 +24,17 @@ typedef uint8_t pin_t; /* Operation of GPIO by pin. */ -#define gpio_set_pin_input(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) -#define gpio_set_pin_input_high(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) +#define gpio_set_pin_input(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin) & 0xF), PORTx_ADDRESS(pin) &= ~_BV((pin) & 0xF)) +#define gpio_set_pin_input_high(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin) & 0xF), PORTx_ADDRESS(pin) |= _BV((pin) & 0xF)) #define gpio_set_pin_input_low(pin) STATIC_ASSERT(0, "GPIO pulldowns in input mode are not available on AVR") -#define gpio_set_pin_output_push_pull(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF)) +#define gpio_set_pin_output_push_pull(pin) (DDRx_ADDRESS(pin) |= _BV((pin) & 0xF)) #define gpio_set_pin_output_open_drain(pin) STATIC_ASSERT(0, "Open-drain outputs are not available on AVR") #define gpio_set_pin_output(pin) gpio_set_pin_output_push_pull(pin) -#define gpio_write_pin_high(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) -#define gpio_write_pin_low(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) +#define gpio_write_pin_high(pin) (PORTx_ADDRESS(pin) |= _BV((pin) & 0xF)) +#define gpio_write_pin_low(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin) & 0xF)) #define gpio_write_pin(pin, level) ((level) ? gpio_write_pin_high(pin) : gpio_write_pin_low(pin)) -#define gpio_read_pin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF))) +#define gpio_read_pin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin) & 0xF))) -#define gpio_toggle_pin(pin) (PORTx_ADDRESS(pin) ^= _BV((pin)&0xF)) +#define gpio_toggle_pin(pin) (PORTx_ADDRESS(pin) ^= _BV((pin) & 0xF)) diff --git a/platforms/avr/hardware_id.c b/platforms/avr/hardware_id.c index 302a800e0b..9fb2aaed68 100644 --- a/platforms/avr/hardware_id.c +++ b/platforms/avr/hardware_id.c @@ -13,7 +13,7 @@ __attribute__((weak)) hardware_id_t get_hardware_id(void) { hardware_id_t id = {0}; for (uint8_t i = 0; i < 10; i += 1) { - ((uint8_t*)&id)[i] = boot_signature_byte_get(i + 0x0E); + ((uint8_t *)&id)[i] = boot_signature_byte_get(i + 0x0E); } return id; } diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h index a21fd7bd12..129e275ca8 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h index 131c847661..cd2152da08 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h index b381aed4fd..d119d133ff 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h index e0af4a276b..0c514c2b88 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h index 1208563aa1..8e2d16843a 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h index 394e750256..21871350c6 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h index 07399ad2f7..d29ab85c36 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h index e1d45ca487..4489bed5c1 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h index f05762c9b4..b06d96b5d7 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h @@ -15,7 +15,6 @@ */ #pragma once -#define STM32_HSECLK 16000000 // The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix: #define BOARD_OTG_NOVBUSSENS diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h index 362327efde..9af5c14d52 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h @@ -13,6 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#pragma once #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h index 566c146c25..45ee3ef56e 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -48,7 +48,7 @@ #define STM32_CLOCK48_REQUIRED TRUE #define STM32_SW STM32_SW_PLL #define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLM_VALUE 8 +#define STM32_PLLM_VALUE 4 #define STM32_PLLN_VALUE 180 #define STM32_PLLP_VALUE 2 #define STM32_PLLQ_VALUE 7 @@ -58,7 +58,7 @@ #define STM32_PLLI2SP_VALUE 4 #define STM32_PLLI2SQ_VALUE 4 #define STM32_PLLSAIN_VALUE 192 -#define STM32_PLLSAIM_VALUE 8 +#define STM32_PLLSAIM_VALUE 4 #define STM32_PLLSAIP_VALUE 8 #define STM32_PLLSAIQ_VALUE 4 #define STM32_HPRE STM32_HPRE_DIV1 diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h index 80726e0308..c13e69c7cd 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -73,6 +73,8 @@ #define STM32_PPRE STM32_PPRE_DIV1 #define STM32_MCOSEL STM32_MCOSEL_NOCLOCK #define STM32_MCOPRE STM32_MCOPRE_DIV1 +#define STM32_MCO2SEL STM32_MCOSEL_NOCLOCK +#define STM32_MCO2PRE STM32_MCOPRE_DIV1 #define STM32_LSCOSEL STM32_LSCOSEL_NOCLOCK /* @@ -107,9 +109,8 @@ #define STM32_IRQ_EXTI4_15_PRIORITY 3 #define STM32_IRQ_EXTI1921_PRIORITY 3 -#define STM32_IRQ_USART1_PRIORITY 2 -#define STM32_IRQ_USART2_LP2_PRIORITY 2 -#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 +#define STM32_IRQ_I2C1_PRIORITY 3 +#define STM32_IRQ_I2C2_3_PRIORITY 3 #define STM32_IRQ_TIM1_UP_PRIORITY 1 #define STM32_IRQ_TIM1_CC_PRIORITY 1 @@ -122,6 +123,12 @@ #define STM32_IRQ_TIM16_PRIORITY 1 #define STM32_IRQ_TIM17_PRIORITY 1 +#define STM32_IRQ_USART1_PRIORITY 2 +#define STM32_IRQ_USART2_LP2_PRIORITY 2 +#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 + +#define STM32_IRQ_USB1_UCPD1_2_PRIORITY 3 + /* * ADC driver system settings. */ @@ -166,16 +173,12 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 1 #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* @@ -296,7 +299,6 @@ * USB driver system settings. */ #define STM32_USB_USE_USB1 TRUE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 #define STM32_USB_USE_ISOCHRONOUS FALSE #define STM32_USB_USE_FAST_COPY TRUE #define STM32_USB_HOST_WAKEUP_DURATION 2 diff --git a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h index 0537ee9235..39d594d585 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -119,6 +119,10 @@ #define STM32_IRQ_FDCAN1_PRIORITY 10 +#define STM32_IRQ_I2C1_PRIORITY 5 +#define STM32_IRQ_I2C2_PRIORITY 5 +#define STM32_IRQ_I2C3_PRIORITY 5 + #define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 #define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 #define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 @@ -201,15 +205,9 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 diff --git a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h index d6385da624..94bef9ea54 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -127,6 +127,11 @@ #define STM32_IRQ_FDCAN2_PRIORITY 10 #define STM32_IRQ_FDCAN3_PRIORITY 10 +#define STM32_IRQ_I2C1_PRIORITY 5 +#define STM32_IRQ_I2C2_PRIORITY 5 +#define STM32_IRQ_I2C3_PRIORITY 5 +#define STM32_IRQ_I2C4_PRIORITY 5 + #define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 #define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 #define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 @@ -184,6 +189,7 @@ #define STM32_CAN_USE_FDCAN1 FALSE #define STM32_CAN_USE_FDCAN2 FALSE #define STM32_CAN_USE_FDCAN3 FALSE +#define STM32_CAN_FDCAN_PRESC FDCAN_CONFIG_CKDIV_PDIV_20 /* * DAC driver system settings. @@ -241,18 +247,10 @@ #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C3_IRQ_PRIORITY 5 -#define STM32_I2C_I2C4_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h index 09096c3977..2b74c34ff5 100644 --- a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -276,6 +276,7 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE +#define STM32_I2C_USE_I2C5 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY @@ -285,14 +286,18 @@ #define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C4_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY #define STM32_I2C_I2C4_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_I2C_I2C5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_IRQ_PRIORITY 5 #define STM32_I2C_I2C2_IRQ_PRIORITY 5 #define STM32_I2C_I2C3_IRQ_PRIORITY 5 #define STM32_I2C_I2C4_IRQ_PRIORITY 5 +#define STM32_I2C_I2C5_IRQ_PRIORITY 5 #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C4_DMA_PRIORITY 3 +#define STM32_I2C_I2C5_DMA_PRIORITY 3 #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* diff --git a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h index 47f1598b74..ee3a84f0ec 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h index 6962a340c5..7f7cb74beb 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h index e92b7aeb98..2cdd9bc80e 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,19 +49,6 @@ #define CH_CFG_SMP_MODE FALSE #endif -/** - * @brief Kernel hardening level. - * @details This option is the level of functional-safety checks enabled - * in the kerkel. The meaning is: - * - 0: No checks, maximum performance. - * - 1: Reasonable checks. - * - 2: All checks. - * . - */ -#if !defined(CH_CFG_HARDENING_LEVEL) -#define CH_CFG_HARDENING_LEVEL 0 -#endif - /** @} */ /*===========================================================================*/ @@ -373,16 +360,6 @@ #define CH_CFG_USE_MAILBOXES TRUE #endif -/** - * @brief Memory checks APIs. - * @details If enabled then the memory checks APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCHECKS) -#define CH_CFG_USE_MEMCHECKS TRUE -#endif - /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h index 4a22e818e2..4e8154820b 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,10 +29,17 @@ #define HALCONF_H #define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_8_4_ +#define _CHIBIOS_HAL_CONF_VER_9_1_ #include +/** + * @brief Enables the HAL safety subsystem. + */ +#if !defined(HAL_USE_SAFETY) || defined(__DOXYGEN__) +#define HAL_USE_SAFETY FALSE +#endif + /** * @brief Enables the PAL subsystem. */ @@ -305,6 +312,14 @@ /* I2C driver related settings. */ /*===========================================================================*/ +/** + * @brief Slave mode API enable switch. + * @note The low level driver must support this capability. + */ +#if !defined(I2C_ENABLE_SLAVE_MODE) +#define I2C_ENABLE_SLAVE_MODE FALSE +#endif + /** * @brief Enables the mutual exclusion APIs on the I2C bus. */ diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h index cab4c29cf6..8a27ba5537 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h index d4b870f8e4..3ccc668641 100644 --- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h +++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/common/configs/chconf.h b/platforms/chibios/boards/common/configs/chconf.h index 6381298ef7..e4c65bdcf7 100644 --- a/platforms/chibios/boards/common/configs/chconf.h +++ b/platforms/chibios/boards/common/configs/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,19 +49,6 @@ #define CH_CFG_SMP_MODE FALSE #endif -/** - * @brief Kernel hardening level. - * @details This option is the level of functional-safety checks enabled - * in the kerkel. The meaning is: - * - 0: No checks, maximum performance. - * - 1: Reasonable checks. - * - 2: All checks. - * . - */ -#if !defined(CH_CFG_HARDENING_LEVEL) -#define CH_CFG_HARDENING_LEVEL 0 -#endif - /** @} */ /*===========================================================================*/ @@ -373,16 +360,6 @@ #define CH_CFG_USE_MAILBOXES FALSE #endif -/** - * @brief Memory checks APIs. - * @details If enabled then the memory checks APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCHECKS) -#define CH_CFG_USE_MEMCHECKS TRUE -#endif - /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/common/configs/halconf.h b/platforms/chibios/boards/common/configs/halconf.h index b0ccbc1f2f..9ab6dc3fd6 100644 --- a/platforms/chibios/boards/common/configs/halconf.h +++ b/platforms/chibios/boards/common/configs/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,10 +29,17 @@ #define HALCONF_H #define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_8_4_ +#define _CHIBIOS_HAL_CONF_VER_9_1_ #include +/** + * @brief Enables the HAL safety subsystem. + */ +#if !defined(HAL_USE_SAFETY) || defined(__DOXYGEN__) +#define HAL_USE_SAFETY FALSE +#endif + /** * @brief Enables the PAL subsystem. */ @@ -305,6 +312,14 @@ /* I2C driver related settings. */ /*===========================================================================*/ +/** + * @brief Slave mode API enable switch. + * @note The low level driver must support this capability. + */ +#if !defined(I2C_ENABLE_SLAVE_MODE) +#define I2C_ENABLE_SLAVE_MODE FALSE +#endif + /** * @brief Enables the mutual exclusion APIs on the I2C bus. */ diff --git a/platforms/chibios/bootloaders/kiibohd.c b/platforms/chibios/bootloaders/kiibohd.c index 09a4d49b78..eb61cd2d0a 100644 --- a/platforms/chibios/bootloaders/kiibohd.c +++ b/platforms/chibios/bootloaders/kiibohd.c @@ -30,4 +30,21 @@ __attribute__((weak)) void bootloader_jump(void) { // request reset SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk; } -__attribute__((weak)) void mcu_reset(void) {} + +__attribute__((weak)) void mcu_reset(void) { + /* Ensure all outstanding memory operations complete */ + __DSB(); + __ISB(); + + /* Request system reset (preserve PRIGROUP) */ + uint32_t aircr = SCB->AIRCR; + aircr &= ~SCB_AIRCR_VECTKEY_Msk; + aircr |= SCB_AIRCR_VECTKEY_WRITEMAGIC; + aircr |= SCB_AIRCR_SYSRESETREQ_Msk; + SCB->AIRCR = aircr; + + /* Wait for reset to occur */ + while (true) { + __NOP(); + } +} diff --git a/platforms/chibios/bootloaders/rp2040.c b/platforms/chibios/bootloaders/rp2040.c index 524d13e636..2e991625c9 100644 --- a/platforms/chibios/bootloaders/rp2040.c +++ b/platforms/chibios/bootloaders/rp2040.c @@ -30,7 +30,7 @@ void enter_bootloader_mode_if_requested(void) {} // Needs to be located in a RAM section that is never initialized on boot to // preserve its value on reset static volatile uint32_t __attribute__((section(".ram0.bootloader_magic"))) magic_location; -const uint32_t magic_token = 0xCAFEB0BA; +const uint32_t magic_token = 0xCAFEB0BA; // We can not use the __early_init / enter_bootloader_mode_if_requested hook as // we depend on an already initialized system with usable memory regions and diff --git a/platforms/chibios/drivers/analog.c b/platforms/chibios/drivers/analog.c index a916cc9a1d..93005c2555 100644 --- a/platforms/chibios/drivers/analog.c +++ b/platforms/chibios/drivers/analog.c @@ -145,7 +145,7 @@ static ADCConversionGroup adcConversionGroup = { .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) # if !defined(STM32F1XX) && !defined(GD32VF103) && !defined(WB32F3G71xx) && !defined(WB32FQ95xx) && !defined(AT32F415) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif # if defined(AT32F415) .spt2 = ADC_SPT2_CSPT_AN0(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN1(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN2(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN3(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN4(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN5(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN6(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN7(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN8(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN9(ADC_SAMPLING_RATE), diff --git a/platforms/chibios/drivers/audio_dac_basic.c b/platforms/chibios/drivers/audio_dac_basic.c index 99b938e610..053584ec87 100644 --- a/platforms/chibios/drivers/audio_dac_basic.c +++ b/platforms/chibios/drivers/audio_dac_basic.c @@ -77,9 +77,9 @@ GPTConfig gpt7cfg1 = {.frequency = AUDIO_DAC_SAMPLE_RATE, static void gpt_audio_state_cb(GPTDriver *gptp); GPTConfig gptStateUpdateCfg = {.frequency = 10, - .callback = gpt_audio_state_cb, - .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */ - .dier = 0U}; + .callback = gpt_audio_state_cb, + .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */ + .dier = 0U}; static const DACConfig dac_conf_ch1 = {.init = AUDIO_DAC_OFF_VALUE, .datamode = DAC_DHRM_12BIT_RIGHT}; static const DACConfig dac_conf_ch2 = {.init = AUDIO_DAC_OFF_VALUE, .datamode = DAC_DHRM_12BIT_RIGHT}; diff --git a/platforms/chibios/drivers/audio_pwm_software.c b/platforms/chibios/drivers/audio_pwm_software.c index f48323900b..015bdbee1a 100644 --- a/platforms/chibios/drivers/audio_pwm_software.c +++ b/platforms/chibios/drivers/audio_pwm_software.c @@ -63,8 +63,8 @@ void channel_1_set_frequency(float freq) { pwmChangePeriod(&AUDIO_PWM_DRIVER, period); pwmEnableChannel(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, - // adjust the duty-cycle so that the output is for 'note_timbre' duration HIGH - PWM_PERCENTAGE_TO_WIDTH(&AUDIO_PWM_DRIVER, (100 - note_timbre) * 100)); + // adjust the duty-cycle so that the output is for 'note_timbre' duration HIGH + PWM_PERCENTAGE_TO_WIDTH(&AUDIO_PWM_DRIVER, (100 - note_timbre) * 100)); } float channel_1_get_frequency(void) { @@ -117,8 +117,8 @@ GPTConfig gptCFG = { and the .interval counts from 64 downwards - audio_update_state is called just often enough to not miss anything */ - .frequency = 60 * 64, - .callback = gpt_callback, + .frequency = 60 * 64, + .callback = gpt_callback, }; void audio_driver_initialize_impl(void) { diff --git a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c index 9cf956b2f7..9edbc1d2ed 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c +++ b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c @@ -482,7 +482,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *p = (const uint8_t *)addr; - uint8_t * dest = (uint8_t *)buf; + uint8_t *dest = (uint8_t *)buf; while (len--) { *dest++ = eeprom_read_byte(p++); } @@ -507,7 +507,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); @@ -538,7 +538,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { } void eeprom_update_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); diff --git a/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c b/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c index 9857ac046b..737804b59f 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c +++ b/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c @@ -204,7 +204,9 @@ void print_eeprom(void) { } xprintf("%04x", i); } - if (i % 8 == 0) print(" "); + if (i % 8 == 0) { + print(" "); + } xprintf(" %02x", DataBuf[i]); if ((i + 1) % 16 == 0) { @@ -577,7 +579,7 @@ void eeprom_driver_erase(void) { void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *src = (const uint8_t *)addr; - uint8_t * dest = (uint8_t *)buf; + uint8_t *dest = (uint8_t *)buf; /* Check word alignment */ if (len && (uintptr_t)src % 2) { @@ -606,7 +608,7 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - uint8_t * dest = (uint8_t *)addr; + uint8_t *dest = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; /* Check word alignment */ diff --git a/platforms/chibios/drivers/flash/legacy_flash_ops.c b/platforms/chibios/drivers/flash/legacy_flash_ops.c index fe5ad64764..ca3fbdd740 100644 --- a/platforms/chibios/drivers/flash/legacy_flash_ops.c +++ b/platforms/chibios/drivers/flash/legacy_flash_ops.c @@ -171,7 +171,7 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) { FLASH->CR |= FLASH_CR_PSIZE_0; #endif FLASH->CR |= FLASH_CR_PG; - *(__IO uint16_t*)Address = Data; + *(__IO uint16_t *)Address = Data; /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation(ProgramTimeout); if (status != FLASH_TIMEOUT) { diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 20850859b5..a44051b82a 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -160,6 +160,12 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16 return i2c_epilogue(status); } +i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout) { + i2cStart(&I2C_DRIVER, &i2cconfig); + msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (address >> 1), tx_data, tx_length, rx_data, rx_length, TIME_MS2I(timeout)); + return i2c_epilogue(status); +} + i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) { i2cStart(&I2C_DRIVER, &i2cconfig); diff --git a/platforms/chibios/drivers/serial_usart.c b/platforms/chibios/drivers/serial_usart.c index becf3afbce..0d3d01042f 100644 --- a/platforms/chibios/drivers/serial_usart.c +++ b/platforms/chibios/drivers/serial_usart.c @@ -27,12 +27,12 @@ static QMKSerialConfig serial_config = { # else .baud = (SERIAL_USART_SPEED), # endif - .cr1 = (SERIAL_USART_CR1), - .cr2 = (SERIAL_USART_CR2), + .cr1 = (SERIAL_USART_CR1), + .cr2 = (SERIAL_USART_CR2), # if !defined(SERIAL_USART_FULL_DUPLEX) - .cr3 = ((SERIAL_USART_CR3) | USART_CR3_HDSEL) /* activate half-duplex mode */ + .cr3 = ((SERIAL_USART_CR3) | USART_CR3_HDSEL) /* activate half-duplex mode */ # else - .cr3 = (SERIAL_USART_CR3) + .cr3 = (SERIAL_USART_CR3) # endif }; #elif defined(MCU_RP) /* Raspberry Pi MCUs */ diff --git a/platforms/chibios/drivers/uart_sio.c b/platforms/chibios/drivers/uart_sio.c index fc12f0abed..dcf0cef20f 100644 --- a/platforms/chibios/drivers/uart_sio.c +++ b/platforms/chibios/drivers/uart_sio.c @@ -82,13 +82,13 @@ static SIOConfig sioConfig = { }; #else static SIOConfig sioConfig = { - .baud = SIO_DEFAULT_BITRATE, + .baud = SIO_DEFAULT_BITRATE, # if defined(MCU_STM32) && defined(USE_USARTV3) .presc = USART_PRESC1, # endif - .cr1 = UART_CR1, - .cr2 = UART_CR2, - .cr3 = UART_CR3, + .cr1 = UART_CR1, + .cr2 = UART_CR2, + .cr3 = UART_CR3, }; #endif diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c index fec4646a5b..7fa57bc738 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c @@ -20,7 +20,7 @@ static flash_sector_t first_sector = UINT16_MAX; #endif // WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT static flash_sector_t sector_count = UINT16_MAX; -static BaseFlash * flash; +static BaseFlash *flash; static bool flash_erased_is_one; static volatile bool is_issuing_read = false; static volatile bool ecc_error_occurred = false; @@ -84,13 +84,23 @@ bool backing_store_init(void) { #else // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) // Work out how many sectors we want to use, working backwards from the end of the flash - flash_sector_t last_sector = desc->sectors_count - WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT; + flash_sector_t last_sector = desc->sectors_count; + + // skip sectors that are past the actual flash size + while (flashGetSectorOffset(flash, last_sector - 1) >= flash_size) { + if (--last_sector == 0) { + chSysHalt("No sector in available flash range"); + } + } + + if (WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT >= last_sector) { + chSysHalt("Last sector intended to be used with wear_leveling is beyond available flash descriptor range"); + } + + last_sector -= WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT; + for (flash_sector_t i = 0; i < last_sector; ++i) { first_sector = last_sector - i - 1; - if (flashGetSectorOffset(flash, first_sector) >= flash_size) { - last_sector = first_sector; - continue; - } counter += flashGetSectorSize(flash, first_sector); if (counter >= (WEAR_LEVELING_BACKING_SIZE)) { sector_count = last_sector - first_sector; @@ -99,6 +109,10 @@ bool backing_store_init(void) { } } + if (counter < WEAR_LEVELING_BACKING_SIZE) { + chSysHalt("Not enough flash is available for the requested wear_leveling size"); + } + #endif // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) return true; diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h index f09f824bd8..2661b54acc 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h @@ -17,7 +17,7 @@ # elif defined(QMK_MCU_FAMILY_WB32) # define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_AT32) -# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c +# define BACKING_STORE_WRITE_SIZE 4 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_STM32) # if defined(STM32_FLASH_LINE_SIZE) // from some family's stm32_registry.h file # define BACKING_STORE_WRITE_SIZE (STM32_FLASH_LINE_SIZE) diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index 50927b849a..144f6e1388 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -89,7 +89,9 @@ /* --- PRIVATE CONSTANTS ---------------------------------------------------- */ -#define WS2812_PWM_TICK_FREQUENCY (CPU_CLOCK / 2) /**< Clock frequency of PWM ticks, must be valid with respect to system clock! */ +#ifndef WS2812_PWM_TICK_FREQUENCY +# define WS2812_PWM_TICK_FREQUENCY (CPU_CLOCK / 2) /**< Clock frequency of PWM ticks, must be valid with respect to system clock! */ +#endif #define WS2812_PWM_PERIOD (WS2812_PWM_TICK_FREQUENCY / WS2812_PWM_FREQUENCY) /**< Clock period in PWM ticks. */ /** @@ -310,7 +312,7 @@ void ws2812_init(void) { palSetLineMode(WS2812_DI_PIN, WS2812_OUTPUT_MODE); // PWM Configuration - //#pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config + // #pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config static const PWMConfig ws2812_pwm_config = { .frequency = WS2812_PWM_TICK_FREQUENCY, .period = WS2812_PWM_PERIOD, // Mit dieser Periode wird UDE-Event erzeugt und ein neuer Wert (Länge WS2812_BIT_N) vom DMA ins CCR geschrieben @@ -328,7 +330,7 @@ void ws2812_init(void) { .dier = TIM_DIER_UDE, // DMA on update event for next period #endif }; - //#pragma GCC diagnostic pop // Restore command-line warning options + // #pragma GCC diagnostic pop // Restore command-line warning options // Configure DMA // dmaInit(); // Joe added this diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index d1792b871b..4ae97aa1c9 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -188,8 +188,7 @@ void ws2812_init(void) { 0, WS2812_SPI_DIVISOR # else - WS2812_SPI_DIVISOR_CR1_BR_X, - 0 + WS2812_SPI_DIVISOR_CR1_BR_X, 0 # endif #else // HAL_SPI_V2 diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index f4db17a58b..0734754834 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -77,10 +77,10 @@ st-flash: $(BUILD_DIR)/$(TARGET).hex sizeafter # Autodetect teensy loader ifndef TEENSY_LOADER_CLI - ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI ?= teensy-loader-cli - else + ifneq (, $(shell which teensy_loader_cli 2>/dev/null)) TEENSY_LOADER_CLI ?= teensy_loader_cli + else + TEENSY_LOADER_CLI ?= teensy-loader-cli endif endif diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index cf9fac251e..b5cbec4431 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -279,7 +279,7 @@ PLATFORM_SRC = \ $(PLATFORMSRC) \ $(BOARDSRC) \ $(STREAMSSRC) \ - $(CHIBIOS)/os/various/syscalls.c \ + $(CHIBIOS)/os/various/newlib_bindings/syscalls.c \ $(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \ $(PLATFORM_COMMON_DIR)/wait.c \ $(PLATFORM_COMMON_DIR)/synchronization_util.c \ diff --git a/platforms/gpio.h b/platforms/gpio.h index 6a87e75b01..a490ad63ff 100644 --- a/platforms/gpio.h +++ b/platforms/gpio.h @@ -20,20 +20,3 @@ #if __has_include_next("gpio.h") # include_next "gpio.h" /* Include the platforms gpio.h */ #endif - -// ======== DEPRECATED DEFINES - DO NOT USE ======== - -#define setPinInput(pin) gpio_set_pin_input(pin) -#define setPinInputHigh(pin) gpio_set_pin_input_high(pin) -#define setPinInputLow(pin) gpio_set_pin_input_low(pin) -#define setPinOutputPushPull(pin) gpio_set_pin_output_push_pull(pin) -#define setPinOutputOpenDrain(pin) gpio_set_pin_output_open_drain(pin) -#define setPinOutput(pin) gpio_set_pin_output_push_pull(pin) - -#define writePinHigh(pin) gpio_write_pin_high(pin) -#define writePinLow(pin) gpio_write_pin_low(pin) -#define writePin(pin, level) gpio_write_pin(pin, level) - -#define readPin(pin) gpio_read_pin(pin) - -#define togglePin(pin) gpio_toggle_pin(pin) diff --git a/platforms/progmem.h b/platforms/progmem.h index 6c4ebcaa01..395aa14309 100644 --- a/platforms/progmem.h +++ b/platforms/progmem.h @@ -6,13 +6,13 @@ # include # define PROGMEM # define PSTR(x) x -# define PGM_P const char* +# define PGM_P const char * # define memcmp_P(s1, s2, n) memcmp(s1, s2, n) # define memcpy_P(dest, src, n) memcpy(dest, src, n) -# define pgm_read_byte(address_short) *((uint8_t*)(address_short)) -# define pgm_read_word(address_short) *((uint16_t*)(address_short)) -# define pgm_read_dword(address_short) *((uint32_t*)(address_short)) -# define pgm_read_ptr(address_short) *((void**)(address_short)) +# define pgm_read_byte(address_short) *((uint8_t *)(address_short)) +# define pgm_read_word(address_short) *((uint16_t *)(address_short)) +# define pgm_read_dword(address_short) *((uint32_t *)(address_short)) +# define pgm_read_ptr(address_short) *((void **)(address_short)) # define strcmp_P(s1, s2) strcmp(s1, s2) # define strcpy_P(dest, src) strcpy(dest, src) # define strlen_P(src) strlen(src) diff --git a/platforms/suspend.c b/platforms/suspend.c index fea23cbd02..4756796ea4 100644 --- a/platforms/suspend.c +++ b/platforms/suspend.c @@ -4,6 +4,9 @@ #include "suspend.h" #include "matrix.h" +extern matrix_row_t matrix_previous[MATRIX_ROWS]; +static matrix_row_t wakeup_matrix[MATRIX_ROWS]; + // TODO: Move to more correct location __attribute__((weak)) void matrix_power_up(void) {} __attribute__((weak)) void matrix_power_down(void) {} @@ -44,8 +47,34 @@ bool suspend_wakeup_condition(void) { matrix_power_up(); matrix_scan(); matrix_power_down(); - for (uint8_t r = 0; r < MATRIX_ROWS; r++) { - if (matrix_get_row(r)) return true; + + bool wakeup = false; + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + wakeup_matrix[row] = matrix_get_row(row); + wakeup |= wakeup_matrix[row] != 0; + } + + return wakeup; +} + +void update_matrix_state_after_wakeup(void) { + matrix_power_up(); + matrix_scan(); + matrix_power_down(); + + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + const matrix_row_t current_row = matrix_get_row(row); + wakeup_matrix[row] |= current_row & ~matrix_previous[row]; + matrix_previous[row] |= current_row; + } +} + +bool keypress_is_wakeup_key(uint8_t row, uint8_t col) { + return (wakeup_matrix[row] & ((matrix_row_t)1 << col)); +} + +void wakeup_matrix_handle_key_event(uint8_t row, uint8_t col, bool pressed) { + if (!pressed) { + wakeup_matrix[row] &= ~((matrix_row_t)1 << col); } - return false; } diff --git a/platforms/suspend.h b/platforms/suspend.h index e4f7f39ddb..3a7f51f9f0 100644 --- a/platforms/suspend.h +++ b/platforms/suspend.h @@ -14,6 +14,10 @@ void suspend_power_down_user(void); void suspend_power_down_kb(void); void suspend_power_down_quantum(void); +bool keypress_is_wakeup_key(uint8_t row, uint8_t col); +void update_matrix_state_after_wakeup(void); +void wakeup_matrix_handle_key_event(uint8_t row, uint8_t col, bool pressed); + #ifndef USB_SUSPEND_WAKEUP_DELAY # define USB_SUSPEND_WAKEUP_DELAY 0 #endif diff --git a/platforms/synchronization_util.h b/platforms/synchronization_util.h index 4969eff478..f4f77fd2db 100644 --- a/platforms/synchronization_util.h +++ b/platforms/synchronization_util.h @@ -10,8 +10,8 @@ void split_shared_memory_unlock(void); # endif #else # if defined(SPLIT_KEYBOARD) -inline void split_shared_memory_lock(void){}; -inline void split_shared_memory_unlock(void){}; +inline void split_shared_memory_lock(void) {}; +inline void split_shared_memory_unlock(void) {}; # endif #endif diff --git a/platforms/test/drivers/audio_pwm_hardware.c b/platforms/test/drivers/audio_pwm_hardware.c index 3a0384117a..dc3b0ff3da 100644 --- a/platforms/test/drivers/audio_pwm_hardware.c +++ b/platforms/test/drivers/audio_pwm_hardware.c @@ -16,5 +16,5 @@ #include "audio.h" void audio_driver_initialize_impl(void) {} -void audio_driver_start_impl() {} -void audio_driver_stop_impl() {} +void audio_driver_start_impl(void) {} +void audio_driver_stop_impl(void) {} diff --git a/platforms/test/eeprom.c b/platforms/test/eeprom.c index d501745e55..193a3bb4ce 100644 --- a/platforms/test/eeprom.c +++ b/platforms/test/eeprom.c @@ -40,7 +40,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *p = (const uint8_t *)addr; - uint8_t * dest = (uint8_t *)buf; + uint8_t *dest = (uint8_t *)buf; while (len--) { *dest++ = eeprom_read_byte(p++); } @@ -61,7 +61,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); @@ -87,7 +87,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { } void eeprom_update_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); diff --git a/platforms/test/eeprom_legacy_emulated_flash_tests.cpp b/platforms/test/eeprom_legacy_emulated_flash_tests.cpp index d2c41fb77d..41b27b621d 100644 --- a/platforms/test/eeprom_legacy_emulated_flash_tests.cpp +++ b/platforms/test/eeprom_legacy_emulated_flash_tests.cpp @@ -52,7 +52,7 @@ extern "C" { #define BYTE_VALUE(addr, value) (((addr) << 8) | (value)) #define WORD_ZERO(addr) (0x8000 | ((addr) >> 1)) #define WORD_ONE(addr) (0xA000 | ((addr) >> 1)) -#define WORD_NEXT(addr) (0xE000 | (((addr)-0x80) >> 1)) +#define WORD_NEXT(addr) (0xE000 | (((addr) - 0x80) >> 1)) class EepromStm32Test : public testing::Test { public: diff --git a/platforms/test/legacy_flash_ops_mock.c b/platforms/test/legacy_flash_ops_mock.c index b9d805cb47..355cdf2b4c 100644 --- a/platforms/test/legacy_flash_ops_mock.c +++ b/platforms/test/legacy_flash_ops_mock.c @@ -35,9 +35,9 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) { if (flash_locked) return FLASH_ERROR_WRP; Address -= (uintptr_t)FlashBuf; if (Address >= MOCK_FLASH_SIZE) return FLASH_BAD_ADDRESS; - uint16_t oldData = *(uint16_t*)&FlashBuf[Address]; + uint16_t oldData = *(uint16_t *)&FlashBuf[Address]; if (oldData == 0xFFFF || Data == 0) { - *(uint16_t*)&FlashBuf[Address] = Data; + *(uint16_t *)&FlashBuf[Address] = Data; return FLASH_COMPLETE; } else { return FLASH_ERROR_PG; diff --git a/platforms/test/platform.mk b/platforms/test/platform.mk index f07c863e69..371ed49d60 100644 --- a/platforms/test/platform.mk +++ b/platforms/test/platform.mk @@ -11,6 +11,10 @@ HEX = EEP = BIN = +# workaround for undefined reference to weak function under mingw +ifneq ($(findstring mingw, ${SYSTEM_TYPE}),) +LTO_ENABLE := yes +endif COMPILEFLAGS += -funsigned-char ifeq ($(findstring clang, ${GCC_VERSION}),) diff --git a/platforms/timer.c b/platforms/timer.c index ba2cf94d2b..2f534f3f1d 100644 --- a/platforms/timer.c +++ b/platforms/timer.c @@ -1,7 +1,11 @@ // Copyright 2023 Sergey Vlasov (@sigprof) // SPDX-License-Identifier: GPL-2.0-or-later -#include "timer.h" +// Use an angle-bracket include so the header is located via the include +// search path rather than source-relative lookup. timer.h uses +// #include_next to chain to the active platform's _timer.h, and that +// only has well-defined semantics when timer.h itself was found via -I. +#include // Generate out-of-line copies for inline functions defined in timer.h. extern inline fast_timer_t timer_read_fast(void); diff --git a/quantum/action.c b/quantum/action.c index dd82c9ec99..9be3fbe344 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -281,9 +281,14 @@ void process_record(keyrecord_t *record) { if (IS_NOEVENT(record->event)) { return; } -#ifdef FLOW_TAP_TERM +#ifdef SPECULATIVE_HOLD + if (record->event.pressed) { + speculative_key_settled(record); + } +#endif // SPECULATIVE_HOLD +#if defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) flow_tap_update_last_event(record); -#endif // FLOW_TAP_TERM +#endif // defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) if (!process_record_quantum(record)) { #ifndef NO_ACTION_ONESHOT @@ -874,7 +879,9 @@ void process_action(keyrecord_t *record, action_t action) { wait_ms(TAP_CODE_DELAY); tap_code(action.layer_tap.code); wait_ms(TAP_CODE_DELAY); - unregister_mods(retro_tap_curr_mods); + // Only unregister the mods that were active at the time of + // the tap and are not independently held by other keys. + unregister_mods(retro_tap_curr_mods & ~curr_mods); # endif } retro_tap_primed = false; diff --git a/quantum/action.h b/quantum/action.h index 7616486c6d..a459c438c1 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -38,7 +38,7 @@ extern "C" { /* tapping count and state */ typedef struct { bool interrupted : 1; - bool reserved2 : 1; + bool speculated : 1; bool reserved1 : 1; bool reserved0 : 1; uint8_t count : 4; diff --git a/quantum/action_code.h b/quantum/action_code.h index d9a575b518..f268bc4ea4 100644 --- a/quantum/action_code.h +++ b/quantum/action_code.h @@ -167,11 +167,11 @@ enum mods_codes { MODS_TAP_TOGGLE = 0x01, }; #define ACTION_KEY(key) ACTION(ACT_MODS, (key)) -#define ACTION_MODS(mods) ACTION(ACT_MODS, ((mods)&0x1f) << 8 | 0) -#define ACTION_MODS_KEY(mods, key) ACTION(ACT_MODS, ((mods)&0x1f) << 8 | (key)) -#define ACTION_MODS_TAP_KEY(mods, key) ACTION(ACT_MODS_TAP, ((mods)&0x1f) << 8 | (key)) -#define ACTION_MODS_ONESHOT(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f) << 8 | MODS_ONESHOT) -#define ACTION_MODS_TAP_TOGGLE(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f) << 8 | MODS_TAP_TOGGLE) +#define ACTION_MODS(mods) ACTION(ACT_MODS, ((mods) & 0x1f) << 8 | 0) +#define ACTION_MODS_KEY(mods, key) ACTION(ACT_MODS, ((mods) & 0x1f) << 8 | (key)) +#define ACTION_MODS_TAP_KEY(mods, key) ACTION(ACT_MODS_TAP, ((mods) & 0x1f) << 8 | (key)) +#define ACTION_MODS_ONESHOT(mods) ACTION(ACT_MODS_TAP, ((mods) & 0x1f) << 8 | MODS_ONESHOT) +#define ACTION_MODS_TAP_TOGGLE(mods) ACTION(ACT_MODS_TAP, ((mods) & 0x1f) << 8 | MODS_TAP_TOGGLE) /** \brief Other Keys */ @@ -210,7 +210,7 @@ enum layer_param_tap_op { OP_SET_CLEAR, OP_ONESHOT, }; -#define ACTION_LAYER_BITOP(op, part, bits, on) ACTION(ACT_LAYER, (op) << 10 | (on) << 8 | (part) << 5 | ((bits)&0x1f)) +#define ACTION_LAYER_BITOP(op, part, bits, on) ACTION(ACT_LAYER, (op) << 10 | (on) << 8 | (part) << 5 | ((bits) & 0x1f)) #define ACTION_LAYER_TAP(layer, key) ACTION(ACT_LAYER_TAP, (layer) << 8 | (key)) /* Default Layer */ #define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER_BIT_SET((layer) / 4, 1 << ((layer) % 4)) diff --git a/quantum/action_layer.c b/quantum/action_layer.c index 5828dcb824..0a088ab5f0 100644 --- a/quantum/action_layer.c +++ b/quantum/action_layer.c @@ -60,7 +60,7 @@ static void default_layer_state_set(layer_state_t state) { * Print out the hex value of the 32-bit default layer state, as well as the value of the highest bit. */ void default_layer_debug(void) { - ac_dprintf("%08hX(%u)", default_layer_state, get_highest_layer(default_layer_state)); + ac_dprintf("%08lX(%u)", (uint32_t)default_layer_state, get_highest_layer(default_layer_state)); } /** \brief Default Layer Set @@ -231,7 +231,7 @@ void layer_xor(layer_state_t state) { * Print out the hex value of the 32-bit layer state, as well as the value of the highest bit. */ void layer_debug(void) { - ac_dprintf("%08hX(%u)", layer_state, get_highest_layer(layer_state)); + ac_dprintf("%08lX(%u)", (uint32_t)layer_state, get_highest_layer(layer_state)); } #endif diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index b105cd60a9..d8069917b4 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -6,8 +6,10 @@ #include "action_tapping.h" #include "action_util.h" #include "keycode.h" +#include "keycode_config.h" #include "quantum_keycodes.h" #include "timer.h" +#include "wait.h" #ifndef NO_ACTION_TAPPING @@ -51,6 +53,21 @@ __attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *re } # endif +# ifdef SPECULATIVE_HOLD +typedef struct { + keypos_t key; + uint8_t mods; +} speculative_key_t; +# define SPECULATIVE_KEYS_SIZE 8 +static speculative_key_t speculative_keys[SPECULATIVE_KEYS_SIZE] = {}; +static uint8_t num_speculative_keys = 0; +static uint8_t prev_speculative_mods = 0; +static uint8_t speculative_mods = 0; + +/** Handler to be called on incoming press events. */ +static void speculative_key_press(keyrecord_t *record); +# endif // SPECULATIVE_HOLD + # if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) # define REGISTERED_TAPS_SIZE 8 // Array of tap-hold keys that have been settled as tapped but not yet released. @@ -102,11 +119,13 @@ __attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyreco # include "process_auto_shift.h" # endif -# if defined(FLOW_TAP_TERM) +# if defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) static uint16_t flow_tap_prev_keycode = KC_NO; static uint16_t flow_tap_prev_time = 0; static bool flow_tap_expired = true; +# endif // defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) +# if defined(FLOW_TAP_TERM) static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time); # endif // defined(FLOW_TAP_TERM) @@ -129,6 +148,13 @@ static void debug_waiting_buffer(void); * FIXME: Needs doc */ void action_tapping_process(keyrecord_t record) { +# ifdef SPECULATIVE_HOLD + prev_speculative_mods = speculative_mods; + if (record.event.pressed) { + speculative_key_press(&record); + } +# endif // SPECULATIVE_HOLD + if (process_tapping(&record)) { if (IS_EVENT(record.event)) { ac_dprintf("processed: "); @@ -145,6 +171,12 @@ void action_tapping_process(keyrecord_t record) { } } +# ifdef SPECULATIVE_HOLD + if (speculative_mods != prev_speculative_mods) { + send_keyboard_report(); + } +# endif // SPECULATIVE_HOLD + // process waiting_buffer if (IS_EVENT(record.event) && waiting_buffer_head != waiting_buffer_tail) { ac_dprintf("---- action_exec: process waiting_buffer -----\n"); @@ -161,11 +193,11 @@ void action_tapping_process(keyrecord_t record) { if (IS_EVENT(record.event)) { ac_dprintf("\n"); } else { -# ifdef FLOW_TAP_TERM +# if defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) if (!flow_tap_expired && TIMER_DIFF_16(record.event.time, flow_tap_prev_time) >= INT16_MAX / 2) { flow_tap_expired = true; } -# endif // FLOW_TAP_TERM +# endif // defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) } } @@ -444,28 +476,28 @@ bool process_tapping(keyrecord_t *keyp) { && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) # endif ) { - // Settle the tapping key as *held*, since - // HOLD_ON_OTHER_KEY_PRESS is enabled for this key. - ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); - process_record(&tapping_key); + // Settle the tapping key as *held*, since + // HOLD_ON_OTHER_KEY_PRESS is enabled for this key. + ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); + process_record(&tapping_key); # if defined(CHORDAL_HOLD) - if (waiting_buffer_tail != waiting_buffer_head && is_tap_record(&waiting_buffer[waiting_buffer_tail])) { - tapping_key = waiting_buffer[waiting_buffer_tail]; - // Pop tail from the queue. - waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; - debug_waiting_buffer(); - } else + if (waiting_buffer_tail != waiting_buffer_head && is_tap_record(&waiting_buffer[waiting_buffer_tail])) { + tapping_key = waiting_buffer[waiting_buffer_tail]; + // Pop tail from the queue. + waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; + debug_waiting_buffer(); + } else +# endif // CHORDAL_HOLD + { + tapping_key = (keyrecord_t){0}; + } + debug_tapping_key(); + +# if defined(CHORDAL_HOLD) + waiting_buffer_process_regular(); # endif // CHORDAL_HOLD - { - tapping_key = (keyrecord_t){0}; } - debug_tapping_key(); - -# if defined(CHORDAL_HOLD) - waiting_buffer_process_regular(); -# endif // CHORDAL_HOLD - } } // enqueue return false; @@ -708,6 +740,158 @@ void waiting_buffer_scan_tap(void) { } } +# ifdef SPECULATIVE_HOLD +static void debug_speculative_keys(void) { + ac_dprintf("mods = { "); + for (int8_t i = 0; i < num_speculative_keys; ++i) { + ac_dprintf("%02X ", speculative_keys[i].mods); + } + ac_dprintf("}, keys = { "); + for (int8_t i = 0; i < num_speculative_keys; ++i) { + ac_dprintf("%02X%02X ", speculative_keys[i].key.row, speculative_keys[i].key.col); + } + ac_dprintf("}\n"); +} + +// Find key in speculative_keys. Returns num_speculative_keys if not found. +static int8_t speculative_keys_find(keypos_t key) { + uint8_t i; + for (i = 0; i < num_speculative_keys; ++i) { + if (KEYEQ(speculative_keys[i].key, key)) { + break; + } + } + return i; +} + +static void speculative_key_press(keyrecord_t *record) { + if (num_speculative_keys >= SPECULATIVE_KEYS_SIZE) { // Overflow! + ac_dprintf("SPECULATIVE KEYS OVERFLOW: IGNORING EVENT\n"); + return; // Don't trigger: speculative_keys is full. + } + if (speculative_keys_find(record->event.key) < num_speculative_keys) { + return; // Don't trigger: key is already in speculative_keys. + } +# ifdef SPECULATIVE_HOLD_FLOW_TERM + if (!flow_tap_expired && TIMER_DIFF_16(record->event.time, flow_tap_prev_time) <= SPECULATIVE_HOLD_FLOW_TERM) { + return; // Don't trigger: within flow term of previous key. + } +# endif // SPECULATIVE_HOLD_FLOW_TERM + + const uint16_t keycode = get_record_keycode(record, false); + if (!IS_QK_MOD_TAP(keycode)) { + return; // Don't trigger: not a mod-tap key. + } + + uint8_t mods = mod_config(QK_MOD_TAP_GET_MODS(keycode)); + const uint8_t active_mods = get_mods() | speculative_mods; +# ifdef SPECULATIVE_HOLD_ONE_KEY + if (active_mods != 0) { + return; // Don't trigger: some mod is already active. + } +# endif // SPECULATIVE_HOLD_ONE_KEY + if ((mods & 0x10) != 0) { // Unpack 5-bit mods to 8-bit representation. + mods <<= 4; + } + if ((~active_mods & mods) == 0) { + return; // Don't trigger: mods are already active. + } + + // Don't do Speculative Hold when there are non-speculated buffered events, + // since that could result in sending keys out of order. + for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { + if (!waiting_buffer[i].tap.speculated) { + return; + } + } + + if (get_speculative_hold(keycode, record)) { + record->tap.speculated = true; + speculative_mods |= mods; + // Remember the keypos and mods associated with this key. + speculative_keys[num_speculative_keys] = (speculative_key_t){ + .key = record->event.key, + .mods = mods, + }; + ++num_speculative_keys; + + ac_dprintf("Speculative Hold: "); + debug_speculative_keys(); + } +} + +uint8_t get_speculative_mods(void) { + return speculative_mods; +} + +__attribute__((weak)) bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + const uint8_t mods = mod_config(QK_MOD_TAP_GET_MODS(keycode)); + return (mods & (MOD_LCTL | MOD_LSFT)) == (mods & (MOD_HYPR)); +} + +void speculative_key_settled(keyrecord_t *record) { + if (num_speculative_keys == 0) { + return; // Early return when there are no active speculative keys. + } + + uint8_t i = speculative_keys_find(record->event.key); + + const uint16_t keycode = get_record_keycode(record, false); + if (IS_QK_MOD_TAP(keycode) && record->tap.count == 0) { // MT hold press. + if (i < num_speculative_keys) { + --num_speculative_keys; + const uint8_t cleared_mods = speculative_keys[i].mods; + + if (num_speculative_keys) { + speculative_mods &= ~cleared_mods; + // Don't call send_keyboard_report() here; allow default + // handling to reapply the mod before the next report. + + // Remove the ith entry from speculative_keys. + for (uint8_t j = i; j < num_speculative_keys; ++j) { + speculative_keys[j] = speculative_keys[j + 1]; + } + } else { + speculative_mods = 0; + } + + ac_dprintf("Speculative Hold: settled %02x, ", cleared_mods); + debug_speculative_keys(); + } + } else { // Tap press event; cancel speculatively-held mod. + if (i >= num_speculative_keys) { + i = 0; + } + + // Clear mods for the ith key and all keys that follow. + uint8_t cleared_mods = 0; + for (uint8_t j = i; j < num_speculative_keys; ++j) { + cleared_mods |= speculative_keys[j].mods; + } + + num_speculative_keys = i; // Remove ith and following entries. + + if ((prev_speculative_mods & cleared_mods) != 0) { +# ifdef DUMMY_MOD_NEUTRALIZER_KEYCODE + neutralize_flashing_modifiers(get_mods() | prev_speculative_mods); +# endif // DUMMY_MOD_NEUTRALIZER_KEYCODE + } + + if (num_speculative_keys) { + speculative_mods &= ~cleared_mods; + } else { + speculative_mods = 0; + } + + send_keyboard_report(); + wait_ms(TAP_CODE_DELAY); + + ac_dprintf("Speculative Hold: canceled %02x, ", cleared_mods); + debug_speculative_keys(); + } +} +# endif // SPECULATIVE_HOLD + # if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) static void registered_taps_add(keypos_t key) { if (num_registered_taps >= REGISTERED_TAPS_SIZE) { @@ -775,7 +959,7 @@ static uint8_t waiting_buffer_find_chordal_hold_tap(void) { uint16_t prev_keycode = get_record_keycode(&tapping_key, false); uint8_t first_tap = WAITING_BUFFER_SIZE; for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { - keyrecord_t * cur = &waiting_buffer[i]; + keyrecord_t *cur = &waiting_buffer[i]; const uint16_t cur_keycode = get_record_keycode(cur, false); if (!cur->event.pressed || !is_mt_or_lt(prev_keycode)) { break; @@ -817,7 +1001,7 @@ static void waiting_buffer_process_regular(void) { } # endif // CHORDAL_HOLD -# ifdef FLOW_TAP_TERM +# if defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) void flow_tap_update_last_event(keyrecord_t *record) { const uint16_t keycode = get_record_keycode(record, false); // Don't update while a tap-hold key is unsettled. @@ -857,7 +1041,9 @@ void flow_tap_update_last_event(keyrecord_t *record) { flow_tap_prev_time = record->event.time; flow_tap_expired = false; } +# endif // defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) +# ifdef FLOW_TAP_TERM static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time) { const uint16_t idle_time = TIMER_DIFF_16(record->event.time, prev_time); if (flow_tap_expired || idle_time >= 500) { @@ -883,6 +1069,13 @@ static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time) return false; } +// Checks both flow_tap_expired flag and elapsed time to determine +// if the key is within the flow tap term. +bool within_flow_tap_term(uint16_t keycode, keyrecord_t *record) { + uint16_t term = get_flow_tap_term(keycode, record, flow_tap_prev_keycode); + return !flow_tap_expired && TIMER_DIFF_16(record->event.time, flow_tap_prev_time) <= term; +} + // By default, enable Flow Tap for the keys in the main alphas area and Space. // This should work reasonably even if the layout is remapped on the host to an // alt layout or international layout (e.g. Dvorak or AZERTY), where these same diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 0cf4aa1200..2245329633 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -46,6 +46,36 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record); bool get_retro_tapping(uint16_t keycode, keyrecord_t *record); bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record); +#ifdef SPECULATIVE_HOLD +/** Gets the currently active speculative mods. */ +uint8_t get_speculative_mods(void); + +/** + * Callback to say if a mod-tap key may be speculatively held. + * + * By default, speculative hold is enabled for mod-tap keys where the mod is + * Ctrl, Shift, and Ctrl+Shift for either hand. + * + * @param keycode Keycode of the mod-tap key. + * @param record Record associated with the mod-tap press event. + * @return True if the mod-tap key may be speculatively held. + */ +bool get_speculative_hold(uint16_t keycode, keyrecord_t *record); + +/** + * Handler to be called on press events after tap-holds are settled. + * + * This function is to be called in process_record() in action.c, that is, just + * after tap-hold events are settled as either tapped or held. When `record` + * corresponds to a speculatively-held key, the speculative mod is cleared. + * + * @param record Record associated with the mod-tap press event. + */ +void speculative_key_settled(keyrecord_t *record); +#else +# define get_speculative_mods() 0 +#endif // SPECULATIVE_HOLD + #ifdef CHORDAL_HOLD /** * Callback to say when a key chord before the tapping term may be held. @@ -167,9 +197,21 @@ bool is_flow_tap_key(uint16_t keycode); */ uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_keycode); +/** + * Checks if the pressed key is within the flow tap term. + * Can be used to avoid triggering combos or other actions within the flow tap term. + * + * @param keycode The keycode of the pressed key. + * @param record The keyrecord of the pressed key. + * @return True if the pressed key is within the flow tap term; false otherwise. + */ +bool within_flow_tap_term(uint16_t keycode, keyrecord_t *record); +#endif // FLOW_TAP_TERM + +#if defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) /** Updates the Flow Tap last key and timer. */ void flow_tap_update_last_event(keyrecord_t *record); -#endif // FLOW_TAP_TERM +#endif // defined(FLOW_TAP_TERM) || defined(SPECULATIVE_HOLD_FLOW_TERM) #ifdef DYNAMIC_TAPPING_TERM_ENABLE extern uint16_t g_tapping_term; diff --git a/quantum/action_util.c b/quantum/action_util.c index e821e113ef..00cec24e3f 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -19,6 +19,7 @@ along with this program. If not, see . #include "debug.h" #include "action_util.h" #include "action_layer.h" +#include "action_tapping.h" #include "timer.h" #include "keycode_config.h" #include @@ -46,9 +47,20 @@ extern inline void clear_keys(void); #ifndef NO_ACTION_ONESHOT static uint8_t oneshot_mods = 0; static uint8_t oneshot_locked_mods = 0; -uint8_t get_oneshot_locked_mods(void) { +/** + * @brief Retrieve current state of locked oneshot modifiers. + * + * @return Current state of the locked oneshot modifier keys as a bitmask. + */ +uint8_t get_oneshot_locked_mods(void) { return oneshot_locked_mods; } +/** + * Same as \ref get_oneshot_locked_mods but returns \ref mod_t for convenience. + */ +mod_t get_oneshot_locked_mod_state(void) { + return (mod_t)get_oneshot_locked_mods(); +} void add_oneshot_locked_mods(uint8_t mods) { if ((oneshot_locked_mods & mods) != mods) { oneshot_locked_mods |= mods; @@ -273,6 +285,10 @@ static uint8_t get_mods_for_report(void) { } #endif +#ifdef SPECULATIVE_HOLD + mods |= get_speculative_mods(); +#endif + #ifdef KEY_OVERRIDE_ENABLE // These need to be last to be able to properly control key overrides mods &= ~suppressed_mods; @@ -326,13 +342,20 @@ void send_keyboard_report(void) { send_6kro_report(); } -/** \brief Get mods +/** + * @brief Retrieve current state of modifiers. * - * FIXME: needs doc + * @return Current state of the modifier keys as a bitmask. */ uint8_t get_mods(void) { return real_mods; } +/** + * Same as \ref get_mods but returns \ref mod_t for convenience. + */ +mod_t get_mod_state(void) { + return (mod_t)get_mods(); +} /** \brief add mods * * FIXME: needs doc @@ -362,13 +385,20 @@ void clear_mods(void) { real_mods = 0; } -/** \brief get weak mods +/** + * @brief Retrieve current state of weak modifiers. * - * FIXME: needs doc + * @return Current state of the weak modifier keys as a bitmask. */ uint8_t get_weak_mods(void) { return weak_mods; } +/** + * Same as \ref get_weak_mods but returns \ref mod_t for convenience. + */ +mod_t get_weak_mod_state(void) { + return (mod_t)get_weak_mods(); +} /** \brief add weak mods * * FIXME: needs doc @@ -423,14 +453,22 @@ void clear_suppressed_override_mods(void) { #endif #ifndef NO_ACTION_ONESHOT -/** \brief get oneshot mods +/** + * @brief Retrieve current state of oneshot modifiers. * - * FIXME: needs doc + * @return Current state of the oneshot modifier keys as a bitmask. */ uint8_t get_oneshot_mods(void) { return oneshot_mods; } +/** + * Same as \ref get_oneshot_mods but returns \ref mod_t for convenience. + */ +mod_t get_oneshot_mod_state(void) { + return (mod_t)get_oneshot_mods(); +} + void add_oneshot_mods(uint8_t mods) { if ((oneshot_mods & mods) != mods) { # if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) diff --git a/quantum/action_util.h b/quantum/action_util.h index d2ecb145be..f3178bba6e 100644 --- a/quantum/action_util.h +++ b/quantum/action_util.h @@ -18,6 +18,8 @@ along with this program. If not, see . #pragma once #include + +#include "compiler_support.h" #include "report.h" #include "modifiers.h" @@ -25,6 +27,21 @@ along with this program. If not, see . extern "C" { #endif +typedef union { + uint8_t raw; + struct { + bool left_ctrl : 1; + bool left_shift : 1; + bool left_alt : 1; + bool left_gui : 1; + bool right_ctrl : 1; + bool right_shift : 1; + bool right_alt : 1; + bool right_gui : 1; + }; +} PACKED mod_t; +STATIC_ASSERT(sizeof(mod_t) == sizeof(uint8_t), "Invalid size for 'mod_t'"); + extern report_keyboard_t *keyboard_report; #ifdef NKRO_ENABLE extern report_nkro_t *nkro_report; @@ -47,6 +64,7 @@ inline void clear_keys(void) { /* modifier */ uint8_t get_mods(void); +mod_t get_mod_state(void); void add_mods(uint8_t mods); void del_mods(uint8_t mods); void set_mods(uint8_t mods); @@ -54,6 +72,7 @@ void clear_mods(void); /* weak modifier */ uint8_t get_weak_mods(void); +mod_t get_weak_mod_state(void); void add_weak_mods(uint8_t mods); void del_weak_mods(uint8_t mods); void set_weak_mods(uint8_t mods); @@ -61,6 +80,7 @@ void clear_weak_mods(void); /* oneshot modifier */ uint8_t get_oneshot_mods(void); +mod_t get_oneshot_mod_state(void); void add_oneshot_mods(uint8_t mods); void del_oneshot_mods(uint8_t mods); void set_oneshot_mods(uint8_t mods); @@ -68,6 +88,7 @@ void clear_oneshot_mods(void); bool has_oneshot_mods_timed_out(void); uint8_t get_oneshot_locked_mods(void); +mod_t get_oneshot_locked_mod_state(void); void add_oneshot_locked_mods(uint8_t mods); void set_oneshot_locked_mods(uint8_t mods); void clear_oneshot_locked_mods(void); @@ -114,8 +135,7 @@ void clear_oneshot_swaphands(void); void neutralize_flashing_modifiers(uint8_t active_mods); #endif #ifndef MODS_TO_NEUTRALIZE -# define MODS_TO_NEUTRALIZE \ - { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI) } +# define MODS_TO_NEUTRALIZE {MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI)} #endif #ifdef __cplusplus diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 461ec89544..b6b39a9350 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -71,6 +71,10 @@ # define AUDIO_DEFAULT_CLICKY_ON true #endif +#ifndef AUDIO_SHUTDOWN_DELAY +# define AUDIO_SHUTDOWN_DELAY 250 +#endif + #ifndef AUDIO_TONE_STACKSIZE # define AUDIO_TONE_STACKSIZE 8 #endif @@ -114,9 +118,14 @@ extern uint16_t voices_timer; #ifndef AUDIO_OFF_SONG # define AUDIO_OFF_SONG SONG(AUDIO_OFF_SOUND) #endif +#ifndef GOODBYE_SONG +# define GOODBYE_SONG SONG(GOODBYE_SOUND) +#endif + float startup_song[][2] = STARTUP_SONG; float audio_on_song[][2] = AUDIO_ON_SONG; float audio_off_song[][2] = AUDIO_OFF_SONG; +float goodbye_song[][2] = GOODBYE_SONG; static bool audio_initialized = false; static bool audio_driver_stopped = true; @@ -210,6 +219,18 @@ void audio_startup(void) { last_timestamp = timer_read(); } +void audio_shutdown(void) { + uint16_t timer_start = timer_read(); + + PLAY_SONG(goodbye_song); + + while (timer_elapsed(timer_start) < AUDIO_SHUTDOWN_DELAY) { + wait_ms(1); + } + + stop_all_notes(); +} + void audio_toggle(void) { if (audio_config.enable) { stop_all_notes(); diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index a41814d0f8..2cc8143980 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -218,6 +218,8 @@ uint16_t audio_ms_to_duration(uint16_t duration_ms); void audio_startup(void); +void audio_shutdown(void); + // hardware interface // implementation in the driver_avr/arm_* respective parts diff --git a/quantum/audio/musical_notes.h b/quantum/audio/musical_notes.h index ddd7d374f5..6b1717f35d 100644 --- a/quantum/audio/musical_notes.h +++ b/quantum/audio/musical_notes.h @@ -21,12 +21,10 @@ // in beats-per-minute #endif -#define SONG(notes...) \ - { notes } +#define SONG(notes...) {notes} // Note Types -#define MUSICAL_NOTE(note, duration) \ - { (NOTE##note), duration } +#define MUSICAL_NOTE(note, duration) {(NOTE##note), duration} #define BREVE_NOTE(note) MUSICAL_NOTE(note, 128) #define WHOLE_NOTE(note) MUSICAL_NOTE(note, 64) diff --git a/quantum/backlight/backlight_driver_common.c b/quantum/backlight/backlight_driver_common.c index fb2770ee3c..9242aba594 100644 --- a/quantum/backlight/backlight_driver_common.c +++ b/quantum/backlight/backlight_driver_common.c @@ -16,7 +16,9 @@ static const pin_t backlight_pins[] = BACKLIGHT_PINS; # define FOR_EACH_LED(x) \ for (uint8_t i = 0; i < BACKLIGHT_LED_COUNT; i++) { \ pin_t backlight_pin = backlight_pins[i]; \ - { x } \ + { \ + x \ + } \ } #else // we support only one backlight pin diff --git a/quantum/command.c b/quantum/command.c index ea2fd68e2b..86e958e568 100644 --- a/quantum/command.c +++ b/quantum/command.c @@ -629,7 +629,7 @@ static void mousekey_console_help(void) { bool mousekey_console(uint8_t code) { static uint8_t param = 0; static uint8_t *pp = NULL; - static char * desc = NULL; + static char *desc = NULL; # if defined(NO_PRINT) || defined(USER_PRINT) /* -Wunused-parameter */ (void)desc; diff --git a/quantum/debounce.h b/quantum/debounce.h index cea1f2b526..e26106cd3b 100644 --- a/quantum/debounce.h +++ b/quantum/debounce.h @@ -9,13 +9,10 @@ * * @param raw The current key state * @param cooked The debounced key state - * @param num_rows Number of rows to debounce * @param changed True if raw has changed since the last call * @return true Cooked has new keychanges after debouncing * @return false Cooked is the same as before */ -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed); +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed); -void debounce_init(uint8_t num_rows); - -void debounce_free(void); +void debounce_init(void); diff --git a/quantum/debounce/asym_eager_defer_pk.c b/quantum/debounce/asym_eager_defer_pk.c index b6fcdc3d4e..edd07eabc0 100644 --- a/quantum/debounce/asym_eager_defer_pk.c +++ b/quantum/debounce/asym_eager_defer_pk.c @@ -1,37 +1,15 @@ -/* - * Copyright 2017 Alex Ong - * Copyright 2020 Andrei Purdea - * Copyright 2021 Simon Arlott - * - * 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 . - */ - -/* -Asymetric per-key algorithm. After pressing a key, it immediately changes state, -with no further inputs accepted until DEBOUNCE milliseconds have occurred. After -releasing a key, that state is pushed after no changes occur for DEBOUNCE milliseconds. -*/ +// Copyright 2017 Alex Ong +// Copyright 2020 Andrei Purdea +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Asymetric per-key algorithm. After pressing a key, it immediately changes state, +// with no further inputs accepted until DEBOUNCE milliseconds have occurred. After +// releasing a key, that state is pushed after no changes occur for DEBOUNCE milliseconds. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -43,44 +21,29 @@ releasing a key, that state is pushed after no changes occur for DEBOUNCE millis # define DEBOUNCE 127 #endif -#define ROW_SHIFTER ((matrix_row_t)1) +#define DEBOUNCE_ELAPSED 0 +#if DEBOUNCE > 0 typedef struct { bool pressed : 1; uint8_t time : 7; } debounce_counter_t; -#if DEBOUNCE > 0 -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool matrix_need_update; -static bool cooked_changed; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool matrix_need_update; +static bool cooked_changed; -# define DEBOUNCE_ELAPSED 0 +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time); -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); +void debounce_init(void) {} -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; - for (uint8_t r = 0; r < num_rows; r++) { - for (uint8_t c = 0; c < MATRIX_COLS; c++) { - debounce_counters[i++].time = DEBOUNCE_ELAPSED; - } - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} - -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -88,12 +51,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters_and_transfer_if_expired(raw, cooked, num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to 127 (maximum debounce) + update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, 127)); } } @@ -102,74 +63,96 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - transfer_matrix_values(raw, cooked, num_rows); + transfer_matrix_values(raw, cooked); } return cooked_changed; } -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time) { - debounce_counter_t *debounce_pointer = debounce_counters; - +/** + * @brief Processes per-key debounce counters and updates the debounced matrix state. + * + * This function iterates through each key in the matrix and updates its debounce counter + * based on the elapsed time. If the debounce period has expired, the debounced state is + * updated accordingly for key-down (eager) and key-up (defer) events. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) { counters_need_update = false; matrix_need_update = false; - for (uint8_t row = 0; row < num_rows; row++) { + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - matrix_row_t col_mask = (ROW_SHIFTER << col); + uint16_t index = row_offset + col; - if (debounce_pointer->time != DEBOUNCE_ELAPSED) { - if (debounce_pointer->time <= elapsed_time) { - debounce_pointer->time = DEBOUNCE_ELAPSED; + if (debounce_counters[index].time != DEBOUNCE_ELAPSED) { + if (debounce_counters[index].time <= elapsed_time) { + debounce_counters[index].time = DEBOUNCE_ELAPSED; - if (debounce_pointer->pressed) { + if (debounce_counters[index].pressed) { // key-down: eager matrix_need_update = true; } else { // key-up: defer + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); matrix_row_t cooked_next = (cooked[row] & ~col_mask) | (raw[row] & col_mask); cooked_changed |= cooked_next ^ cooked[row]; cooked[row] = cooked_next; } } else { - debounce_pointer->time -= elapsed_time; + debounce_counters[index].time -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } } -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - debounce_counter_t *debounce_pointer = debounce_counters; - +/** + * @brief Applies debounced changes to the matrix state based on per-key counters. + * + * This function compares the raw and cooked key state matrices to detect changes. + * For each key, it updates the debounce counter and the debounced state according + * to the debounce algorithm. Key-down events are handled eagerly, while key-up + * events are deferred until the debounce period has elapsed. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + */ +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) { matrix_need_update = false; - for (uint8_t row = 0; row < num_rows; row++) { - matrix_row_t delta = raw[row] ^ cooked[row]; + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + matrix_row_t delta = raw[row] ^ cooked[row]; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - matrix_row_t col_mask = (ROW_SHIFTER << col); + uint16_t index = row_offset + col; + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); if (delta & col_mask) { - if (debounce_pointer->time == DEBOUNCE_ELAPSED) { - debounce_pointer->pressed = (raw[row] & col_mask); - debounce_pointer->time = DEBOUNCE; - counters_need_update = true; + if (debounce_counters[index].time == DEBOUNCE_ELAPSED) { + debounce_counters[index].pressed = (raw[row] & col_mask); + debounce_counters[index].time = DEBOUNCE; + counters_need_update = true; - if (debounce_pointer->pressed) { + if (debounce_counters[index].pressed) { // key-down: eager cooked[row] ^= col_mask; cooked_changed = true; } } - } else if (debounce_pointer->time != DEBOUNCE_ELAPSED) { - if (!debounce_pointer->pressed) { + } else if (debounce_counters[index].time != DEBOUNCE_ELAPSED) { + if (!debounce_counters[index].pressed) { // key-up: defer - debounce_pointer->time = DEBOUNCE_ELAPSED; + debounce_counters[index].time = DEBOUNCE_ELAPSED; } } - debounce_pointer++; } } } diff --git a/quantum/debounce/none.c b/quantum/debounce/none.c index 0a8ccfc4ee..e614f41a6b 100644 --- a/quantum/debounce/none.c +++ b/quantum/debounce/none.c @@ -17,13 +17,13 @@ #include "debounce.h" #include -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { bool cooked_changed = false; if (changed) { - size_t matrix_size = num_rows * sizeof(matrix_row_t); + size_t matrix_size = MATRIX_ROWS_PER_HAND * sizeof(matrix_row_t); if (memcmp(cooked, raw, matrix_size) != 0) { memcpy(cooked, raw, matrix_size); cooked_changed = true; @@ -32,5 +32,3 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool return cooked_changed; } - -void debounce_free(void) {} diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c index d96758fab3..a60a131072 100644 --- a/quantum/debounce/sym_defer_g.c +++ b/quantum/debounce/sym_defer_g.c @@ -1,22 +1,10 @@ -/* -Copyright 2017 Alex Ong -Copyright 2021 Simon Arlott -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 . -*/ +// Copyright 2017 Alex Ong +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic global debounce algorithm. Used in 99% of keyboards at time of implementation +// When no state changes have occured for DEBOUNCE milliseconds, we push the state. -/* -Basic global debounce algorithm. Used in 99% of keyboards at time of implementation -When no state changes have occured for DEBOUNCE milliseconds, we push the state. -*/ #include "debounce.h" #include "timer.h" #include @@ -31,19 +19,19 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. #endif #if DEBOUNCE > 0 -static bool debouncing = false; -static fast_timer_t debouncing_time; -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool cooked_changed = false; +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { + static fast_timer_t debouncing_time; + static bool debouncing = false; + bool cooked_changed = false; if (changed) { debouncing = true; debouncing_time = timer_read_fast(); } else if (debouncing && timer_elapsed_fast(debouncing_time) >= DEBOUNCE) { - size_t matrix_size = num_rows * sizeof(matrix_row_t); + size_t matrix_size = MATRIX_ROWS_PER_HAND * sizeof(matrix_row_t); if (memcmp(cooked, raw, matrix_size) != 0) { memcpy(cooked, raw, matrix_size); cooked_changed = true; @@ -54,7 +42,6 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool return cooked_changed; } -void debounce_free(void) {} #else // no debouncing. # include "none.c" #endif diff --git a/quantum/debounce/sym_defer_pk.c b/quantum/debounce/sym_defer_pk.c index 156535a373..b910571219 100644 --- a/quantum/debounce/sym_defer_pk.c +++ b/quantum/debounce/sym_defer_pk.c @@ -1,33 +1,14 @@ -/* -Copyright 2017 Alex Ong -Copyright 2020 Andrei Purdea -Copyright 2021 Simon Arlott -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 . -*/ - -/* -Basic symmetric per-key algorithm. Uses an 8-bit counter per key. -When no state changes have occured for DEBOUNCE milliseconds, we push the state. -*/ +// Copyright 2017 Alex Ong +// Copyright 2020 Andrei Purdea +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic symmetric per-key algorithm. Uses an 8-bit counter per key. +// When no state changes have occured for DEBOUNCE milliseconds, we push the state. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -39,40 +20,24 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. # define DEBOUNCE UINT8_MAX #endif -#define ROW_SHIFTER ((matrix_row_t)1) - -typedef uint8_t debounce_counter_t; +#define DEBOUNCE_ELAPSED 0 #if DEBOUNCE > 0 -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool cooked_changed; +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool cooked_changed; -# define DEBOUNCE_ELAPSED 0 +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]); -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time); -static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); +void debounce_init(void) {} -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = (debounce_counter_t *)malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; - for (uint8_t r = 0; r < num_rows; r++) { - for (uint8_t c = 0; c < MATRIX_COLS; c++) { - debounce_counters[i++] = DEBOUNCE_ELAPSED; - } - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} - -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -80,12 +45,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters_and_transfer_if_expired(raw, cooked, num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, UINT8_MAX)); } } @@ -94,47 +57,73 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - start_debounce_counters(raw, cooked, num_rows); + start_debounce_counters(raw, cooked); } return cooked_changed; } -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time) { - counters_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Updates debounce counters and transfers debounced key states if the debounce period has expired. + * + * Iterates through each key in the matrix and checks its debounce counter. If the debounce period has expired + * for a key, the debounced state is updated to match the raw state. Otherwise, the debounce counter is decremented + * by the elapsed time and marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) { + counters_need_update = false; + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - if (*debounce_pointer != DEBOUNCE_ELAPSED) { - if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; - matrix_row_t cooked_next = (cooked[row] & ~(ROW_SHIFTER << col)) | (raw[row] & (ROW_SHIFTER << col)); + uint16_t index = row_offset + col; + + if (debounce_counters[index] != DEBOUNCE_ELAPSED) { + if (debounce_counters[index] <= elapsed_time) { + debounce_counters[index] = DEBOUNCE_ELAPSED; + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); + matrix_row_t cooked_next = (cooked[row] & ~col_mask) | (raw[row] & col_mask); cooked_changed |= cooked[row] ^ cooked_next; cooked[row] = cooked_next; } else { - *debounce_pointer -= elapsed_time; + debounce_counters[index] -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } } -static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { - matrix_row_t delta = raw[row] ^ cooked[row]; +/** + * @brief Initializes debounce counters for keys with changed states. + * + * For each key in the matrix, this function checks if the raw state differs from the debounced state. + * If a change is detected and the debounce counter has elapsed, the counter is set to the debounce period + * and marked for update. Otherwise, the counter is cleared. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix. + */ +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]) { + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + matrix_row_t delta = raw[row] ^ cooked[row]; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - if (delta & (ROW_SHIFTER << col)) { - if (*debounce_pointer == DEBOUNCE_ELAPSED) { - *debounce_pointer = DEBOUNCE; - counters_need_update = true; + uint16_t index = row_offset + col; + + if (delta & (MATRIX_ROW_SHIFTER << col)) { + if (debounce_counters[index] == DEBOUNCE_ELAPSED) { + debounce_counters[index] = DEBOUNCE; + counters_need_update = true; } } else { - *debounce_pointer = DEBOUNCE_ELAPSED; + debounce_counters[index] = DEBOUNCE_ELAPSED; } - debounce_pointer++; } } } diff --git a/quantum/debounce/sym_defer_pr.c b/quantum/debounce/sym_defer_pr.c index d6222af5b2..feaf55b08a 100644 --- a/quantum/debounce/sym_defer_pr.c +++ b/quantum/debounce/sym_defer_pr.c @@ -1,77 +1,117 @@ -/* -Copyright 2021 Chad Austin -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 . -*/ - -/* -Symmetric per-row debounce algorithm. Changes only apply when -DEBOUNCE milliseconds have elapsed since the last change. -*/ +// Copyright 2017 Alex Ong +// Copyright 2020 Andrei Purdea +// Copyright 2021 Simon Arlott +// Copyright @filterpaper +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic symmetric per-row algorithm. Uses an 8-bit counter per row. +// When no state changes have occured for DEBOUNCE milliseconds, we push the state. #include "debounce.h" #include "timer.h" -#include +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 #endif -static uint16_t last_time; -// [row] milliseconds until key's state is considered debounced. -static uint8_t* countdowns; -// [row] -static matrix_row_t* last_raw; +// Maximum debounce: 255ms +#if DEBOUNCE > UINT8_MAX +# undef DEBOUNCE +# define DEBOUNCE UINT8_MAX +#endif -void debounce_init(uint8_t num_rows) { - countdowns = (uint8_t*)calloc(num_rows, sizeof(uint8_t)); - last_raw = (matrix_row_t*)calloc(num_rows, sizeof(matrix_row_t)); +#define DEBOUNCE_ELAPSED 0 - last_time = timer_read(); -} +#if DEBOUNCE > 0 +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool cooked_changed; -void debounce_free(void) { - free(countdowns); - countdowns = NULL; - free(last_raw); - last_raw = NULL; -} +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]); -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - uint16_t now = timer_read(); - uint16_t elapsed16 = TIMER_DIFF_16(now, last_time); - last_time = now; - uint8_t elapsed = (elapsed16 > 255) ? 255 : elapsed16; - bool cooked_changed = false; +void debounce_init(void) {} - uint8_t* countdown = countdowns; +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; - for (uint8_t row = 0; row < num_rows; ++row, ++countdown) { - matrix_row_t raw_row = raw[row]; + if (counters_need_update) { + fast_timer_t now = timer_read_fast(); + fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time); - if (raw_row != last_raw[row]) { - *countdown = DEBOUNCE; - last_raw[row] = raw_row; - } else if (*countdown > elapsed) { - *countdown -= elapsed; - } else if (*countdown) { - cooked_changed |= cooked[row] ^ raw_row; - cooked[row] = raw_row; - *countdown = 0; + last_time = now; + updated_last = true; + + if (elapsed_time > 0) { + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, UINT8_MAX)); } } + if (changed) { + if (!updated_last) { + last_time = timer_read_fast(); + } + + start_debounce_counters(raw, cooked); + } + return cooked_changed; } -bool debounce_active(void) { - return true; +/** + * @brief Updates debounce counters and transfers debounced row states if the debounce period has expired. + * + * Iterates through each row in the matrix and checks its debounce counter. If the debounce period has expired + * for a row, the debounced state is updated to match the raw state. Otherwise, the debounce counter is decremented + * by the elapsed time and marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) { + counters_need_update = false; + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + if (debounce_counters[row] != DEBOUNCE_ELAPSED) { + if (debounce_counters[row] <= elapsed_time) { + debounce_counters[row] = DEBOUNCE_ELAPSED; + cooked_changed |= cooked[row] ^ raw[row]; + cooked[row] = raw[row]; + } else { + debounce_counters[row] -= elapsed_time; + counters_need_update = true; + } + } + } } + +/** + * @brief Initializes debounce counters for rows with changed states. + * + * For each row in the matrix, this function checks if the raw state differs from the debounced state. + * If a change is detected and the debounce counter has elapsed, the counter is set to the debounce period + * and marked for update. Otherwise, the counter is cleared. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix. + */ +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]) { + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + if (raw[row] != cooked[row]) { + debounce_counters[row] = DEBOUNCE; + counters_need_update = true; + } else { + debounce_counters[row] = DEBOUNCE_ELAPSED; + } + } +} + +#else +# include "none.c" +#endif diff --git a/quantum/debounce/sym_eager_pk.c b/quantum/debounce/sym_eager_pk.c index b359e79287..1f53330e9c 100644 --- a/quantum/debounce/sym_eager_pk.c +++ b/quantum/debounce/sym_eager_pk.c @@ -21,13 +21,7 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -39,41 +33,25 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred. # define DEBOUNCE UINT8_MAX #endif -#define ROW_SHIFTER ((matrix_row_t)1) - -typedef uint8_t debounce_counter_t; +#define DEBOUNCE_ELAPSED 0 #if DEBOUNCE > 0 -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool matrix_need_update; -static bool cooked_changed; +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool matrix_need_update; +static bool cooked_changed; -# define DEBOUNCE_ELAPSED 0 +static inline void update_debounce_counters(uint8_t elapsed_time); +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time); -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); +void debounce_init(void) {} -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = (debounce_counter_t *)malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; - for (uint8_t r = 0; r < num_rows; r++) { - for (uint8_t c = 0; c < MATRIX_COLS; c++) { - debounce_counters[i++] = DEBOUNCE_ELAPSED; - } - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} - -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -81,12 +59,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters(num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters(MIN(elapsed_time, UINT8_MAX)); } } @@ -95,51 +71,74 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - transfer_matrix_values(raw, cooked, num_rows); + transfer_matrix_values(raw, cooked); } return cooked_changed; } -// If the current time is > debounce counter, set the counter to enable input. -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { - counters_need_update = false; - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Updates per-key debounce counters and determines if matrix needs updating. + * + * Iterates through each key in the matrix and checks its debounce counter. If the debounce + * period has elapsed, the counter is reset and the matrix is marked for update. Otherwise, + * the counter is decremented by the elapsed time and marked for further updates if needed. + * + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters(uint8_t elapsed_time) { + counters_need_update = false; + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - if (*debounce_pointer != DEBOUNCE_ELAPSED) { - if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; - matrix_need_update = true; + uint16_t index = row_offset + col; + + if (debounce_counters[index] != DEBOUNCE_ELAPSED) { + if (debounce_counters[index] <= elapsed_time) { + debounce_counters[index] = DEBOUNCE_ELAPSED; + matrix_need_update = true; } else { - *debounce_pointer -= elapsed_time; + debounce_counters[index] -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } } -// upload from raw_matrix to final matrix; -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Transfers debounced key states from the raw matrix to the cooked matrix. + * + * For each key in the matrix, this function checks if its state has changed and if its + * debounce counter has elapsed. If so, the debounce counter is reset, the cooked matrix + * is updated to reflect the new state, and the matrix is marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + */ +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) { + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; matrix_row_t delta = raw[row] ^ cooked[row]; matrix_row_t existing_row = cooked[row]; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - matrix_row_t col_mask = (ROW_SHIFTER << col); + uint16_t index = row_offset + col; + + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); if (delta & col_mask) { - if (*debounce_pointer == DEBOUNCE_ELAPSED) { - *debounce_pointer = DEBOUNCE; - counters_need_update = true; + if (debounce_counters[index] == DEBOUNCE_ELAPSED) { + debounce_counters[index] = DEBOUNCE; + counters_need_update = true; existing_row ^= col_mask; // flip the bit. cooked_changed = true; } } - debounce_pointer++; } cooked[row] = existing_row; } diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c index 6cd9308aff..c929ff53dc 100644 --- a/quantum/debounce/sym_eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c @@ -1,33 +1,14 @@ -/* -Copyright 2019 Alex Ong -Copyright 2021 Simon Arlott -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 . -*/ - -/* -Basic per-row algorithm. Uses an 8-bit counter per row. -After pressing a key, it immediately changes state, and sets a counter. -No further inputs are accepted until DEBOUNCE milliseconds have occurred. -*/ +// Copyright 2017 Alex Ong +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic per-row algorithm. Uses an 8-bit counter per key. +// After pressing a key, it immediately changes state, and sets a counter. +// No further inputs are accepted until DEBOUNCE milliseconds have occurred. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -39,37 +20,25 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred. # define DEBOUNCE UINT8_MAX #endif -typedef uint8_t debounce_counter_t; +#define DEBOUNCE_ELAPSED 0 #if DEBOUNCE > 0 -static bool matrix_need_update; +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool matrix_need_update; +static bool cooked_changed; -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool cooked_changed; +static inline void update_debounce_counters(uint8_t elapsed_time); +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -# define DEBOUNCE_ELAPSED 0 +void debounce_init(void) {} -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time); -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); - -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = (debounce_counter_t *)malloc(num_rows * sizeof(debounce_counter_t)); - for (uint8_t r = 0; r < num_rows; r++) { - debounce_counters[r] = DEBOUNCE_ELAPSED; - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} - -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -77,12 +46,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters(num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters(MIN(elapsed_time, UINT8_MAX)); } } @@ -91,49 +58,64 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - transfer_matrix_values(raw, cooked, num_rows); + transfer_matrix_values(raw, cooked); } return cooked_changed; } -// If the current time is > debounce counter, set the counter to enable input. -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { - counters_need_update = false; - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { - if (*debounce_pointer != DEBOUNCE_ELAPSED) { - if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; - matrix_need_update = true; +/** + * @brief Updates per-row debounce counters and determines if matrix needs updating. + * + * Iterates through each row in the matrix and checks its debounce counter. If the debounce + * period has elapsed, the counter is reset and the matrix is marked for update. Otherwise, + * the counter is decremented by the elapsed time and marked for further updates if needed. + * + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters(uint8_t elapsed_time) { + counters_need_update = false; + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + if (debounce_counters[row] != DEBOUNCE_ELAPSED) { + if (debounce_counters[row] <= elapsed_time) { + debounce_counters[row] = DEBOUNCE_ELAPSED; + matrix_need_update = true; } else { - *debounce_pointer -= elapsed_time; + debounce_counters[row] -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } -// upload from raw_matrix to final matrix; -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Transfers debounced key states from the raw matrix to the cooked matrix. + * + * For each row in the matrix, this function checks if its state has changed and if its + * debounce counter has elapsed. If so, the debounce counter is reset, the cooked matrix + * is updated to reflect the new state, and the matrix is marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix + */ +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) { + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { matrix_row_t existing_row = cooked[row]; matrix_row_t raw_row = raw[row]; // determine new value basd on debounce pointer + raw value if (existing_row != raw_row) { - if (*debounce_pointer == DEBOUNCE_ELAPSED) { - *debounce_pointer = DEBOUNCE; + if (debounce_counters[row] == DEBOUNCE_ELAPSED) { + debounce_counters[row] = DEBOUNCE; cooked_changed |= cooked[row] ^ raw_row; cooked[row] = raw_row; counters_need_update = true; } } - debounce_pointer++; } } diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp index fd4b6f01a6..84b91f85e1 100644 --- a/quantum/debounce/tests/debounce_test_common.cpp +++ b/quantum/debounce/tests/debounce_test_common.cpp @@ -60,7 +60,7 @@ void DebounceTest::runEventsInternal() { bool first = true; /* Initialise keyboard with start time (offset to avoid testing at 0) and all keys UP */ - debounce_init(MATRIX_ROWS); + debounce_init(); set_time(time_offset_); simulate_async_tick(async_time_jumps_); std::fill(std::begin(input_matrix_), std::end(input_matrix_), 0); @@ -121,8 +121,6 @@ void DebounceTest::runEventsInternal() { checkCookedMatrix(false, "debounce() modified cooked matrix"); advance_time(1); } - - debounce_free(); } void DebounceTest::runDebounce(bool changed) { @@ -131,7 +129,7 @@ void DebounceTest::runDebounce(bool changed) { reset_access_counter(); - bool cooked_changed = debounce(raw_matrix_, cooked_matrix_, MATRIX_ROWS, changed); + bool cooked_changed = debounce(raw_matrix_, cooked_matrix_, changed); if (!std::equal(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_))) { FAIL() << "Fatal error: debounce() modified raw matrix at " << strTime() << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) << "\nraw_matrix:\n" << strMatrix(raw_matrix_); diff --git a/quantum/deferred_exec.c b/quantum/deferred_exec.c index b3be3747d4..41a773140d 100644 --- a/quantum/deferred_exec.c +++ b/quantum/deferred_exec.c @@ -56,7 +56,7 @@ deferred_token defer_exec_advanced(deferred_executor_t *table, size_t table_coun // Work out the new token value, dropping out if none were available deferred_token token = allocate_token(table, table_count); if (token == INVALID_DEFERRED_TOKEN) { - return false; + return INVALID_DEFERRED_TOKEN; } // Set up the executor table entry diff --git a/quantum/deferred_exec.h b/quantum/deferred_exec.h index 97ef0f6c0e..27eecbe8ee 100644 --- a/quantum/deferred_exec.h +++ b/quantum/deferred_exec.h @@ -78,7 +78,7 @@ typedef struct deferred_executor_t { deferred_token token; uint32_t trigger_time; deferred_exec_callback callback; - void * cb_arg; + void *cb_arg; } deferred_executor_t; /** diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 65ae21175b..f662a0e7fc 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -21,6 +21,7 @@ #include "dip_switch.h" #ifdef SPLIT_KEYBOARD +# include "keyboard.h" # include "split_common/split_util.h" #endif @@ -87,7 +88,7 @@ static void dip_switch_exec_mapping(uint8_t index, bool on) { void dip_switch_init(void) { #ifdef DIP_SWITCH_PINS # if defined(SPLIT_KEYBOARD) && defined(DIP_SWITCH_PINS_RIGHT) - if (!isLeftHand) { + if (!is_keyboard_left()) { const pin_t dip_switch_pad_right[] = DIP_SWITCH_PINS_RIGHT; for (uint8_t i = 0; i < NUM_DIP_SWITCHES; i++) { dip_switch_pad[i] = dip_switch_pad_right[i]; diff --git a/quantum/dip_switch.h b/quantum/dip_switch.h index 7629859359..b1694f3e6f 100644 --- a/quantum/dip_switch.h +++ b/quantum/dip_switch.h @@ -49,7 +49,6 @@ void dip_switch_task(void); #ifdef DIP_SWITCH_MAP_ENABLE # define NUM_DIP_STATES 2 -# define DIP_SWITCH_OFF_ON(off, on) \ - { (off), (on) } +# define DIP_SWITCH_OFF_ON(off, on) {(off), (on)} extern const uint16_t dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES]; #endif // DIP_SWITCH_MAP_ENABLE diff --git a/quantum/encoder.h b/quantum/encoder.h index 1d2f1f46c7..fa43db52a6 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -111,8 +111,7 @@ void encoder_signal_queue_drain(void); # ifdef ENCODER_MAP_ENABLE # define NUM_DIRECTIONS 2 -# define ENCODER_CCW_CW(ccw, cw) \ - { (cw), (ccw) } +# define ENCODER_CCW_CW(ccw, cw) {(cw), (ccw)} extern const uint16_t encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS]; # endif // ENCODER_MAP_ENABLE diff --git a/quantum/encoder/tests/config_mock.h b/quantum/encoder/tests/config_mock.h index b5a1537d8a..db1c1b106e 100644 --- a/quantum/encoder/tests/config_mock.h +++ b/quantum/encoder/tests/config_mock.h @@ -7,10 +7,8 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0 } -#define ENCODER_B_PINS \ - { 1 } +#define ENCODER_A_PINS {0} +#define ENCODER_B_PINS {1} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_left_eq_right.h b/quantum/encoder/tests/config_mock_split_left_eq_right.h index a4aa051ef1..37ddafe904 100644 --- a/quantum/encoder/tests/config_mock_split_left_eq_right.h +++ b/quantum/encoder/tests/config_mock_split_left_eq_right.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } -#define ENCODER_A_PINS_RIGHT \ - { 4, 6 } -#define ENCODER_B_PINS_RIGHT \ - { 5, 7 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} +#define ENCODER_A_PINS_RIGHT {4, 6} +#define ENCODER_B_PINS_RIGHT {5, 7} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_left_gt_right.h b/quantum/encoder/tests/config_mock_split_left_gt_right.h index 77190797ad..8cb78c30ec 100644 --- a/quantum/encoder/tests/config_mock_split_left_gt_right.h +++ b/quantum/encoder/tests/config_mock_split_left_gt_right.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2, 4 } -#define ENCODER_B_PINS \ - { 1, 3, 5 } -#define ENCODER_A_PINS_RIGHT \ - { 6, 8 } -#define ENCODER_B_PINS_RIGHT \ - { 7, 9 } +#define ENCODER_A_PINS {0, 2, 4} +#define ENCODER_B_PINS {1, 3, 5} +#define ENCODER_A_PINS_RIGHT {6, 8} +#define ENCODER_B_PINS_RIGHT {7, 9} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_left_lt_right.h b/quantum/encoder/tests/config_mock_split_left_lt_right.h index 61808e866e..b10d9b9c0f 100644 --- a/quantum/encoder/tests/config_mock_split_left_lt_right.h +++ b/quantum/encoder/tests/config_mock_split_left_lt_right.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } -#define ENCODER_A_PINS_RIGHT \ - { 4, 6, 8 } -#define ENCODER_B_PINS_RIGHT \ - { 5, 7, 9 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} +#define ENCODER_A_PINS_RIGHT {4, 6, 8} +#define ENCODER_B_PINS_RIGHT {5, 7, 9} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_no_left.h b/quantum/encoder/tests/config_mock_split_no_left.h index 599e584ff1..1a6893a649 100644 --- a/quantum/encoder/tests/config_mock_split_no_left.h +++ b/quantum/encoder/tests/config_mock_split_no_left.h @@ -8,13 +8,13 @@ /* Here, "pins" from 0 to 31 are allowed. */ #define ENCODER_A_PINS \ - {} + { \ + } #define ENCODER_B_PINS \ - {} -#define ENCODER_A_PINS_RIGHT \ - { 0, 2 } -#define ENCODER_B_PINS_RIGHT \ - { 1, 3 } + { \ + } +#define ENCODER_A_PINS_RIGHT {0, 2} +#define ENCODER_B_PINS_RIGHT {1, 3} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_no_right.h b/quantum/encoder/tests/config_mock_split_no_right.h index c3f753014c..02719a0416 100644 --- a/quantum/encoder/tests/config_mock_split_no_right.h +++ b/quantum/encoder/tests/config_mock_split_no_right.h @@ -7,14 +7,14 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} #define ENCODER_A_PINS_RIGHT \ - {} + { \ + } #define ENCODER_B_PINS_RIGHT \ - {} + { \ + } #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_role.h b/quantum/encoder/tests/config_mock_split_role.h index a4aa051ef1..37ddafe904 100644 --- a/quantum/encoder/tests/config_mock_split_role.h +++ b/quantum/encoder/tests/config_mock_split_role.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } -#define ENCODER_A_PINS_RIGHT \ - { 4, 6 } -#define ENCODER_B_PINS_RIGHT \ - { 5, 7 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} +#define ENCODER_A_PINS_RIGHT {4, 6} +#define ENCODER_B_PINS_RIGHT {5, 7} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/encoder_tests.cpp b/quantum/encoder/tests/encoder_tests.cpp index 499e413aed..10ae9139d9 100644 --- a/quantum/encoder/tests/encoder_tests.cpp +++ b/quantum/encoder/tests/encoder_tests.cpp @@ -26,8 +26,8 @@ extern "C" { } struct update { - int8_t index; - bool clockwise; + uint8_t index; + bool clockwise; }; uint8_t updates_array_idx = 0; diff --git a/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp b/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp index 7d6b3e30e6..4665e55614 100644 --- a/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp @@ -26,8 +26,8 @@ extern "C" { } struct update { - int8_t index; - bool clockwise; + uint8_t index; + bool clockwise; }; uint8_t updates_array_idx = 0; @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp b/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp index 2beb4e3972..49af689226 100644 --- a/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp @@ -26,8 +26,8 @@ extern "C" { } struct update { - int8_t index; - bool clockwise; + uint8_t index; + bool clockwise; }; uint8_t updates_array_idx = 0; @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp b/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp index 5612f8b658..9df795b837 100644 --- a/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp @@ -26,8 +26,8 @@ extern "C" { } struct update { - int8_t index; - bool clockwise; + uint8_t index; + bool clockwise; }; uint8_t updates_array_idx = 0; @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_no_left.cpp b/quantum/encoder/tests/encoder_tests_split_no_left.cpp index 980e4074ff..17ae1bef2b 100644 --- a/quantum/encoder/tests/encoder_tests_split_no_left.cpp +++ b/quantum/encoder/tests/encoder_tests_split_no_left.cpp @@ -26,8 +26,8 @@ extern "C" { } struct update { - int8_t index; - bool clockwise; + uint8_t index; + bool clockwise; }; uint8_t updates_array_idx = 0; @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_no_right.cpp b/quantum/encoder/tests/encoder_tests_split_no_right.cpp index d39659853b..cf340b7cdc 100644 --- a/quantum/encoder/tests/encoder_tests_split_no_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_no_right.cpp @@ -26,8 +26,8 @@ extern "C" { } struct update { - int8_t index; - bool clockwise; + uint8_t index; + bool clockwise; }; uint8_t updates_array_idx = 0; @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_role.cpp b/quantum/encoder/tests/encoder_tests_split_role.cpp index b588af8c70..3da6fd6edb 100644 --- a/quantum/encoder/tests/encoder_tests_split_role.cpp +++ b/quantum/encoder/tests/encoder_tests_split_role.cpp @@ -40,6 +40,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!isMaster) { ADD_FAILURE() << "We shouldn't get here."; diff --git a/quantum/haptic.c b/quantum/haptic.c index 8a743480ff..7fedccff99 100644 --- a/quantum/haptic.c +++ b/quantum/haptic.c @@ -137,7 +137,6 @@ void haptic_toggle(void) { } else { haptic_enable(); } - eeconfig_update_haptic(&haptic_config); } void haptic_feedback_toggle(void) { diff --git a/quantum/joystick.h b/quantum/joystick.h index 24f80c1ad6..4769cf28cb 100644 --- a/quantum/joystick.h +++ b/quantum/joystick.h @@ -64,10 +64,8 @@ // configure on input_pin of the joystick_axes array entry to NO_PIN // to prevent it from being read from the ADC. This allows outputting forged axis value. -#define JOYSTICK_AXIS_VIRTUAL \ - { NO_PIN, 0, JOYSTICK_MAX_VALUE / 2, JOYSTICK_MAX_VALUE } -#define JOYSTICK_AXIS_IN(INPUT_PIN, LOW, REST, HIGH) \ - { INPUT_PIN, LOW, REST, HIGH } +#define JOYSTICK_AXIS_VIRTUAL {NO_PIN, 0, JOYSTICK_MAX_VALUE / 2, JOYSTICK_MAX_VALUE} +#define JOYSTICK_AXIS_IN(INPUT_PIN, LOW, REST, HIGH) {INPUT_PIN, LOW, REST, HIGH} typedef struct { pin_t input_pin; diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 173c696e2d..5a80facf57 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -32,6 +32,7 @@ along with this program. If not, see . #include "sendchar.h" #include "eeconfig.h" #include "action_layer.h" +#include "suspend.h" #ifdef BOOTMAGIC_ENABLE # include "bootmagic.h" #endif @@ -471,6 +472,7 @@ void keyboard_init(void) { #ifdef CONNECTION_ENABLE connection_init(); #endif + host_init(); led_init_ports(); #ifdef BACKLIGHT_ENABLE backlight_init_ports(); @@ -508,11 +510,6 @@ void keyboard_init(void) { #ifdef STENO_ENABLE_ALL steno_init(); #endif -#if defined(NKRO_ENABLE) && defined(FORCE_NKRO) -# pragma message "FORCE_NKRO option is now deprecated - Please migrate to NKRO_DEFAULT_ON instead." - keymap_config.nkro = 1; - eeconfig_update_keymap(&keymap_config); -#endif #ifdef DIP_SWITCH_ENABLE dip_switch_init(); #endif @@ -561,6 +558,7 @@ void switch_events(uint8_t row, uint8_t col, bool pressed) { #if defined(RGB_MATRIX_ENABLE) rgb_matrix_handle_key_event(row, col, pressed); #endif + wakeup_matrix_handle_key_event(row, col, pressed); } /** @@ -576,6 +574,8 @@ static inline void generate_tick_event(void) { } } +matrix_row_t matrix_previous[MATRIX_ROWS]; + /** * @brief This task scans the keyboards matrix and processes any key presses * that occur. @@ -589,8 +589,6 @@ static bool matrix_task(void) { return false; } - static matrix_row_t matrix_previous[MATRIX_ROWS]; - matrix_scan(); bool matrix_changed = false; for (uint8_t row = 0; row < MATRIX_ROWS && !matrix_changed; row++) { @@ -624,7 +622,7 @@ static bool matrix_task(void) { if (row_changes & col_mask) { const bool key_pressed = current_row & col_mask; - if (process_keypress) { + if (process_keypress && !keypress_is_wakeup_key(row, col)) { action_exec(MAKE_KEYEVENT(row, col, key_pressed)); } @@ -699,6 +697,8 @@ void quantum_task(void) { #ifdef LAYER_LOCK_ENABLE layer_lock_task(); #endif + + host_task(); } /** \brief Main task that is repeatedly called as fast as possible. */ diff --git a/quantum/keycode.h b/quantum/keycode.h index 4ff6894a01..6268b7f19b 100644 --- a/quantum/keycode.h +++ b/quantum/keycode.h @@ -34,7 +34,7 @@ along with this program. If not, see . #define IS_MOUSEKEY_WHEEL(code) (QK_MOUSE_WHEEL_UP <= (code) && (code) <= QK_MOUSE_WHEEL_RIGHT) #define IS_MOUSEKEY_ACCEL(code) (QK_MOUSE_ACCELERATION_0 <= (code) && (code) <= QK_MOUSE_ACCELERATION_2) -#define MOD_BIT(code) (1 << ((code)&0x07)) +#define MOD_BIT(code) (1 << ((code) & 0x07)) // clang-format off diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index cbfbcc8140..90b910e960 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -24,6 +24,7 @@ keymap_config_t keymap_config; * and will return the corrected keycode, when appropriate. */ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { +#ifdef MAGIC_ENABLE switch (keycode) { case KC_CAPS_LOCK: case KC_LOCKING_CAPS_LOCK: @@ -115,6 +116,9 @@ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { default: return keycode; } +#else + return keycode; +#endif // MAGIC_ENABLE } /** \brief mod_config @@ -124,6 +128,7 @@ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { */ __attribute__((weak)) uint8_t mod_config(uint8_t mod) { +#ifdef MAGIC_ENABLE /** * Note: This function is for the 5-bit packed mods, NOT the full 8-bit mods. * More info about the mods can be seen in modifiers.h. @@ -157,9 +162,11 @@ __attribute__((weak)) uint8_t mod_config(uint8_t mod) { } } if (keymap_config.no_gui) { - mod &= ~MOD_LGUI; - mod &= ~MOD_RGUI; + if (mod & MOD_LGUI) { + mod &= ~MOD_RGUI; + } } +#endif // MAGIC_ENABLE return mod; } diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 6a59aa376d..132eb79c6e 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* @@ -26,11 +26,11 @@ #pragma once // clang-format off -#define QMK_KEYCODES_VERSION "0.0.7" -#define QMK_KEYCODES_VERSION_BCD 0x00000007 +#define QMK_KEYCODES_VERSION "0.0.8" +#define QMK_KEYCODES_VERSION_BCD 0x00000008 #define QMK_KEYCODES_VERSION_MAJOR 0 #define QMK_KEYCODES_VERSION_MINOR 0 -#define QMK_KEYCODES_VERSION_PATCH 7 +#define QMK_KEYCODES_VERSION_PATCH 8 enum qk_keycode_ranges { // Ranges @@ -663,6 +663,8 @@ enum qk_keycode_defines { QK_LED_MATRIX_BRIGHTNESS_DOWN = 0x7816, QK_LED_MATRIX_SPEED_UP = 0x7817, QK_LED_MATRIX_SPEED_DOWN = 0x7818, + QK_LED_MATRIX_FLAG_NEXT = 0x7819, + QK_LED_MATRIX_FLAG_PREVIOUS = 0x781A, QK_UNDERGLOW_TOGGLE = 0x7820, QK_UNDERGLOW_MODE_NEXT = 0x7821, QK_UNDERGLOW_MODE_PREVIOUS = 0x7822, @@ -697,6 +699,8 @@ enum qk_keycode_defines { QK_RGB_MATRIX_VALUE_DOWN = 0x784A, QK_RGB_MATRIX_SPEED_UP = 0x784B, QK_RGB_MATRIX_SPEED_DOWN = 0x784C, + QK_RGB_MATRIX_FLAG_NEXT = 0x784D, + QK_RGB_MATRIX_FLAG_PREVIOUS = 0x784E, QK_BOOTLOADER = 0x7C00, QK_REBOOT = 0x7C01, QK_DEBUG_TOGGLE = 0x7C02, @@ -1352,6 +1356,8 @@ enum qk_keycode_defines { LM_BRID = QK_LED_MATRIX_BRIGHTNESS_DOWN, LM_SPDU = QK_LED_MATRIX_SPEED_UP, LM_SPDD = QK_LED_MATRIX_SPEED_DOWN, + LM_FLGN = QK_LED_MATRIX_FLAG_NEXT, + LM_FLGP = QK_LED_MATRIX_FLAG_PREVIOUS, UG_TOGG = QK_UNDERGLOW_TOGGLE, UG_NEXT = QK_UNDERGLOW_MODE_NEXT, UG_PREV = QK_UNDERGLOW_MODE_PREVIOUS, @@ -1386,6 +1392,8 @@ enum qk_keycode_defines { RM_VALD = QK_RGB_MATRIX_VALUE_DOWN, RM_SPDU = QK_RGB_MATRIX_SPEED_UP, RM_SPDD = QK_RGB_MATRIX_SPEED_DOWN, + RM_FLGN = QK_RGB_MATRIX_FLAG_NEXT, + RM_FLGP = QK_RGB_MATRIX_FLAG_PREVIOUS, QK_BOOT = QK_BOOTLOADER, QK_RBT = QK_REBOOT, DB_TOGG = QK_DEBUG_TOGGLE, @@ -1511,10 +1519,10 @@ enum qk_keycode_defines { #define IS_MACRO_KEYCODE(code) ((code) >= QK_MACRO_0 && (code) <= QK_MACRO_31) #define IS_CONNECTION_KEYCODE(code) ((code) >= QK_OUTPUT_AUTO && (code) <= QK_BLUETOOTH_PROFILE5) #define IS_BACKLIGHT_KEYCODE(code) ((code) >= QK_BACKLIGHT_ON && (code) <= QK_BACKLIGHT_TOGGLE_BREATHING) -#define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_SPEED_DOWN) +#define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_FLAG_PREVIOUS) #define IS_UNDERGLOW_KEYCODE(code) ((code) >= QK_UNDERGLOW_TOGGLE && (code) <= QK_UNDERGLOW_SPEED_DOWN) #define IS_RGB_KEYCODE(code) ((code) >= RGB_MODE_PLAIN && (code) <= RGB_MODE_TWINKLE) -#define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_SPEED_DOWN) +#define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_FLAG_PREVIOUS) #define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_LAYER_LOCK) #define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31) #define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31) @@ -1537,10 +1545,10 @@ enum qk_keycode_defines { #define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31 #define CONNECTION_KEYCODE_RANGE QK_OUTPUT_AUTO ... QK_BLUETOOTH_PROFILE5 #define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING -#define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_SPEED_DOWN +#define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_FLAG_PREVIOUS #define UNDERGLOW_KEYCODE_RANGE QK_UNDERGLOW_TOGGLE ... QK_UNDERGLOW_SPEED_DOWN #define RGB_KEYCODE_RANGE RGB_MODE_PLAIN ... RGB_MODE_TWINKLE -#define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_SPEED_DOWN +#define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_FLAG_PREVIOUS #define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_LAYER_LOCK #define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31 #define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31 diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 9be9bae943..091ab491c8 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -43,8 +43,6 @@ along with this program. If not, see . extern keymap_config_t keymap_config; -#include - /* converts key to action */ action_t action_for_key(uint8_t layer, keypos_t key) { // 16bit keycodes - important diff --git a/quantum/keymap_extras/keymap_belgian.h b/quantum/keymap_extras/keymap_belgian.h index b41ed9d20b..55f33a0bd3 100644 --- a/quantum/keymap_extras/keymap_belgian.h +++ b/quantum/keymap_extras/keymap_belgian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h index c0bb703ecc..c664d0e6b1 100644 --- a/quantum/keymap_extras/keymap_bepo.h +++ b/quantum/keymap_extras/keymap_bepo.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_brazilian_abnt2.h b/quantum/keymap_extras/keymap_brazilian_abnt2.h index 267b5490c9..aaff90adea 100644 --- a/quantum/keymap_extras/keymap_brazilian_abnt2.h +++ b/quantum/keymap_extras/keymap_brazilian_abnt2.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index df9c73c016..8cec09af12 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h index 4b42457396..c2daed7e64 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_colemak.h b/quantum/keymap_extras/keymap_colemak.h index a4fc77e80f..e6ffa551b8 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_croatian.h b/quantum/keymap_extras/keymap_croatian.h index cdc032a9eb..33bcd590df 100644 --- a/quantum/keymap_extras/keymap_croatian.h +++ b/quantum/keymap_extras/keymap_croatian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech.h b/quantum/keymap_extras/keymap_czech.h index cae16cdb9f..f23a5728b5 100644 --- a/quantum/keymap_extras/keymap_czech.h +++ b/quantum/keymap_extras/keymap_czech.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech_mac_ansi.h b/quantum/keymap_extras/keymap_czech_mac_ansi.h index bdfda933b0..4b613c8827 100644 --- a/quantum/keymap_extras/keymap_czech_mac_ansi.h +++ b/quantum/keymap_extras/keymap_czech_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_czech_mac_iso.h b/quantum/keymap_extras/keymap_czech_mac_iso.h index 9c05d8dae0..97b5addb7e 100644 --- a/quantum/keymap_extras/keymap_czech_mac_iso.h +++ b/quantum/keymap_extras/keymap_czech_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_danish.h b/quantum/keymap_extras/keymap_danish.h index 1f1ee90e23..1907c34dd8 100644 --- a/quantum/keymap_extras/keymap_danish.h +++ b/quantum/keymap_extras/keymap_danish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak.h b/quantum/keymap_extras/keymap_dvorak.h index 5cb2c4564a..aa74064507 100644 --- a/quantum/keymap_extras/keymap_dvorak.h +++ b/quantum/keymap_extras/keymap_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak_fr.h b/quantum/keymap_extras/keymap_dvorak_fr.h index d01bf7fec7..55c568f6e5 100644 --- a/quantum/keymap_extras/keymap_dvorak_fr.h +++ b/quantum/keymap_extras/keymap_dvorak_fr.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_dvorak_programmer.h b/quantum/keymap_extras/keymap_dvorak_programmer.h index f17900105f..547c61676a 100644 --- a/quantum/keymap_extras/keymap_dvorak_programmer.h +++ b/quantum/keymap_extras/keymap_dvorak_programmer.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_estonian.h b/quantum/keymap_extras/keymap_estonian.h index 5fbeedcbe9..4cdc6085e1 100644 --- a/quantum/keymap_extras/keymap_estonian.h +++ b/quantum/keymap_extras/keymap_estonian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_eurkey.h b/quantum/keymap_extras/keymap_eurkey.h index 5a13d48163..9e0a5a40f6 100644 --- a/quantum/keymap_extras/keymap_eurkey.h +++ b/quantum/keymap_extras/keymap_eurkey.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_farsi.h b/quantum/keymap_extras/keymap_farsi.h index e115d9c1c0..1f47a95511 100644 --- a/quantum/keymap_extras/keymap_farsi.h +++ b/quantum/keymap_extras/keymap_farsi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_finnish.h b/quantum/keymap_extras/keymap_finnish.h index cb21da9962..332ce2641f 100644 --- a/quantum/keymap_extras/keymap_finnish.h +++ b/quantum/keymap_extras/keymap_finnish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index d4352c6481..5f26b3a338 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french_afnor.h b/quantum/keymap_extras/keymap_french_afnor.h index 8e6905cc01..17c82197b8 100644 --- a/quantum/keymap_extras/keymap_french_afnor.h +++ b/quantum/keymap_extras/keymap_french_afnor.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_french_mac_iso.h b/quantum/keymap_extras/keymap_french_mac_iso.h index ad9d280f2a..4bbec33f13 100644 --- a/quantum/keymap_extras/keymap_french_mac_iso.h +++ b/quantum/keymap_extras/keymap_french_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_german.h b/quantum/keymap_extras/keymap_german.h index bc98daa2fd..df51038b66 100644 --- a/quantum/keymap_extras/keymap_german.h +++ b/quantum/keymap_extras/keymap_german.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_german_mac_iso.h b/quantum/keymap_extras/keymap_german_mac_iso.h index ba3143c570..634a047548 100644 --- a/quantum/keymap_extras/keymap_german_mac_iso.h +++ b/quantum/keymap_extras/keymap_german_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_greek.h b/quantum/keymap_extras/keymap_greek.h index fb2f02a04f..3ee958935c 100644 --- a/quantum/keymap_extras/keymap_greek.h +++ b/quantum/keymap_extras/keymap_greek.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_hebrew.h b/quantum/keymap_extras/keymap_hebrew.h index 5d1d4a29c6..e54aaf1116 100644 --- a/quantum/keymap_extras/keymap_hebrew.h +++ b/quantum/keymap_extras/keymap_hebrew.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_hungarian.h b/quantum/keymap_extras/keymap_hungarian.h index 27236553e8..5be7be5a94 100644 --- a/quantum/keymap_extras/keymap_hungarian.h +++ b/quantum/keymap_extras/keymap_hungarian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_icelandic.h b/quantum/keymap_extras/keymap_icelandic.h index 409be27b77..451819c283 100644 --- a/quantum/keymap_extras/keymap_icelandic.h +++ b/quantum/keymap_extras/keymap_icelandic.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_irish.h b/quantum/keymap_extras/keymap_irish.h index 587467bcbe..ff1bb0efa3 100644 --- a/quantum/keymap_extras/keymap_irish.h +++ b/quantum/keymap_extras/keymap_irish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian.h b/quantum/keymap_extras/keymap_italian.h index 9fd7f1b15c..a7d05b3674 100644 --- a/quantum/keymap_extras/keymap_italian.h +++ b/quantum/keymap_extras/keymap_italian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian_mac_ansi.h b/quantum/keymap_extras/keymap_italian_mac_ansi.h index 9ef38c0d87..5ef67a1485 100644 --- a/quantum/keymap_extras/keymap_italian_mac_ansi.h +++ b/quantum/keymap_extras/keymap_italian_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_italian_mac_iso.h b/quantum/keymap_extras/keymap_italian_mac_iso.h index e80cfa450c..376c97684b 100644 --- a/quantum/keymap_extras/keymap_italian_mac_iso.h +++ b/quantum/keymap_extras/keymap_italian_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_japanese.h b/quantum/keymap_extras/keymap_japanese.h index 55df86e16d..1839cb6b40 100644 --- a/quantum/keymap_extras/keymap_japanese.h +++ b/quantum/keymap_extras/keymap_japanese.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_korean.h b/quantum/keymap_extras/keymap_korean.h index 7bf64c4841..a2ea15dc48 100644 --- a/quantum/keymap_extras/keymap_korean.h +++ b/quantum/keymap_extras/keymap_korean.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_latvian.h b/quantum/keymap_extras/keymap_latvian.h index 4d60c45163..590106bb3c 100644 --- a/quantum/keymap_extras/keymap_latvian.h +++ b/quantum/keymap_extras/keymap_latvian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_lithuanian_azerty.h b/quantum/keymap_extras/keymap_lithuanian_azerty.h index e88cc75e07..078dc87eb8 100644 --- a/quantum/keymap_extras/keymap_lithuanian_azerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_azerty.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_lithuanian_qwerty.h b/quantum/keymap_extras/keymap_lithuanian_qwerty.h index 3321615c1e..2a0b8696ab 100644 --- a/quantum/keymap_extras/keymap_lithuanian_qwerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_qwerty.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index 5d10f19fd5..8c6e8a08d1 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_nordic.h b/quantum/keymap_extras/keymap_nordic.h index 3a11b29fc8..8381e97e3e 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_norman.h b/quantum/keymap_extras/keymap_norman.h index d47c2ff8a7..09329fa109 100644 --- a/quantum/keymap_extras/keymap_norman.h +++ b/quantum/keymap_extras/keymap_norman.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_norwegian.h b/quantum/keymap_extras/keymap_norwegian.h index 021b8c3b9c..915a4edeec 100644 --- a/quantum/keymap_extras/keymap_norwegian.h +++ b/quantum/keymap_extras/keymap_norwegian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_plover.h b/quantum/keymap_extras/keymap_plover.h index e7facfd623..3c501d7587 100644 --- a/quantum/keymap_extras/keymap_plover.h +++ b/quantum/keymap_extras/keymap_plover.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_plover_dvorak.h b/quantum/keymap_extras/keymap_plover_dvorak.h index 5c8a4f9ada..ef7a058203 100644 --- a/quantum/keymap_extras/keymap_plover_dvorak.h +++ b/quantum/keymap_extras/keymap_plover_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_polish.h b/quantum/keymap_extras/keymap_polish.h index e5e48097f7..59b1488c1f 100644 --- a/quantum/keymap_extras/keymap_polish.h +++ b/quantum/keymap_extras/keymap_polish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_portuguese.h b/quantum/keymap_extras/keymap_portuguese.h index 44abaf6537..1dbfc083ab 100644 --- a/quantum/keymap_extras/keymap_portuguese.h +++ b/quantum/keymap_extras/keymap_portuguese.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_portuguese_mac_iso.h b/quantum/keymap_extras/keymap_portuguese_mac_iso.h index f2d04440fb..44c27f6098 100644 --- a/quantum/keymap_extras/keymap_portuguese_mac_iso.h +++ b/quantum/keymap_extras/keymap_portuguese_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_romanian.h b/quantum/keymap_extras/keymap_romanian.h index 9a7239e032..9e58129a4a 100644 --- a/quantum/keymap_extras/keymap_romanian.h +++ b/quantum/keymap_extras/keymap_romanian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h index b756a657df..2591989e88 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_russian_typewriter.h b/quantum/keymap_extras/keymap_russian_typewriter.h index 45fb1ede04..d0c15913ca 100644 --- a/quantum/keymap_extras/keymap_russian_typewriter.h +++ b/quantum/keymap_extras/keymap_russian_typewriter.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_serbian.h b/quantum/keymap_extras/keymap_serbian.h index 202322b591..2770ca29a2 100644 --- a/quantum/keymap_extras/keymap_serbian.h +++ b/quantum/keymap_extras/keymap_serbian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_serbian_latin.h b/quantum/keymap_extras/keymap_serbian_latin.h index e863aa4ed8..4f9749f452 100644 --- a/quantum/keymap_extras/keymap_serbian_latin.h +++ b/quantum/keymap_extras/keymap_serbian_latin.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_slovak.h b/quantum/keymap_extras/keymap_slovak.h index f5848a6aaf..6bede22ba7 100644 --- a/quantum/keymap_extras/keymap_slovak.h +++ b/quantum/keymap_extras/keymap_slovak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_slovenian.h b/quantum/keymap_extras/keymap_slovenian.h index 502f06ad64..ad9ce22f33 100644 --- a/quantum/keymap_extras/keymap_slovenian.h +++ b/quantum/keymap_extras/keymap_slovenian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish.h b/quantum/keymap_extras/keymap_spanish.h index dc23aea639..1c84ba947d 100644 --- a/quantum/keymap_extras/keymap_spanish.h +++ b/quantum/keymap_extras/keymap_spanish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish_dvorak.h b/quantum/keymap_extras/keymap_spanish_dvorak.h index e19a84b7e5..c9c1a7066f 100644 --- a/quantum/keymap_extras/keymap_spanish_dvorak.h +++ b/quantum/keymap_extras/keymap_spanish_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_spanish_latin_america.h b/quantum/keymap_extras/keymap_spanish_latin_america.h index 57329d20cd..404cbcbe19 100644 --- a/quantum/keymap_extras/keymap_spanish_latin_america.h +++ b/quantum/keymap_extras/keymap_spanish_latin_america.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish.h b/quantum/keymap_extras/keymap_swedish.h index a50f8af30d..ced83e0a7f 100644 --- a/quantum/keymap_extras/keymap_swedish.h +++ b/quantum/keymap_extras/keymap_swedish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_mac_ansi.h index 642c161dab..a2d8a5437d 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_mac_iso.h b/quantum/keymap_extras/keymap_swedish_mac_iso.h index 50387364cf..0338a9944f 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h index be1581bb3d..46187f4d17 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h index d50213f987..29878371cb 100644 --- a/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_pro_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swiss_de.h b/quantum/keymap_extras/keymap_swiss_de.h index 4ebdb5c610..7f74b30432 100644 --- a/quantum/keymap_extras/keymap_swiss_de.h +++ b/quantum/keymap_extras/keymap_swiss_de.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_swiss_fr.h b/quantum/keymap_extras/keymap_swiss_fr.h index 11fcc6536d..ada1837c94 100644 --- a/quantum/keymap_extras/keymap_swiss_fr.h +++ b/quantum/keymap_extras/keymap_swiss_fr.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_turkish_f.h b/quantum/keymap_extras/keymap_turkish_f.h index bbdaa3af25..f863c9036b 100644 --- a/quantum/keymap_extras/keymap_turkish_f.h +++ b/quantum/keymap_extras/keymap_turkish_f.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_turkish_q.h b/quantum/keymap_extras/keymap_turkish_q.h index d3fa00d7ae..7396fb3d20 100644 --- a/quantum/keymap_extras/keymap_turkish_q.h +++ b/quantum/keymap_extras/keymap_turkish_q.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_uk.h b/quantum/keymap_extras/keymap_uk.h index 7490af6cf6..6a43f4669f 100644 --- a/quantum/keymap_extras/keymap_uk.h +++ b/quantum/keymap_extras/keymap_uk.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_ukrainian.h b/quantum/keymap_extras/keymap_ukrainian.h index 78e39f8c75..3ceb4b8134 100644 --- a/quantum/keymap_extras/keymap_ukrainian.h +++ b/quantum/keymap_extras/keymap_ukrainian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us.h b/quantum/keymap_extras/keymap_us.h index b6e380ab23..5357be038c 100644 --- a/quantum/keymap_extras/keymap_us.h +++ b/quantum/keymap_extras/keymap_us.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_extended.h b/quantum/keymap_extras/keymap_us_extended.h index 4262a7c44e..08dc45c5cd 100644 --- a/quantum/keymap_extras/keymap_us_extended.h +++ b/quantum/keymap_extras/keymap_us_extended.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_international.h b/quantum/keymap_extras/keymap_us_international.h index adc7051fe4..247ab02778 100644 --- a/quantum/keymap_extras/keymap_us_international.h +++ b/quantum/keymap_extras/keymap_us_international.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_us_international_linux.h b/quantum/keymap_extras/keymap_us_international_linux.h index db315968d6..e9d5bde808 100644 --- a/quantum/keymap_extras/keymap_us_international_linux.h +++ b/quantum/keymap_extras/keymap_us_international_linux.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_workman.h b/quantum/keymap_extras/keymap_workman.h index 727e44512c..8a37a14265 100644 --- a/quantum/keymap_extras/keymap_workman.h +++ b/quantum/keymap_extras/keymap_workman.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_workman_zxcvm.h b/quantum/keymap_extras/keymap_workman_zxcvm.h index 4655af60d6..1ec111245e 100644 --- a/quantum/keymap_extras/keymap_workman_zxcvm.h +++ b/quantum/keymap_extras/keymap_workman_zxcvm.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 9c8004cc17..a751f08c75 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -70,12 +70,19 @@ uint8_t g_led_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}}; last_hit_t g_last_hit_tracker; #endif // LED_MATRIX_KEYREACTIVE_ENABLED +#ifndef LED_MATRIX_FLAG_STEPS +# define LED_MATRIX_FLAG_STEPS {LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE} +#endif +static const uint8_t led_matrix_flag_steps[] = LED_MATRIX_FLAG_STEPS; +#define LED_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(led_matrix_flag_steps) + // internals -static bool suspend_state = false; -static uint8_t led_last_enable = UINT8_MAX; -static uint8_t led_last_effect = UINT8_MAX; -static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; -static led_task_states led_task_state = SYNCING; +static bool suspend_state = false; +static uint8_t led_last_enable = UINT8_MAX; +static uint8_t led_last_effect = UINT8_MAX; +static uint8_t led_current_effect = 0; +static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; +static led_task_states led_task_state = SYNCING; // double buffers static uint32_t led_timer_buffer; @@ -261,6 +268,17 @@ static void led_task_start(void) { g_last_hit_tracker = last_hit_buffer; #endif // LED_MATRIX_KEYREACTIVE_ENABLED + // Ideally we would also stop sending zeros to the LED driver PWM buffers + // while suspended and just do a software shutdown. This is a cheap hack for now. + bool suspend_backlight = suspend_state || +#if LED_MATRIX_TIMEOUT > 0 + (last_input_activity_elapsed() > (uint32_t)LED_MATRIX_TIMEOUT) || +#endif // LED_MATRIX_TIMEOUT > 0 + false; + + // Set effect to be renedered + led_current_effect = suspend_backlight || !led_matrix_eeconfig.enable ? 0 : led_matrix_eeconfig.mode; + // next task led_task_state = RENDERING; } @@ -342,15 +360,7 @@ static void led_task_flush(uint8_t effect) { void led_matrix_task(void) { led_task_timers(); - // Ideally we would also stop sending zeros to the LED driver PWM buffers - // while suspended and just do a software shutdown. This is a cheap hack for now. - bool suspend_backlight = suspend_state || -#if LED_MATRIX_TIMEOUT > 0 - (last_input_activity_elapsed() > (uint32_t)LED_MATRIX_TIMEOUT) || -#endif // LED_MATRIX_TIMEOUT > 0 - false; - - uint8_t effect = suspend_backlight || !led_matrix_eeconfig.enable ? 0 : led_matrix_eeconfig.mode; + uint8_t effect = led_current_effect; switch (led_task_state) { case STARTING: @@ -661,6 +671,50 @@ void led_matrix_set_flags_noeeprom(led_flags_t flags) { led_matrix_set_flags_eeprom_helper(flags, false); } +void led_matrix_flags_step_helper(bool write_to_eeprom) { + led_flags_t flags = led_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < LED_MATRIX_FLAG_STEPS_COUNT; i++) { + if (led_matrix_flag_steps[i] == flags) { + next = i == LED_MATRIX_FLAG_STEPS_COUNT - 1 ? 0 : i + 1; + break; + } + } + + led_matrix_set_flags_eeprom_helper(led_matrix_flag_steps[next], write_to_eeprom); +} + +void led_matrix_flags_step_noeeprom(void) { + led_matrix_flags_step_helper(false); +} + +void led_matrix_flags_step(void) { + led_matrix_flags_step_helper(true); +} + +void led_matrix_flags_step_reverse_helper(bool write_to_eeprom) { + led_flags_t flags = led_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < LED_MATRIX_FLAG_STEPS_COUNT; i++) { + if (led_matrix_flag_steps[i] == flags) { + next = i == 0 ? LED_MATRIX_FLAG_STEPS_COUNT - 1 : i - 1; + break; + } + } + + led_matrix_set_flags_eeprom_helper(led_matrix_flag_steps[next], write_to_eeprom); +} + +void led_matrix_flags_step_reverse_noeeprom(void) { + led_matrix_flags_step_reverse_helper(false); +} + +void led_matrix_flags_step_reverse(void) { + led_matrix_flags_step_reverse_helper(true); +} + // LED Matrix naming #undef LED_MATRIX_EFFECT #ifdef LED_MATRIX_MODE_NAME_ENABLE diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 9a49515ab2..f484c700f4 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -183,6 +183,10 @@ void led_matrix_decrease_speed_noeeprom(void); led_flags_t led_matrix_get_flags(void); void led_matrix_set_flags(led_flags_t flags); void led_matrix_set_flags_noeeprom(led_flags_t flags); +void led_matrix_flags_step_noeeprom(void); +void led_matrix_flags_step(void); +void led_matrix_flags_step_reverse_noeeprom(void); +void led_matrix_flags_step_reverse(void); #ifdef LED_MATRIX_MODE_NAME_ENABLE const char *led_matrix_get_mode_name(uint8_t mode); diff --git a/quantum/logging/print.h b/quantum/logging/print.h index 984bc10758..ffb32a046e 100644 --- a/quantum/logging/print.h +++ b/quantum/logging/print.h @@ -30,8 +30,26 @@ #include "sendchar.h" #include "progmem.h" +/** + * @brief Configure the destination for routing all log data to. + */ void print_set_sendchar(sendchar_func_t func); +/** + * @def print_printf(fmt, ...) + * @brief Low-level logging entrypoint - should not be called directly + */ +#ifndef NO_PRINT +# if __has_include_next("_print.h") +# include_next "_print.h" // Include the platforms print.h - must export print_printf +# else +# include "printf.h" // Fall back to lib/printf/printf.h +# define print_printf printf +# endif +#else +# define print_printf(fmt, ...) // Remove ALL print defines +#endif + /** * @brief This macro suppress format warnings for the function that is passed * in. The main use-case is that `b` format specifier for printing binary @@ -48,26 +66,10 @@ void print_set_sendchar(sendchar_func_t func); _Pragma("GCC diagnostic pop"); \ } while (0) -#ifndef NO_PRINT -# if __has_include_next("_print.h") -# include_next "_print.h" /* Include the platforms print.h */ -# else -# include "printf.h" // // Fall back to lib/printf/printf.h -# define xprintf printf -# endif -#else -// Remove print defines -# undef xprintf -# define xprintf(fmt, ...) -#endif - -// Resolve before USER_PRINT can remove -#define uprintf xprintf - #ifdef USER_PRINT -// Remove normal print defines -# undef xprintf -# define xprintf(fmt, ...) +# define xprintf(fmt, ...) // Remove normal print defines +#else +# define xprintf print_printf #endif #define print(s) xprintf(s) @@ -108,6 +110,8 @@ void print_set_sendchar(sendchar_func_t func); // // !!! DO NOT USE USER PRINT CALLS IN THE BODY OF QMK/TMK !!! +#define uprintf print_printf + #define uprint(s) uprintf(s) #define uprintln(s) uprintf(s "\r\n") diff --git a/quantum/matrix.c b/quantum/matrix.c index 167a70e5b6..ccedcc3f79 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -54,7 +54,7 @@ static SPLIT_MUTABLE pin_t direct_pins[MATRIX_ROWS_PER_HAND][MATRIX_COLS] = DIRE static SPLIT_MUTABLE_ROW pin_t row_pins[MATRIX_ROWS_PER_HAND] = MATRIX_ROW_PINS; # endif // MATRIX_ROW_PINS # ifdef MATRIX_COL_PINS -static SPLIT_MUTABLE_COL pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +static SPLIT_MUTABLE_COL pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; # endif // MATRIX_COL_PINS #endif @@ -269,7 +269,7 @@ __attribute__((weak)) void matrix_read_rows_on_col(matrix_row_t current_matrix[] void matrix_init(void) { #ifdef SPLIT_KEYBOARD // Set pinout for right half if pinout for that half is defined - if (!isLeftHand) { + if (!is_keyboard_left()) { # ifdef DIRECT_PINS_RIGHT const pin_t direct_pins_right[MATRIX_ROWS_PER_HAND][MATRIX_COLS] = DIRECT_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_ROWS_PER_HAND; i++) { @@ -292,7 +292,7 @@ void matrix_init(void) { # endif } - thisHand = isLeftHand ? 0 : (MATRIX_ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (MATRIX_ROWS_PER_HAND); thatHand = MATRIX_ROWS_PER_HAND - thisHand; #endif @@ -303,7 +303,7 @@ void matrix_init(void) { memset(matrix, 0, sizeof(matrix)); memset(raw_matrix, 0, sizeof(raw_matrix)); - debounce_init(MATRIX_ROWS_PER_HAND); + debounce_init(); matrix_init_kb(); } @@ -336,9 +336,9 @@ uint8_t matrix_scan(void) { if (changed) memcpy(raw_matrix, curr_matrix, sizeof(curr_matrix)); #ifdef SPLIT_KEYBOARD - changed = debounce(raw_matrix, matrix + thisHand, MATRIX_ROWS_PER_HAND, changed) | matrix_post_scan(); + changed = debounce(raw_matrix, matrix + thisHand, changed) | matrix_post_scan(); #else - changed = debounce(raw_matrix, matrix, MATRIX_ROWS_PER_HAND, changed); + changed = debounce(raw_matrix, matrix, changed); matrix_scan_kb(); #endif return (uint8_t)changed; diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index b4a86fc483..47669cb6f2 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -144,7 +144,7 @@ __attribute__((weak)) void matrix_slave_scan_user(void) {} __attribute__((weak)) void matrix_init(void) { #ifdef SPLIT_KEYBOARD - thisHand = isLeftHand ? 0 : (MATRIX_ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (MATRIX_ROWS_PER_HAND); thatHand = MATRIX_ROWS_PER_HAND - thisHand; #endif @@ -156,7 +156,7 @@ __attribute__((weak)) void matrix_init(void) { matrix[i] = 0; } - debounce_init(MATRIX_ROWS_PER_HAND); + debounce_init(); matrix_init_kb(); } @@ -165,9 +165,9 @@ __attribute__((weak)) uint8_t matrix_scan(void) { bool changed = matrix_scan_custom(raw_matrix); #ifdef SPLIT_KEYBOARD - changed = debounce(raw_matrix, matrix + thisHand, MATRIX_ROWS_PER_HAND, changed) | matrix_post_scan(); + changed = debounce(raw_matrix, matrix + thisHand, changed) | matrix_post_scan(); #else - changed = debounce(raw_matrix, matrix, MATRIX_ROWS_PER_HAND, changed); + changed = debounce(raw_matrix, matrix, changed); matrix_scan_kb(); #endif diff --git a/quantum/mousekey.c b/quantum/mousekey.c index 9649943a0d..7d376ecf8c 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -386,7 +386,8 @@ void mousekey_task(void) { void mousekey_on(uint8_t code) { # ifdef MK_KINETIC_SPEED - if (mouse_timer == 0) { + // Start kinetic timer when movement keycodes are pressed + if (mouse_timer == 0 && (IS_MOUSEKEY_MOVE(code) || IS_MOUSEKEY_WHEEL(code))) { mouse_timer = timer_read(); } # endif @@ -501,7 +502,7 @@ void mousekey_off(uint8_t code) { enum { mkspd_unmod, mkspd_0, mkspd_1, mkspd_2, mkspd_COUNT }; # ifndef MK_MOMENTARY_ACCEL -static uint8_t mk_speed = mkspd_1; +static uint8_t mk_speed = mkspd_1; # else static uint8_t mk_speed = mkspd_unmod; static uint8_t mkspd_DEFAULT = mkspd_unmod; diff --git a/quantum/nvm/eeprom/nvm_dynamic_keymap.c b/quantum/nvm/eeprom/nvm_dynamic_keymap.c index 5ff49795b2..affad8213d 100644 --- a/quantum/nvm/eeprom/nvm_dynamic_keymap.c +++ b/quantum/nvm/eeprom/nvm_dynamic_keymap.c @@ -124,7 +124,7 @@ void nvm_dynamic_keymap_update_encoder(uint8_t layer, uint8_t encoder_id, bool c void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + void *source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); uint8_t *target = data; for (uint32_t i = 0; i < size; i++) { if (offset + i < dynamic_keymap_eeprom_size) { @@ -139,7 +139,7 @@ void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *dat void nvm_dynamic_keymap_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + void *target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); uint8_t *source = data; for (uint32_t i = 0; i < size; i++) { if (offset + i < dynamic_keymap_eeprom_size) { @@ -155,7 +155,7 @@ uint32_t nvm_dynamic_keymap_macro_size(void) { } void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + void *source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); uint8_t *target = data; for (uint16_t i = 0; i < size; i++) { if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { @@ -169,7 +169,7 @@ void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_ } void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + void *target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); uint8_t *source = data; for (uint16_t i = 0; i < size; i++) { if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { @@ -181,8 +181,8 @@ void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint } void nvm_dynamic_keymap_macro_reset(void) { - void * start = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); - void * end = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); + void *start = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); + void *end = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); long remaining = end - start; uint8_t dummy[16] = {0}; for (int i = 0; i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; i += sizeof(dummy)) { diff --git a/quantum/nvm/eeprom/nvm_eeconfig.c b/quantum/nvm/eeprom/nvm_eeconfig.c index d9495d2753..247f623e97 100644 --- a/quantum/nvm/eeprom/nvm_eeconfig.c +++ b/quantum/nvm/eeprom/nvm_eeconfig.c @@ -246,8 +246,8 @@ uint32_t nvm_eeconfig_update_kb_datablock(const void *data, uint32_t offset, uin void nvm_eeconfig_init_kb_datablock(void) { eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); - void * start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK); - void * end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + EECONFIG_KB_DATA_SIZE); + void *start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK); + void *end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + EECONFIG_KB_DATA_SIZE); long remaining = end - start; uint8_t dummy[16] = {0}; for (int i = 0; i < EECONFIG_KB_DATA_SIZE; i += sizeof(dummy)) { @@ -290,8 +290,8 @@ uint32_t nvm_eeconfig_update_user_datablock(const void *data, uint32_t offset, u void nvm_eeconfig_init_user_datablock(void) { eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); - void * start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK); - void * end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + EECONFIG_USER_DATA_SIZE); + void *start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK); + void *end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + EECONFIG_USER_DATA_SIZE); long remaining = end - start; uint8_t dummy[16] = {0}; for (int i = 0; i < EECONFIG_USER_DATA_SIZE; i += sizeof(dummy)) { diff --git a/quantum/nvm/readme.md b/quantum/nvm/readme.md index 0731695e92..3f5a2a495e 100644 --- a/quantum/nvm/readme.md +++ b/quantum/nvm/readme.md @@ -27,4 +27,4 @@ At the base `nvm` level, for every QMK core system which requires persistence th Each `nvm` "provider" is a corresponding child directory consisting of its name, such as `eeprom`, and corresponding `nvm_<>.c` implementation files which provide the concrete implementation of the upper `nvm_<>.h`. -New systems requiring persistence can add the corresponding `nvm_<>.h` file, and in most circumstances must also implement equivalent `nvm_<>.c` files for every `nvm` provider. If persistence is not possible for that system, a `nvm_<>.c` file with simple stubs which ignore writes and provide sane defaults must be used instead. \ No newline at end of file +New systems requiring persistence can add the corresponding `nvm_<>.h` file, and in most circumstances must also implement equivalent `nvm_<>.c` files for every `nvm` provider. If persistence is not possible for that system, a `nvm_<>.c` file with simple stubs which ignore writes and provide sane defaults must be used instead. diff --git a/quantum/os_detection.c b/quantum/os_detection.c index 552375f61c..2a5237dfc3 100644 --- a/quantum/os_detection.c +++ b/quantum/os_detection.c @@ -23,7 +23,7 @@ #endif #ifdef OS_DETECTION_DEBUG_ENABLE -# include "eeconfig.h" +# include "nvm_eeprom_eeconfig_internal.h" # include "eeprom.h" # include "print.h" diff --git a/quantum/painter/lvgl/qp_lvgl.c b/quantum/painter/lvgl/qp_lvgl.c index 877b2652c6..dc639b5a36 100644 --- a/quantum/painter/lvgl/qp_lvgl.c +++ b/quantum/painter/lvgl/qp_lvgl.c @@ -17,7 +17,7 @@ static deferred_executor_t lvgl_executors[2] = {0}; // For lv_tick_inc and lv_ta static lvgl_state_t lvgl_states[2] = {0}; // For lv_tick_inc and lv_task_handler painter_device_t selected_display = NULL; -void * color_buffer = NULL; +void *color_buffer = NULL; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter LVGL Integration Internal: qp_lvgl_flush @@ -33,7 +33,7 @@ void qp_lvgl_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color } static uint32_t tick_task_callback(uint32_t trigger_time, void *cb_arg) { - lvgl_state_t * state = (lvgl_state_t *)cb_arg; + lvgl_state_t *state = (lvgl_state_t *)cb_arg; static uint32_t last_tick = 0; switch (state->fnc_id) { case 0: { @@ -97,7 +97,7 @@ bool qp_lvgl_attach(painter_device_t device) { static lv_disp_draw_buf_t draw_buf; // Allocate a buffer for 1/10 screen size const size_t count_required = driver->panel_width * driver->panel_height / 10; - void * new_color_buffer = realloc(color_buffer, sizeof(lv_color_t) * count_required); + void *new_color_buffer = realloc(color_buffer, sizeof(lv_color_t) * count_required); if (!new_color_buffer) { qp_dprintf("qp_lvgl_attach: fail (could not set up memory buffer)\n"); qp_lvgl_detach(); diff --git a/quantum/painter/qff.h b/quantum/painter/qff.h index ed88508d73..f5c59b315b 100644 --- a/quantum/painter/qff.h +++ b/quantum/painter/qff.h @@ -22,7 +22,7 @@ #define QFF_FONT_DESCRIPTOR_TYPEID 0x00 -typedef struct QP_PACKED qff_font_descriptor_v1_t { +typedef struct PACKED qff_font_descriptor_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x00, .neg_type_id = (~0x00), .length = 20 } uint32_t magic : 24; // constant, equal to 0x464651 ("QFF") uint8_t qff_version; // constant, equal to 0x01 @@ -51,13 +51,13 @@ STATIC_ASSERT(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) #define QFF_GLYPH_OFFSET_BITS 18 #define QFF_GLYPH_OFFSET_MASK (((1 << QFF_GLYPH_OFFSET_BITS) - 1) << QFF_GLYPH_WIDTH_BITS) -typedef struct QP_PACKED qff_ascii_glyph_v1_t { +typedef struct PACKED qff_ascii_glyph_v1_t { uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined } qff_ascii_glyph_v1_t; STATIC_ASSERT(sizeof(qff_ascii_glyph_v1_t) == 3, "qff_ascii_glyph_v1_t must be 3 bytes in v1 of QFF"); -typedef struct QP_PACKED qff_ascii_glyph_table_v1_t { +typedef struct PACKED qff_ascii_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = 285 } qff_ascii_glyph_v1_t glyph[95]; // 95 glyphs, 0x20..0x7E } qff_ascii_glyph_table_v1_t; @@ -69,14 +69,14 @@ STATIC_ASSERT(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_ #define QFF_UNICODE_GLYPH_DESCRIPTOR_TYPEID 0x02 -typedef struct QP_PACKED qff_unicode_glyph_v1_t { +typedef struct PACKED qff_unicode_glyph_v1_t { uint32_t code_point : 24; uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined } qff_unicode_glyph_v1_t; STATIC_ASSERT(sizeof(qff_unicode_glyph_v1_t) == 6, "qff_unicode_glyph_v1_t must be 6 bytes in v1 of QFF"); -typedef struct QP_PACKED qff_unicode_glyph_table_v1_t { +typedef struct PACKED qff_unicode_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = (N * 6) } qff_unicode_glyph_v1_t glyph[0]; // Extent of '0' signifies that this struct is immediately followed by the glyph data } qff_unicode_glyph_table_v1_t; diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c index 07c3f80314..e5a1895b74 100644 --- a/quantum/painter/qgf.c +++ b/quantum/painter/qgf.c @@ -26,7 +26,7 @@ bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typ bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native) { // clang-format off - static const struct QP_PACKED { + static const struct PACKED { uint8_t bpp; bool has_palette; bool is_panel_native; diff --git a/quantum/painter/qgf.h b/quantum/painter/qgf.h index a1e245f15d..87a9124f27 100644 --- a/quantum/painter/qgf.h +++ b/quantum/painter/qgf.h @@ -19,7 +19,7 @@ ///////////////////////////////////////// // Common block header -typedef struct QP_PACKED qgf_block_header_v1_t { +typedef struct PACKED qgf_block_header_v1_t { uint8_t type_id; // See each respective block type below. uint8_t neg_type_id; // Negated type ID, used for detecting parsing errors. uint32_t length : 24; // 24-bit blob length, allowing for block sizes of a maximum of 16MB. @@ -32,7 +32,7 @@ STATIC_ASSERT(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be #define QGF_GRAPHICS_DESCRIPTOR_TYPEID 0x00 -typedef struct QP_PACKED qgf_graphics_descriptor_v1_t { +typedef struct PACKED qgf_graphics_descriptor_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x00, .neg_type_id = (~0x00), .length = 18 } uint32_t magic : 24; // constant, equal to 0x464751 ("QGF") uint8_t qgf_version; // constant, equal to 0x01 @@ -52,7 +52,7 @@ STATIC_ASSERT(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v #define QGF_FRAME_OFFSET_DESCRIPTOR_TYPEID 0x01 -typedef struct QP_PACKED qgf_frame_offsets_v1_t { +typedef struct PACKED qgf_frame_offsets_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = (N * sizeof(uint32_t)) } uint32_t offset[0]; // '0' signifies that this struct is immediately followed by the frame offsets } qgf_frame_offsets_v1_t; @@ -64,7 +64,7 @@ STATIC_ASSERT(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t), " #define QGF_FRAME_DESCRIPTOR_TYPEID 0x02 -typedef struct QP_PACKED qgf_frame_v1_t { +typedef struct PACKED qgf_frame_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = 6 } qp_image_format_t format : 8; // Frame format, see qp_internal_formats.h. uint8_t flags; // Frame flags, see below. @@ -83,7 +83,7 @@ STATIC_ASSERT(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qg #define QGF_FRAME_PALETTE_DESCRIPTOR_TYPEID 0x03 -typedef struct QP_PACKED qgf_palette_entry_v1_t { +typedef struct PACKED qgf_palette_entry_v1_t { uint8_t h; // hue component: `[0,360)` degrees is mapped to `[0,255]` uint8_t. uint8_t s; // saturation component: `[0,1]` is mapped to `[0,255]` uint8_t. uint8_t v; // value component: `[0,1]` is mapped to `[0,255]` uint8_t. @@ -91,7 +91,7 @@ typedef struct QP_PACKED qgf_palette_entry_v1_t { STATIC_ASSERT(sizeof(qgf_palette_entry_v1_t) == 3, "Palette entry is not 3 bytes in size"); -typedef struct QP_PACKED qgf_palette_v1_t { +typedef struct PACKED qgf_palette_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x03, .neg_type_id = (~0x03), .length = (N * 3 * sizeof(uint8_t)) } qgf_palette_entry_v1_t hsv[0]; // N * hsv, where N is the number of palette entries depending on the frame format in the descriptor } qgf_palette_v1_t; @@ -103,7 +103,7 @@ STATIC_ASSERT(sizeof(qgf_palette_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_pa #define QGF_FRAME_DELTA_DESCRIPTOR_TYPEID 0x04 -typedef struct QP_PACKED qgf_delta_v1_t { +typedef struct PACKED qgf_delta_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x04, .neg_type_id = (~0x04), .length = 8 } uint16_t left; // The left pixel location to draw the delta image uint16_t top; // The top pixel location to draw the delta image @@ -118,7 +118,7 @@ STATIC_ASSERT(sizeof(qgf_delta_v1_t) == (sizeof(qgf_block_header_v1_t) + 8), "qg #define QGF_FRAME_DATA_DESCRIPTOR_TYPEID 0x05 -typedef struct QP_PACKED qgf_data_v1_t { +typedef struct PACKED qgf_data_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x05, .neg_type_id = (~0x05), .length = N } uint8_t data[0]; // 0 signifies that this struct is immediately followed by the length of data specified in the header } qgf_data_v1_t; diff --git a/quantum/painter/qp_comms.c b/quantum/painter/qp_comms.c index 402165b119..d7f80266c5 100644 --- a/quantum/painter/qp_comms.c +++ b/quantum/painter/qp_comms.c @@ -50,7 +50,7 @@ uint32_t qp_comms_send(painter_device_t device, const void *data, uint32_t byte_ // Comms APIs that use a D/C pin bool qp_comms_command(painter_device_t device, uint8_t cmd) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable; return comms_vtable->send_command(device, cmd); } @@ -66,7 +66,7 @@ uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const vo } bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable; return comms_vtable->bulk_command_sequence(device, sequence, sequence_len); } diff --git a/quantum/painter/qp_draw_core.c b/quantum/painter/qp_draw_core.c index 852abb19e8..3958045943 100644 --- a/quantum/painter/qp_draw_core.c +++ b/quantum/painter/qp_draw_core.c @@ -52,7 +52,7 @@ bool qp_internal_setpixel_impl(painter_device_t device, uint16_t x, uint16_t y) void qp_internal_fill_pixdata(painter_device_t device, uint32_t num_pixels, uint8_t hue, uint8_t sat, uint8_t val) { painter_driver_t *driver = (painter_driver_t *)device; uint32_t pixels_in_pixdata = qp_internal_num_pixels_in_buffer(device); - num_pixels = QP_MIN(pixels_in_pixdata, num_pixels); + num_pixels = MIN(pixels_in_pixdata, num_pixels); // Convert the color to native pixel format qp_pixel_t color = {.hsv888 = {.h = hue, .s = sat, .v = val}}; @@ -232,17 +232,17 @@ bool qp_internal_fillrect_helper_impl(painter_device_t device, uint16_t left, ui uint32_t pixels_in_pixdata = qp_internal_num_pixels_in_buffer(device); painter_driver_t *driver = (painter_driver_t *)device; - uint16_t l = QP_MIN(left, right); - uint16_t r = QP_MAX(left, right); - uint16_t t = QP_MIN(top, bottom); - uint16_t b = QP_MAX(top, bottom); + uint16_t l = MIN(left, right); + uint16_t r = MAX(left, right); + uint16_t t = MIN(top, bottom); + uint16_t b = MAX(top, bottom); uint16_t w = r - l + 1; uint16_t h = b - t + 1; uint32_t remaining = w * h; driver->driver_vtable->viewport(device, l, t, r, b); while (remaining > 0) { - uint32_t transmit = QP_MIN(remaining, pixels_in_pixdata); + uint32_t transmit = MIN(remaining, pixels_in_pixdata); if (!driver->driver_vtable->pixdata(device, qp_internal_global_pixdata_buffer, transmit)) { return false; } @@ -260,10 +260,10 @@ bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t righ } // Cater for cases where people have submitted the coordinates backwards - uint16_t l = QP_MIN(left, right); - uint16_t r = QP_MAX(left, right); - uint16_t t = QP_MIN(top, bottom); - uint16_t b = QP_MAX(top, bottom); + uint16_t l = MIN(left, right); + uint16_t r = MAX(left, right); + uint16_t t = MIN(top, bottom); + uint16_t b = MAX(top, bottom); uint16_t w = r - l + 1; uint16_t h = b - t + 1; @@ -281,7 +281,7 @@ bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t righ ret = qp_internal_fillrect_helper_impl(device, l, t, r, b); } else { // Fill up the pixdata buffer with the required number of native pixels - qp_internal_fill_pixdata(device, QP_MAX(w, h), hue, sat, val); + qp_internal_fill_pixdata(device, MAX(w, h), hue, sat, val); // Draw 4x filled single-width rects to create an outline if (!qp_internal_fillrect_helper_impl(device, l, t, r, t) || !qp_internal_fillrect_helper_impl(device, l, b, r, b) || !qp_internal_fillrect_helper_impl(device, l, t + 1, l, b - 1) || !qp_internal_fillrect_helper_impl(device, r, t + 1, r, b - 1)) { diff --git a/quantum/painter/qp_draw_ellipse.c b/quantum/painter/qp_draw_ellipse.c index 9e77bca8b0..22f019d179 100644 --- a/quantum/painter/qp_draw_ellipse.c +++ b/quantum/painter/qp_draw_ellipse.c @@ -75,7 +75,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, int16_t dx = 0; int16_t dy = ((int16_t)sizey); - qp_internal_fill_pixdata(device, QP_MAX(sizex, sizey), hue, sat, val); + qp_internal_fill_pixdata(device, MAX(sizex, sizey), hue, sat, val); if (!qp_comms_start(device)) { qp_dprintf("qp_ellipse: fail (could not start comms)\n"); diff --git a/quantum/painter/qp_draw_text.c b/quantum/painter/qp_draw_text.c index 664c89c6e5..f5aa38ec1c 100644 --- a/quantum/painter/qp_draw_text.c +++ b/quantum/painter/qp_draw_text.c @@ -343,14 +343,14 @@ typedef struct code_point_iter_drawglyph_state_t { int16_t xpos; int16_t ypos; qp_internal_byte_input_callback input_callback; - qp_internal_byte_input_state_t * input_state; + qp_internal_byte_input_state_t *input_state; qp_internal_pixel_output_state_t *output_state; } code_point_iter_drawglyph_state_t; // Codepoint handler callback: drawing static inline bool qp_font_code_point_handler_drawglyph(qff_font_handle_t *qff_font, uint32_t code_point, uint8_t width, uint8_t height, void *cb_arg) { code_point_iter_drawglyph_state_t *state = (code_point_iter_drawglyph_state_t *)cb_arg; - painter_driver_t * driver = (painter_driver_t *)state->device; + painter_driver_t *driver = (painter_driver_t *)state->device; // Reset the input state's RLE mode -- the stream should already be correctly positioned by qp_iterate_code_points() state->input_state->rle.mode = MARKER_BYTE; // ignored if not using RLE diff --git a/quantum/painter/qp_internal.h b/quantum/painter/qp_internal.h index e7a6d113c5..52b1b5c69d 100644 --- a/quantum/painter/qp_internal.h +++ b/quantum/painter/qp_internal.h @@ -5,17 +5,11 @@ #include "quantum.h" #include "qp.h" +#include "util.h" // PACKED/MIN/MAX //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Helpers -// Mark certain types that there should be no padding bytes between members. -#define QP_PACKED __attribute__((packed)) - -// Min/max defines -#define QP_MIN(X, Y) (((X) < (Y)) ? (X) : (Y)) -#define QP_MAX(X, Y) (((X) > (Y)) ? (X) : (Y)) - #ifdef QUANTUM_PAINTER_DEBUG # include # include diff --git a/quantum/painter/qp_internal_driver.h b/quantum/painter/qp_internal_driver.h index 5b6efe2c83..4c59a31cc2 100644 --- a/quantum/painter/qp_internal_driver.h +++ b/quantum/painter/qp_internal_driver.h @@ -60,7 +60,7 @@ typedef struct painter_comms_with_command_vtable_t { typedef struct painter_driver_t { const painter_driver_vtable_t *driver_vtable; - const painter_comms_vtable_t * comms_vtable; + const painter_comms_vtable_t *comms_vtable; // Flag signifying if validation was successful bool validate_ok; diff --git a/quantum/painter/qp_internal_formats.h b/quantum/painter/qp_internal_formats.h index bd7105cab2..28cff0cd61 100644 --- a/quantum/painter/qp_internal_formats.h +++ b/quantum/painter/qp_internal_formats.h @@ -3,6 +3,7 @@ #pragma once +#include "color.h" #include "compiler_support.h" #include "qp_internal.h" @@ -10,21 +11,13 @@ // Quantum Painter pixel formats // Datatype containing a pixel's color. The internal member used is dependent on the external context. -typedef union QP_PACKED qp_pixel_t { +typedef union PACKED qp_pixel_t { uint8_t mono; uint8_t palette_idx; - struct QP_PACKED { - uint8_t h; - uint8_t s; - uint8_t v; - } hsv888; + hsv_t hsv888; - struct QP_PACKED { - uint8_t r; - uint8_t g; - uint8_t b; - } rgb888; + rgb_t rgb888; uint16_t rgb565; diff --git a/quantum/painter/qp_stream.h b/quantum/painter/qp_stream.h index 4f2b612e43..510b408d6e 100644 --- a/quantum/painter/qp_stream.h +++ b/quantum/painter/qp_stream.h @@ -62,7 +62,7 @@ typedef struct qp_stream_t { typedef struct qp_memory_stream_t { qp_stream_t base; - uint8_t * buffer; + uint8_t *buffer; int32_t length; int32_t position; bool is_eof; @@ -77,7 +77,7 @@ qp_memory_stream_t qp_make_memory_stream(void *buffer, int32_t length); typedef struct qp_file_stream_t { qp_stream_t base; - FILE * file; + FILE *file; } qp_file_stream_t; qp_file_stream_t qp_make_file_stream(FILE *f); diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk index 10c2698092..2c5bc17eed 100644 --- a/quantum/painter/rules.mk +++ b/quantum/painter/rules.mk @@ -247,7 +247,8 @@ ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_SURFACE)), yes) SRC += \ $(DRIVER_PATH)/painter/generic/qp_surface_common.c \ $(DRIVER_PATH)/painter/generic/qp_surface_mono1bpp.c \ - $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c + $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c \ + $(DRIVER_PATH)/painter/generic/qp_surface_rgb888.c endif # If dummy comms is needed, set up the required files diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index fe88d5a1af..622b6ae5e8 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -582,4 +582,4 @@ __attribute__((weak)) void pointing_device_keycode_handler(uint16_t keycode, boo uint16_t pointing_device_get_hires_scroll_resolution(void) { return hires_scroll_resolution; } -#endif \ No newline at end of file +#endif diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 5dfb9ce196..78c5f326de 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -39,6 +39,14 @@ typedef struct { #elif defined(POINTING_DEVICE_DRIVER_pmw3320) # include "drivers/sensors/pmw3320.h" # define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW +#elif defined(POINTING_DEVICE_DRIVER_paw3222) +# include "spi_master.h" +# include "drivers/sensors/paw3222.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW +#elif defined(POINTING_DEVICE_DRIVER_pmw3325) +# include "spi_master.h" +# include "drivers/sensors/pmw3325.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_adns9800) # include "spi_master.h" # include "drivers/sensors/adns9800.h" diff --git a/quantum/process_keycode/process_autocorrect.c b/quantum/process_keycode/process_autocorrect.c index 0cde520778..6696ea25a8 100644 --- a/quantum/process_keycode/process_autocorrect.c +++ b/quantum/process_keycode/process_autocorrect.c @@ -309,7 +309,7 @@ bool process_autocorrect(uint16_t keycode, keyrecord_t *record) { if (code & 128) { // A typo was found! Apply autocorrect. const uint8_t backspaces = (code & 63) + !record->event.pressed; - const char * changes = (const char *)(autocorrect_data + state + 1); + const char *changes = (const char *)(autocorrect_data + state + 1); /* Gather info about the typo'd word * diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index c99a66a74b..9485498ec1 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -200,9 +200,8 @@ static inline uint16_t _get_combo_term(uint16_t combo_index, combo_t *combo) { } void clear_combos(void) { - uint16_t index = 0; - longest_term = 0; - for (index = 0; index < combo_count(); ++index) { + longest_term = 0; + for (uint16_t index = 0; index < combo_count(); ++index) { combo_t *combo = combo_get(index); if (!COMBO_ACTIVE(combo)) { RESET_COMBO_STATE(combo); @@ -225,7 +224,7 @@ static inline void dump_key_buffer(void) { key_buffer_next = key_buffer_i + 1; queued_record_t *qrecord = &key_buffer[key_buffer_i]; - keyrecord_t * record = &qrecord->record; + keyrecord_t *record = &qrecord->record; if (IS_NOEVENT(record->event)) { continue; @@ -318,14 +317,14 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { #if defined(EXTRA_EXTRA_LONG_COMBOS) uint32_t state = 0; #elif defined(EXTRA_LONG_COMBOS) - uint16_t state = 0; + uint16_t state = 0; #else uint8_t state = 0; #endif for (uint8_t key_buffer_i = 0; key_buffer_i < key_buffer_size; key_buffer_i++) { queued_record_t *qrecord = &key_buffer[key_buffer_i]; - keyrecord_t * record = &qrecord->record; + keyrecord_t *record = &qrecord->record; uint16_t keycode = qrecord->keycode; uint8_t key_count = 0; @@ -347,6 +346,10 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { qrecord->combo_index = combo_index; ACTIVATE_COMBO(combo); + if (key_count == 1) { + release_combo(combo_index, combo); + } + break; } else { // key was part of the combo but not the last one, "disable" it @@ -361,7 +364,7 @@ static inline void apply_combos(void) { // Apply all buffered normal combos. for (uint8_t i = combo_buffer_read; i != combo_buffer_write; INCREMENT_MOD(i)) { queued_combo_t *buffered_combo = &combo_buffer[i]; - combo_t * combo = combo_get(buffered_combo->combo_index); + combo_t *combo = combo_get(buffered_combo->combo_index); #ifdef COMBO_MUST_TAP_PER_COMBO if (get_combo_must_tap(buffered_combo->combo_index, combo)) { @@ -389,7 +392,9 @@ combo_t *overlaps(combo_t *combo1, combo_t *combo2) { while ((key1 = pgm_read_word(&combo1->keys[idx1])) != COMBO_END) { idx2 = 0; while ((key2 = pgm_read_word(&combo2->keys[idx2])) != COMBO_END) { - if (key1 == key2) overlaps = true; + if (key1 == key2) { + overlaps = true; + } idx2 += 1; } idx1 += 1; @@ -466,7 +471,7 @@ static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, combo_t *drop = NULL; for (uint8_t combo_buffer_i = combo_buffer_read; combo_buffer_i != combo_buffer_write; INCREMENT_MOD(combo_buffer_i)) { queued_combo_t *qcombo = &combo_buffer[combo_buffer_i]; - combo_t * buffered_combo = combo_get(qcombo->combo_index); + combo_t *buffered_combo = combo_get(qcombo->combo_index); if ((drop = overlaps(buffered_combo, combo))) { DISABLE_COMBO(drop); @@ -552,8 +557,7 @@ static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, } bool process_combo(uint16_t keycode, keyrecord_t *record) { - uint8_t is_combo_key = COMBO_KEY_NOT_PRESSED; - bool no_combo_keys_pressed = true; + uint8_t is_combo_key = COMBO_KEY_NOT_PRESSED; if (keycode == QK_COMBO_ON && record->event.pressed) { combo_enable(); @@ -574,8 +578,8 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { /* Only check keycodes from one layer. */ keycode = keymap_key_to_keycode(COMBO_ONLY_FROM_LAYER, record->event.key); #else - uint8_t highest_layer = get_highest_layer(layer_state | default_layer_state); - uint8_t ref_layer = combo_ref_from_layer(highest_layer); + uint8_t highest_layer = get_highest_layer(layer_state | default_layer_state); + uint8_t ref_layer = combo_ref_from_layer(highest_layer); if (ref_layer != highest_layer) { keycode = keymap_key_to_keycode(ref_layer, record->event.key); } @@ -584,7 +588,6 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { for (uint16_t idx = 0; idx < combo_count(); ++idx) { combo_t *combo = combo_get(idx); is_combo_key |= process_single_combo(combo, keycode, record, idx); - no_combo_keys_pressed = no_combo_keys_pressed && (NO_COMBO_KEYS_ARE_DOWN || COMBO_ACTIVE(combo) || COMBO_DISABLED(combo)); } if (record->event.pressed && is_combo_key) { @@ -637,12 +640,11 @@ void combo_task(void) { if (combo_buffer_read != combo_buffer_write) { apply_combos(); longest_term = 0; - timer = 0; } else { dump_key_buffer(); - timer = 0; clear_combos(); } + timer = 0; } #endif } diff --git a/quantum/process_keycode/process_combo.h b/quantum/process_keycode/process_combo.h index f1d534236e..201a53e259 100644 --- a/quantum/process_keycode/process_combo.h +++ b/quantum/process_keycode/process_combo.h @@ -45,8 +45,8 @@ typedef struct combo_t { #ifdef EXTRA_SHORT_COMBOS uint8_t state; #else - bool disabled; - bool active; + bool disabled; + bool active; # if defined(EXTRA_EXTRA_LONG_COMBOS) uint32_t state; # elif defined(EXTRA_LONG_COMBOS) @@ -57,10 +57,8 @@ typedef struct combo_t { #endif } combo_t; -#define COMBO(ck, ca) \ - { .keys = &(ck)[0], .keycode = (ca) } -#define COMBO_ACTION(ck) \ - { .keys = &(ck)[0] } +#define COMBO(ck, ca) {.keys = &(ck)[0], .keycode = (ca)} +#define COMBO_ACTION(ck) {.keys = &(ck)[0]} #define COMBO_END 0 #ifndef COMBO_TERM diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index f8e8256ac8..3195791849 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -89,6 +89,11 @@ __attribute__((weak)) bool dynamic_macro_valid_key_user(uint16_t keycode, keyrec #define DYNAMIC_MACRO_CURRENT_LENGTH(BEGIN, POINTER) ((int)(direction * ((POINTER) - (BEGIN)))) #define DYNAMIC_MACRO_CURRENT_CAPACITY(BEGIN, END2) ((int)(direction * ((END2) - (BEGIN)) + 1)) +#ifdef DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE +static layer_state_t dm1_layer_state; +static layer_state_t dm2_layer_state; +#endif + /** * Start recording of the dynamic macro. * @@ -100,8 +105,16 @@ void dynamic_macro_record_start(keyrecord_t **macro_pointer, keyrecord_t *macro_ dynamic_macro_record_start_kb(direction); - clear_keyboard(); +#ifdef DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE + if (direction == 1) { + dm1_layer_state = layer_state; + } else if (direction == -1) { + dm2_layer_state = layer_state; + } +#else layer_clear(); +#endif + clear_keyboard(); *macro_pointer = macro_buffer; } @@ -118,7 +131,15 @@ void dynamic_macro_play(keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_ layer_state_t saved_layer_state = layer_state; clear_keyboard(); +#ifdef DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE + if (direction == 1) { + layer_state_set(dm1_layer_state); + } else if (direction == -1) { + layer_state_set(dm2_layer_state); + } +#else layer_clear(); +#endif while (macro_buffer != macro_end) { process_record(macro_buffer); @@ -299,7 +320,6 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { } } return true; - break; } } diff --git a/quantum/process_keycode/process_key_lock.c b/quantum/process_keycode/process_key_lock.c index 2542e32ec2..304a89c5cd 100644 --- a/quantum/process_keycode/process_key_lock.c +++ b/quantum/process_keycode/process_key_lock.c @@ -14,13 +14,12 @@ * along with this program. If not, see . */ -#include #include #include "process_key_lock.h" #define BV_64(shift) (((uint64_t)1) << (shift)) #define GET_KEY_ARRAY(code) (((code) < 0x40) ? key_state[0] : ((code) < 0x80) ? key_state[1] : ((code) < 0xC0) ? key_state[2] : key_state[3]) -#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : ((code) < 0x80) ? (code)-0x40 : ((code) < 0xC0) ? (code)-0x80 : (code)-0xC0) +#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : ((code) < 0x80) ? (code) - 0x40 : ((code) < 0xC0) ? (code) - 0x80 : (code) - 0xC0) #define KEY_STATE(code) (GET_KEY_ARRAY(code) & BV_64(GET_CODE_INDEX(code))) == BV_64(GET_CODE_INDEX(code)) #define SET_KEY_ARRAY_STATE(code, val) \ do { \ diff --git a/quantum/process_keycode/process_key_override.c b/quantum/process_keycode/process_key_override.c index ce30477ee8..2b6e0dcf3d 100644 --- a/quantum/process_keycode/process_key_override.c +++ b/quantum/process_keycode/process_key_override.c @@ -39,7 +39,8 @@ # define key_override_printf dprintf #else # define key_override_printf(str, ...) \ - {} + { \ + } #endif // Helpers @@ -174,7 +175,7 @@ const key_override_t *clear_active_override(const bool allow_reregister) { const key_override_t *const old = active_override; - const uint8_t mod_free_replacement = clear_mods_from(active_override->replacement); + const uint16_t mod_free_replacement = clear_mods_from(active_override->replacement); bool unregister_replacement = mod_free_replacement != KC_NO && // KC_NO is never registered mod_free_replacement < SAFE_RANGE; // Custom keycodes are never registered @@ -249,7 +250,7 @@ static bool try_activating_override(const uint16_t keycode, const uint8_t layer, return true; } - for (uint8_t i = 0; i < key_override_count(); i++) { + for (uint16_t i = 0; i < key_override_count(); i++) { const key_override_t *const override = key_override_get(i); // End of array @@ -365,13 +366,13 @@ static bool try_activating_override(const uint16_t keycode, const uint8_t layer, schedule_deferred_register(mod_free_replacement); send_keyboard_report(); } else { + send_keyboard_report(); + // On macOS there seems to be a race condition when it comes to the keyboard report and consumer keycodes. It seems the OS may recognize a consumer keycode before an updated keyboard report, even if the keyboard report is actually sent before the consumer key. I assume it is some sort of race condition because it happens infrequently and very irregularly. Waiting for about at least 10ms between sending the keyboard report and sending the consumer code has shown to fix this. + wait_ms(10); if (IS_BASIC_KEYCODE(mod_free_replacement)) { add_key(mod_free_replacement); } else { key_override_printf("NOT KEY 2\n"); - send_keyboard_report(); - // On macOS there seems to be a race condition when it comes to the keyboard report and consumer keycodes. It seems the OS may recognize a consumer keycode before an updated keyboard report, even if the keyboard report is actually sent before the consumer key. I assume it is some sort of race condition because it happens infrequently and very irregularly. Waiting for about at least 10ms between sending the keyboard report and sending the consumer code has shown to fix this. - wait_ms(10); register_code(mod_free_replacement); } } diff --git a/quantum/process_keycode/process_led_matrix.c b/quantum/process_keycode/process_led_matrix.c index 7f95bf1011..3342b33b92 100644 --- a/quantum/process_keycode/process_led_matrix.c +++ b/quantum/process_keycode/process_led_matrix.c @@ -40,6 +40,12 @@ bool process_led_matrix(uint16_t keycode, keyrecord_t *record) { case QK_LED_MATRIX_SPEED_DOWN: led_matrix_decrease_speed(); return false; + case QK_LED_MATRIX_FLAG_NEXT: + led_matrix_flags_step(); + return false; + case QK_LED_MATRIX_FLAG_PREVIOUS: + led_matrix_flags_step_reverse(); + return false; } } diff --git a/quantum/process_keycode/process_rgb_matrix.c b/quantum/process_keycode/process_rgb_matrix.c index fd2aa1a0c7..c18212294d 100644 --- a/quantum/process_keycode/process_rgb_matrix.c +++ b/quantum/process_keycode/process_rgb_matrix.c @@ -94,6 +94,20 @@ bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) { rgb_matrix_decrease_speed(); } return false; + case QK_RGB_MATRIX_FLAG_NEXT: + if (shifted) { + rgb_matrix_flags_step_reverse(); + } else { + rgb_matrix_flags_step(); + } + return false; + case QK_RGB_MATRIX_FLAG_PREVIOUS: + if (shifted) { + rgb_matrix_flags_step(); + } else { + rgb_matrix_flags_step_reverse(); + } + return false; } } diff --git a/quantum/process_keycode/process_space_cadet.c b/quantum/process_keycode/process_space_cadet.c index 3e280d57d9..f3a85785df 100644 --- a/quantum/process_keycode/process_space_cadet.c +++ b/quantum/process_keycode/process_space_cadet.c @@ -165,6 +165,6 @@ bool process_space_cadet(uint16_t keycode, keyrecord_t *record) { return true; } -void reset_space_cadet() { +void reset_space_cadet(void) { sc_last = 0; } diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 11df62763d..399f71a827 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -24,8 +24,46 @@ #include "keymap_introspection.h" static uint16_t active_td; + +#ifndef TAP_DANCE_MAX_SIMULTANEOUS +# define TAP_DANCE_MAX_SIMULTANEOUS 3 +#endif + +static tap_dance_state_t tap_dance_states[TAP_DANCE_MAX_SIMULTANEOUS]; + static uint16_t last_tap_time; +static tap_dance_state_t *tap_dance_get_or_allocate_state(uint8_t tap_dance_idx, bool allocate) { + uint8_t i; + if (tap_dance_idx >= tap_dance_count()) { + return NULL; + } + // Search for a state already used for this keycode + for (i = 0; i < TAP_DANCE_MAX_SIMULTANEOUS; i++) { + if (tap_dance_states[i].in_use && tap_dance_states[i].index == tap_dance_idx) { + return &tap_dance_states[i]; + } + } + // No existing state found; bail out if new state allocation is not allowed + if (!allocate) { + return NULL; + } + // Search for the first available state + for (i = 0; i < TAP_DANCE_MAX_SIMULTANEOUS; i++) { + if (!tap_dance_states[i].in_use) { + tap_dance_states[i].index = tap_dance_idx; + tap_dance_states[i].in_use = true; + return &tap_dance_states[i]; + } + } + // No states are available, tap dance won't happen + return NULL; +} + +tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx) { + return tap_dance_get_or_allocate_state(tap_dance_idx, false); +} + void tap_dance_pair_on_each_tap(tap_dance_state_t *state, void *user_data) { tap_dance_pair_t *pair = (tap_dance_pair_t *)user_data; @@ -86,58 +124,64 @@ static inline void _process_tap_dance_action_fn(tap_dance_state_t *state, void * } } -static inline void process_tap_dance_action_on_each_tap(tap_dance_action_t *action) { - action->state.count++; - action->state.weak_mods = get_mods(); - action->state.weak_mods |= get_weak_mods(); +static inline void process_tap_dance_action_on_each_tap(tap_dance_action_t *action, tap_dance_state_t *state) { + state->count++; + state->weak_mods = get_mods(); + state->weak_mods |= get_weak_mods(); #ifndef NO_ACTION_ONESHOT - action->state.oneshot_mods = get_oneshot_mods(); + state->oneshot_mods = get_oneshot_mods(); #endif - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_tap); + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_each_tap); } -static inline void process_tap_dance_action_on_each_release(tap_dance_action_t *action) { - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_release); +static inline void process_tap_dance_action_on_each_release(tap_dance_action_t *action, tap_dance_state_t *state) { + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_each_release); } -static inline void process_tap_dance_action_on_reset(tap_dance_action_t *action) { - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_reset); - del_weak_mods(action->state.weak_mods); +static inline void process_tap_dance_action_on_reset(tap_dance_action_t *action, tap_dance_state_t *state) { + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_reset); + del_weak_mods(state->weak_mods); #ifndef NO_ACTION_ONESHOT - del_mods(action->state.oneshot_mods); + del_mods(state->oneshot_mods); #endif send_keyboard_report(); - action->state = (const tap_dance_state_t){0}; + // Clear the tap dance state and mark it as unused + memset(state, 0, sizeof(tap_dance_state_t)); } -static inline void process_tap_dance_action_on_dance_finished(tap_dance_action_t *action) { - if (!action->state.finished) { - action->state.finished = true; - add_weak_mods(action->state.weak_mods); +static inline void process_tap_dance_action_on_dance_finished(tap_dance_action_t *action, tap_dance_state_t *state) { + if (!state->finished) { + state->finished = true; + add_weak_mods(state->weak_mods); #ifndef NO_ACTION_ONESHOT - add_mods(action->state.oneshot_mods); + add_mods(state->oneshot_mods); #endif send_keyboard_report(); - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_dance_finished); + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_dance_finished); } active_td = 0; - if (!action->state.pressed) { + if (!state->pressed) { // There will not be a key release event, so reset now. - process_tap_dance_action_on_reset(action); + process_tap_dance_action_on_reset(action, state); } } bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; + tap_dance_state_t *state; if (!record->event.pressed) return false; if (!active_td || keycode == active_td) return false; - action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(active_td)); - action->state.interrupted = true; - action->state.interrupting_keycode = keycode; - process_tap_dance_action_on_dance_finished(action); + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(active_td)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(active_td)); + if (state == NULL) { + return false; + } + state->interrupted = true; + state->interrupting_keycode = keycode; + process_tap_dance_action_on_dance_finished(action, state); // Tap dance actions can leave some weak mods active (e.g., if the tap dance is mapped to a keycode with // modifiers), but these weak mods should not affect the keypress which interrupted the tap dance. @@ -151,8 +195,9 @@ bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { } bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { - int td_index; + uint8_t td_index; tap_dance_action_t *action; + tap_dance_state_t *state; switch (keycode) { case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: @@ -161,16 +206,19 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { return false; } action = tap_dance_get(td_index); - - action->state.pressed = record->event.pressed; + state = tap_dance_get_or_allocate_state(td_index, record->event.pressed); + if (state == NULL) { + return false; + } + state->pressed = record->event.pressed; if (record->event.pressed) { last_tap_time = timer_read(); - process_tap_dance_action_on_each_tap(action); - active_td = action->state.finished ? 0 : keycode; + process_tap_dance_action_on_each_tap(action, state); + active_td = state->finished ? 0 : keycode; } else { - process_tap_dance_action_on_each_release(action); - if (action->state.finished) { - process_tap_dance_action_on_reset(action); + process_tap_dance_action_on_each_release(action, state); + if (state->finished) { + process_tap_dance_action_on_reset(action, state); if (active_td == keycode) { active_td = 0; } @@ -185,16 +233,18 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { void tap_dance_task(void) { tap_dance_action_t *action; + tap_dance_state_t *state; if (!active_td || timer_elapsed(last_tap_time) <= GET_TAPPING_TERM(active_td, &(keyrecord_t){})) return; action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(active_td)); - if (!action->state.interrupted) { - process_tap_dance_action_on_dance_finished(action); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(active_td)); + if (state != NULL && !state->interrupted) { + process_tap_dance_action_on_dance_finished(action, state); } } void reset_tap_dance(tap_dance_state_t *state) { active_td = 0; - process_tap_dance_action_on_reset((tap_dance_action_t *)state); + process_tap_dance_action_on_reset(tap_dance_get(state->index), state); } diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 5cccbdf439..bce93d611b 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -28,15 +28,16 @@ typedef struct { #ifndef NO_ACTION_ONESHOT uint8_t oneshot_mods; #endif - bool pressed : 1; - bool finished : 1; - bool interrupted : 1; + bool pressed : 1; + bool finished : 1; + bool interrupted : 1; + bool in_use : 1; + uint8_t index; } tap_dance_state_t; typedef void (*tap_dance_user_fn_t)(tap_dance_state_t *state, void *user_data); typedef struct tap_dance_action_t { - tap_dance_state_t state; struct { tap_dance_user_fn_t on_each_tap; tap_dance_user_fn_t on_dance_finished; @@ -57,29 +58,49 @@ typedef struct { void (*layer_function)(uint8_t); } tap_dance_dual_role_t; -#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ - { .fn = {tap_dance_pair_on_each_tap, tap_dance_pair_finished, tap_dance_pair_reset, NULL}, .user_data = (void *)&((tap_dance_pair_t){kc1, kc2}), } +#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ + { \ + .fn = {tap_dance_pair_on_each_tap, tap_dance_pair_finished, tap_dance_pair_reset, NULL}, \ + .user_data = (void *)&((tap_dance_pair_t){kc1, kc2}), \ + } -#define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ - { .fn = {tap_dance_dual_role_on_each_tap, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_move}), } +#define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ + { \ + .fn = {tap_dance_dual_role_on_each_tap, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, \ + .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_move}), \ + } -#define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ - { .fn = {NULL, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_invert}), } +#define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ + { \ + .fn = {NULL, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, \ + .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_invert}), \ + } -#define ACTION_TAP_DANCE_FN(user_fn) \ - { .fn = {NULL, user_fn, NULL, NULL}, .user_data = NULL, } +#define ACTION_TAP_DANCE_FN(user_fn) \ + { \ + .fn = {NULL, user_fn, NULL, NULL}, \ + .user_data = NULL, \ + } #define ACTION_TAP_DANCE_FN_ADVANCED(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset) \ - { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, NULL}, .user_data = NULL, } + { \ + .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, NULL}, \ + .user_data = NULL, \ + } #define ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(user_fn_on_each_tap, user_fn_on_each_release, user_fn_on_dance_finished, user_fn_on_dance_reset) \ - { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_fn_on_each_release}, .user_data = NULL, } + { \ + .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_fn_on_each_release}, \ + .user_data = NULL, \ + } #define TD_INDEX(code) QK_TAP_DANCE_GET_INDEX(code) #define TAP_DANCE_KEYCODE(state) TD(((tap_dance_action_t *)state) - tap_dance_actions) void reset_tap_dance(tap_dance_state_t *state); +tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx); + /* To be used internally */ bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/quantum.c b/quantum/quantum.c index 09e5fe1dac..be2e84f6d5 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -94,10 +94,6 @@ #endif #ifdef AUDIO_ENABLE -# ifndef GOODBYE_SONG -# define GOODBYE_SONG SONG(GOODBYE_SOUND) -# endif -float goodbye_song[][2] = GOODBYE_SONG; # ifdef DEFAULT_LAYER_SONGS float default_layer_songs[][16][2] = DEFAULT_LAYER_SONGS; # endif @@ -157,9 +153,7 @@ __attribute__((weak)) void unregister_code16(uint16_t code) { */ __attribute__((weak)) void tap_code16_delay(uint16_t code, uint16_t delay) { register_code16(code); - for (uint16_t i = delay; i > 0; i--) { - wait_ms(1); - } + wait_ms(delay); unregister_code16(code); } @@ -220,18 +214,16 @@ void shutdown_quantum(bool jump_to_bootloader) { # ifndef NO_MUSIC_MODE music_all_notes_off(); # endif - uint16_t timer_start = timer_read(); - PLAY_SONG(goodbye_song); - shutdown_modules(jump_to_bootloader); - shutdown_kb(jump_to_bootloader); - while (timer_elapsed(timer_start) < 250) - wait_ms(1); - stop_all_notes(); -#else - shutdown_modules(jump_to_bootloader); - shutdown_kb(jump_to_bootloader); - wait_ms(250); + audio_shutdown(); #endif + + shutdown_modules(jump_to_bootloader); + shutdown_kb(jump_to_bootloader); + +#if SHUTDOWN_DELAY > 0 + wait_ms(SHUTDOWN_DELAY); +#endif + #ifdef HAPTIC_ENABLE haptic_shutdown(); #endif @@ -397,12 +389,12 @@ bool process_record_quantum(keyrecord_t *record) { #ifdef TAP_DANCE_ENABLE process_tap_dance(keycode, record) && #endif -#if defined(UNICODE_COMMON_ENABLE) - process_unicode_common(keycode, record) && -#endif #ifdef LEADER_ENABLE process_leader(keycode, record) && #endif +#if defined(UNICODE_COMMON_ENABLE) + process_unicode_common(keycode, record) && +#endif #ifdef AUTO_SHIFT_ENABLE process_auto_shift(keycode, record) && #endif diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index a1ae7ed0be..911ec8e29f 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -39,7 +39,7 @@ // Generic decoding for the whole QK_MODS range #define QK_MODS_GET_MODS(kc) (((kc) >> 8) & 0x1F) -#define QK_MODS_GET_BASIC_KEYCODE(kc) ((kc)&0xFF) +#define QK_MODS_GET_BASIC_KEYCODE(kc) ((kc) & 0xFF) // Modified keycodes #define LCTL(kc) (QK_LCTL | (kc)) @@ -90,37 +90,37 @@ #define MEH(kc) (QK_LCTL | QK_LSFT | QK_LALT | (kc)) // GOTO layer - 32 layer max -#define TO(layer) (QK_TO | ((layer)&0x1F)) -#define QK_TO_GET_LAYER(kc) ((kc)&0x1F) +#define TO(layer) (QK_TO | ((layer) & 0x1F)) +#define QK_TO_GET_LAYER(kc) ((kc) & 0x1F) // Momentary switch layer - 32 layer max -#define MO(layer) (QK_MOMENTARY | ((layer)&0x1F)) -#define QK_MOMENTARY_GET_LAYER(kc) ((kc)&0x1F) +#define MO(layer) (QK_MOMENTARY | ((layer) & 0x1F)) +#define QK_MOMENTARY_GET_LAYER(kc) ((kc) & 0x1F) // Set default layer - 32 layer max -#define DF(layer) (QK_DEF_LAYER | ((layer)&0x1F)) -#define QK_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define DF(layer) (QK_DEF_LAYER | ((layer) & 0x1F)) +#define QK_DEF_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // Set persistent default layer - 32 layer max -#define PDF(layer) (QK_PERSISTENT_DEF_LAYER | ((layer)&0x1F)) -#define QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define PDF(layer) (QK_PERSISTENT_DEF_LAYER | ((layer) & 0x1F)) +#define QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // Toggle to layer - 32 layer max -#define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0x1F)) -#define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define TG(layer) (QK_TOGGLE_LAYER | ((layer) & 0x1F)) +#define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // One-shot layer - 32 layer max -#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer)&0x1F)) -#define QK_ONE_SHOT_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer) & 0x1F)) +#define QK_ONE_SHOT_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max -#define LM(layer, mod) (QK_LAYER_MOD | (((layer)&0xF) << 5) | ((mod)&0x1F)) +#define LM(layer, mod) (QK_LAYER_MOD | (((layer) & 0xF) << 5) | ((mod) & 0x1F)) #define QK_LAYER_MOD_GET_LAYER(kc) (((kc) >> 5) & 0xF) -#define QK_LAYER_MOD_GET_MODS(kc) ((kc)&0x1F) +#define QK_LAYER_MOD_GET_MODS(kc) ((kc) & 0x1F) // One-shot mod -#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0x1F)) -#define QK_ONE_SHOT_MOD_GET_MODS(kc) ((kc)&0x1F) +#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod) & 0x1F)) +#define QK_ONE_SHOT_MOD_GET_MODS(kc) ((kc) & 0x1F) #define OS_LCTL OSM(MOD_LCTL) #define OS_LSFT OSM(MOD_LSFT) @@ -158,18 +158,18 @@ #define OS_HYPR OSM(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI) // Layer tap-toggle - 32 layer max -#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0x1F)) -#define QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) ((kc)&0x1F) +#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer) & 0x1F)) +#define QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) ((kc) & 0x1F) // L-ayer, T-ap - 256 keycode max, 16 layer max -#define LT(layer, kc) (QK_LAYER_TAP | (((layer)&0xF) << 8) | ((kc)&0xFF)) +#define LT(layer, kc) (QK_LAYER_TAP | (((layer) & 0xF) << 8) | ((kc) & 0xFF)) #define QK_LAYER_TAP_GET_LAYER(kc) (((kc) >> 8) & 0xF) -#define QK_LAYER_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) +#define QK_LAYER_TAP_GET_TAP_KEYCODE(kc) ((kc) & 0xFF) // M-od, T-ap - 256 keycode max -#define MT(mod, kc) (QK_MOD_TAP | (((mod)&0x1F) << 8) | ((kc)&0xFF)) +#define MT(mod, kc) (QK_MOD_TAP | (((mod) & 0x1F) << 8) | ((kc) & 0xFF)) #define QK_MOD_TAP_GET_MODS(kc) (((kc) >> 8) & 0x1F) -#define QK_MOD_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) +#define QK_MOD_TAP_GET_TAP_KEYCODE(kc) ((kc) & 0xFF) // Mod-Tap shortcuts #define LCTL_T(kc) MT(MOD_LCTL, kc) @@ -230,23 +230,23 @@ // Unicode aliases // UNICODE_ENABLE - Allows Unicode input up to 0x7FFF #define UC(c) (QK_UNICODE | (c)) -#define QK_UNICODE_GET_CODE_POINT(kc) ((kc)&0x7FFF) +#define QK_UNICODE_GET_CODE_POINT(kc) ((kc) & 0x7FFF) // UNICODEMAP_ENABLE - Allows Unicode input up to 0x10FFFF, requires unicode_map -#define UM(i) (QK_UNICODEMAP | ((i)&0x3FFF)) -#define QK_UNICODEMAP_GET_INDEX(kc) ((kc)&0x3FFF) +#define UM(i) (QK_UNICODEMAP | ((i) & 0x3FFF)) +#define QK_UNICODEMAP_GET_INDEX(kc) ((kc) & 0x3FFF) -#define UP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j -#define QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(kc) ((kc)&0x7F) +#define UP(i, j) (QK_UNICODEMAP_PAIR | ((i) & 0x7F) | (((j) & 0x7F) << 7)) // 127 max i and j +#define QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(kc) ((kc) & 0x7F) #define QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(kc) (((kc) >> 7) & 0x7F) // Swap Hands -#define SH_T(kc) (QK_SWAP_HANDS | ((kc)&0xFF)) -#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc)&0xFF) +#define SH_T(kc) (QK_SWAP_HANDS | ((kc) & 0xFF)) +#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc) & 0xFF) // Tap dance -#define TD(i) (QK_TAP_DANCE | ((i)&0xFF)) -#define QK_TAP_DANCE_GET_INDEX(kc) ((kc)&0xFF) +#define TD(i) (QK_TAP_DANCE | ((i) & 0xFF)) +#define QK_TAP_DANCE_GET_INDEX(kc) ((kc) & 0xFF) // MIDI aliases #define MIDI_TONE_MIN QK_MIDI_NOTE_C_0 diff --git a/quantum/repeat_key.c b/quantum/repeat_key.c index 56f242f8b8..bc385cb894 100644 --- a/quantum/repeat_key.c +++ b/quantum/repeat_key.c @@ -25,6 +25,21 @@ static int8_t last_repeat_count = 0; // The repeat_count, but set to 0 outside of repeat_key_invoke() so that it is // nonzero only while a repeated key is being processed. static int8_t processing_repeat_count = 0; +// It is possible (e.g. in rolled presses) that the last key changes while +// the Repeat Key is pressed. To prevent stuck keys, it is important to +// remember separately what key record was processed on press so that the +// the corresponding record is generated on release. +static keyrecord_t registered_record_repeat_key = {0}; +static int8_t registered_repeat_count_repeat_key = 0; + +void reset_repeat_key_state(void) { + last_record = (keyrecord_t){0}; + last_mods = 0; + last_repeat_count = 0; + processing_repeat_count = 0; + registered_record_repeat_key = (keyrecord_t){0}; + registered_repeat_count_repeat_key = 0; +} uint16_t get_last_keycode(void) { return last_record.keycode; @@ -67,12 +82,6 @@ int8_t get_repeat_key_count(void) { } void repeat_key_invoke(const keyevent_t* event) { - // It is possible (e.g. in rolled presses) that the last key changes while - // the Repeat Key is pressed. To prevent stuck keys, it is important to - // remember separately what key record was processed on press so that the - // the corresponding record is generated on release. - static keyrecord_t registered_record = {0}; - static int8_t registered_repeat_count = 0; // Since this function calls process_record(), it may recursively call // itself. We return early if `processing_repeat_count` is nonzero to // prevent infinite recursion. @@ -84,19 +93,25 @@ void repeat_key_invoke(const keyevent_t* event) { update_last_repeat_count(1); // On press, apply the last mods state, stacking on top of current mods. register_weak_mods(last_mods); - registered_record = last_record; - registered_repeat_count = last_repeat_count; + registered_record_repeat_key = last_record; + registered_repeat_count_repeat_key = last_repeat_count; } - // Generate a keyrecord and plumb it into the event pipeline. - registered_record.event = *event; - processing_repeat_count = registered_repeat_count; - process_record(®istered_record); - processing_repeat_count = 0; + // It is possible for this to be zero here in the case of pressing + // repeat key before any other after reset, pressing another key while + // holding repeat key, and then releasing repeat key. Must guard against + // this to prevent infinite recursion. + if (registered_repeat_count_repeat_key) { + // Generate a keyrecord and plumb it into the event pipeline. + registered_record_repeat_key.event = *event; + processing_repeat_count = registered_repeat_count_repeat_key; + process_record(®istered_record_repeat_key); + processing_repeat_count = 0; - // On release, restore the mods state. - if (!event->pressed) { - unregister_weak_mods(last_mods); + // On release, restore the mods state. + if (!event->pressed) { + unregister_weak_mods(last_mods); + } } } diff --git a/quantum/repeat_key.h b/quantum/repeat_key.h index 8084be24ad..9bfb6caed4 100644 --- a/quantum/repeat_key.h +++ b/quantum/repeat_key.h @@ -19,6 +19,7 @@ #include "action.h" #include "keyboard.h" +void reset_repeat_key_state(void); /**< Resets repeat key state. */ uint16_t get_last_keycode(void); /**< Keycode of the last key. */ uint8_t get_last_mods(void); /**< Mods active with the last key. */ void set_last_keycode(uint16_t keycode); /**< Sets the last key. */ diff --git a/quantum/rgb_matrix/animations/pixel_fractal_anim.h b/quantum/rgb_matrix/animations/pixel_fractal_anim.h index bf5c22a64e..05d899f6ec 100644 --- a/quantum/rgb_matrix/animations/pixel_fractal_anim.h +++ b/quantum/rgb_matrix/animations/pixel_fractal_anim.h @@ -10,50 +10,43 @@ static bool PIXEL_FRACTAL(effect_params_t* params) { # if MATRIX_COLS < 2 # define MID_COL 1 # else -# define MID_COL MATRIX_COLS / 2 +# define MID_COL (MATRIX_COLS / 2) # endif static bool led[MATRIX_ROWS][MID_COL]; static uint32_t wait_timer = 0; - inline uint32_t interval(void) { - return 3000 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); - } - if (params->init) { rgb_matrix_set_color_all(0, 0, 0); + memset(led, 0, sizeof(led)); } RGB_MATRIX_USE_LIMITS(led_min, led_max); if (g_rgb_timer > wait_timer) { rgb_t rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); - for (uint8_t h = 0; h < MATRIX_ROWS; ++h) { - // Light and copy columns outward - for (uint8_t l = 0; l < MID_COL - 1; ++l) { - rgb_t index_rgb = led[h][l] ? (rgb_t){rgb.r, rgb.g, rgb.b} : (rgb_t){0, 0, 0}; - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][l]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][l], index_rgb.r, index_rgb.g, index_rgb.b); + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + // Light columns outward from center, mirroring each side + for (uint8_t col = 0; col < MID_COL; ++col) { + rgb_t index_rgb = led[row][col] ? rgb : (rgb_t){0, 0, 0}; + uint8_t l_idx = g_led_config.matrix_co[row][col]; + uint8_t r_idx = g_led_config.matrix_co[row][MATRIX_COLS - 1 - col]; + if (l_idx >= led_min && l_idx < led_max && HAS_ANY_FLAGS(g_led_config.flags[l_idx], params->flags)) { + rgb_matrix_set_color(l_idx, index_rgb.r, index_rgb.g, index_rgb.b); } - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MATRIX_COLS - 1 - l]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][MATRIX_COLS - 1 - l], index_rgb.r, index_rgb.g, index_rgb.b); + if (r_idx >= led_min && r_idx < led_max && HAS_ANY_FLAGS(g_led_config.flags[r_idx], params->flags)) { + rgb_matrix_set_color(r_idx, index_rgb.r, index_rgb.g, index_rgb.b); } - led[h][l] = led[h][l + 1]; } - - // Light both middle columns - rgb_t index_rgb = led[h][MID_COL - 1] ? (rgb_t){rgb.r, rgb.g, rgb.b} : (rgb_t){0, 0, 0}; - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MID_COL - 1]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL - 1], index_rgb.r, index_rgb.g, index_rgb.b); - } - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MATRIX_COLS - MID_COL]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][MATRIX_COLS - MID_COL], index_rgb.r, index_rgb.g, index_rgb.b); - } - - // Generate new random fractal column - led[h][MID_COL - 1] = (random8() & 3) ? false : true; } - wait_timer = g_rgb_timer + interval(); + // Advance state and reset timer only on the final LED range iteration + if (!rgb_matrix_check_finished_leds(led_max)) { + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + memmove(led[row], led[row] + 1, (MID_COL - 1) * sizeof(bool)); + led[row][MID_COL - 1] = !(random8() & 3); + } + wait_timer = g_rgb_timer + 3000 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); + } } return rgb_matrix_check_finished_leds(led_max); diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index c0370831d8..f92a285b67 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -6,20 +6,27 @@ RGB_MATRIX_EFFECT(PIXEL_RAIN) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS static bool PIXEL_RAIN(effect_params_t* params) { - static fast_timer_t timer = 0; - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + static uint8_t index = 0; + static uint32_t timer = 0; - if ((params->iter == 0) && (timer_elapsed_fast(timer) > (320 - rgb_matrix_config.speed))) { + if (params->iter == 0 && params->init) { index = random8_max(RGB_MATRIX_LED_COUNT); - timer = timer_read_fast(); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) { - hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b); - index = RGB_MATRIX_LED_COUNT + 1; + if (timer < g_rgb_timer) { // Execute when the delay period has elapsed + if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) { + // Assign a random HSV color to hsv with 50% probability, otherwise assign zeroed hsv + hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b); + } + if (!rgb_matrix_check_finished_leds(led_max)) { + // In the final LED range, update the LED index and advance the timer for + // the next cycle, scaling the delay between 256–2048 ms based on speed. + index = random8_max(RGB_MATRIX_LED_COUNT); + timer = g_rgb_timer + (2048 - scale16by8(1792, rgb_matrix_config.speed)); + } } return rgb_matrix_check_finished_leds(led_max); } diff --git a/quantum/rgb_matrix/animations/raindrops_anim.h b/quantum/rgb_matrix/animations/raindrops_anim.h index d4f79adb56..f3656a5c0d 100644 --- a/quantum/rgb_matrix/animations/raindrops_anim.h +++ b/quantum/rgb_matrix/animations/raindrops_anim.h @@ -7,14 +7,9 @@ static void raindrops_set_color(uint8_t i, effect_params_t* params) { hsv_t hsv = rgb_matrix_config.hsv; // Take the shortest path between hues - int16_t deltaH = ((hsv.h + 180) % 360 - hsv.h) / 4; - if (deltaH > 127) { - deltaH -= 256; - } else if (deltaH < -127) { - deltaH += 256; - } - + int8_t deltaH = (int8_t)((hsv.h + 128) - hsv.h) / 4; hsv.h += (deltaH * random8_max(3)); + rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } diff --git a/quantum/rgb_matrix/animations/typing_heatmap_anim.h b/quantum/rgb_matrix/animations/typing_heatmap_anim.h index 0606738891..77d79cf1af 100644 --- a/quantum/rgb_matrix/animations/typing_heatmap_anim.h +++ b/quantum/rgb_matrix/animations/typing_heatmap_anim.h @@ -32,7 +32,7 @@ void process_rgb_matrix_typing_heatmap(uint8_t row, uint8_t col) { if (i_row == row && i_col == col) { g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], RGB_MATRIX_TYPING_HEATMAP_INCREASE_STEP); } else { -# define LED_DISTANCE(led_a, led_b) sqrt16(((int16_t)(led_a.x - led_b.x) * (int16_t)(led_a.x - led_b.x)) + ((int16_t)(led_a.y - led_b.y) * (int16_t)(led_a.y - led_b.y))) +# define LED_DISTANCE(led_a, led_b) sqrt16(((int32_t)(led_a.x - led_b.x) * (int32_t)(led_a.x - led_b.x)) + ((int32_t)(led_a.y - led_b.y) * (int32_t)(led_a.y - led_b.y))) uint8_t distance = LED_DISTANCE(g_led_config.point[g_led_config.matrix_co[row][col]], g_led_config.point[g_led_config.matrix_co[i_row][i_col]]); # undef LED_DISTANCE if (distance <= RGB_MATRIX_TYPING_HEATMAP_SPREAD) { diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index ab0aa17512..e2b268efa7 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -72,12 +72,19 @@ uint8_t g_rgb_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}}; last_hit_t g_last_hit_tracker; #endif // RGB_MATRIX_KEYREACTIVE_ENABLED +#ifndef RGB_MATRIX_FLAG_STEPS +# define RGB_MATRIX_FLAG_STEPS {LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE} +#endif +static const uint8_t rgb_matrix_flag_steps[] = RGB_MATRIX_FLAG_STEPS; +#define RGB_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(rgb_matrix_flag_steps) + // internals -static bool suspend_state = false; -static uint8_t rgb_last_enable = UINT8_MAX; -static uint8_t rgb_last_effect = UINT8_MAX; -static effect_params_t rgb_effect_params = {0, LED_FLAG_ALL, false}; -static rgb_task_states rgb_task_state = SYNCING; +static bool suspend_state = false; +static uint8_t rgb_last_enable = UINT8_MAX; +static uint8_t rgb_last_effect = UINT8_MAX; +static uint8_t rgb_current_effect = 0; +static effect_params_t rgb_effect_params = {0, LED_FLAG_ALL, false}; +static rgb_task_states rgb_task_state = SYNCING; // double buffers static uint32_t rgb_timer_buffer; @@ -151,15 +158,31 @@ void rgb_matrix_update_pwm_buffers(void) { __attribute__((weak)) int rgb_matrix_led_index(int index) { #if defined(RGB_MATRIX_SPLIT) - if (!is_keyboard_left() && index >= k_rgb_matrix_split[0]) { - return index - k_rgb_matrix_split[0]; + const bool index_in_left_side = index < k_rgb_matrix_split[0]; + + if (is_keyboard_left()) { + if (index_in_left_side) { + return index; + } + return -1; } + + if (index_in_left_side) { + return -1; + } + + return index - k_rgb_matrix_split[0]; #endif return index; } void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - rgb_matrix_driver.set_color(rgb_matrix_led_index(index), red, green, blue); + const int led_index = rgb_matrix_led_index(index); + if (led_index < 0) { + return; + } + + rgb_matrix_driver.set_color(led_index, red, green, blue); } void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { @@ -289,6 +312,17 @@ static void rgb_task_start(void) { g_last_hit_tracker = last_hit_buffer; #endif // RGB_MATRIX_KEYREACTIVE_ENABLED + // Ideally we would also stop sending zeros to the LED driver PWM buffers + // while suspended and just do a software shutdown. This is a cheap hack for now. + bool suspend_backlight = suspend_state || +#if RGB_MATRIX_TIMEOUT > 0 + (last_input_activity_elapsed() > (uint32_t)RGB_MATRIX_TIMEOUT) || +#endif // RGB_MATRIX_TIMEOUT > 0 + false; + + // Set effect to be renedered + rgb_current_effect = suspend_backlight || !rgb_matrix_config.enable ? 0 : rgb_matrix_config.mode; + // next task rgb_task_state = RENDERING; } @@ -377,15 +411,7 @@ static void rgb_task_flush(uint8_t effect) { void rgb_matrix_task(void) { rgb_task_timers(); - // Ideally we would also stop sending zeros to the LED driver PWM buffers - // while suspended and just do a software shutdown. This is a cheap hack for now. - bool suspend_backlight = suspend_state || -#if RGB_MATRIX_TIMEOUT > 0 - (last_input_activity_elapsed() > (uint32_t)RGB_MATRIX_TIMEOUT) || -#endif // RGB_MATRIX_TIMEOUT > 0 - false; - - uint8_t effect = suspend_backlight || !rgb_matrix_config.enable ? 0 : rgb_matrix_config.mode; + uint8_t effect = rgb_current_effect; switch (rgb_task_state) { case STARTING: @@ -747,6 +773,50 @@ void rgb_matrix_set_flags_noeeprom(led_flags_t flags) { rgb_matrix_set_flags_eeprom_helper(flags, false); } +void rgb_matrix_flags_step_helper(bool write_to_eeprom) { + led_flags_t flags = rgb_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < RGB_MATRIX_FLAG_STEPS_COUNT; i++) { + if (rgb_matrix_flag_steps[i] == flags) { + next = i == RGB_MATRIX_FLAG_STEPS_COUNT - 1 ? 0 : i + 1; + break; + } + } + + rgb_matrix_set_flags_eeprom_helper(rgb_matrix_flag_steps[next], write_to_eeprom); +} + +void rgb_matrix_flags_step_noeeprom(void) { + rgb_matrix_flags_step_helper(false); +} + +void rgb_matrix_flags_step(void) { + rgb_matrix_flags_step_helper(true); +} + +void rgb_matrix_flags_step_reverse_helper(bool write_to_eeprom) { + led_flags_t flags = rgb_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < RGB_MATRIX_FLAG_STEPS_COUNT; i++) { + if (rgb_matrix_flag_steps[i] == flags) { + next = i == 0 ? RGB_MATRIX_FLAG_STEPS_COUNT - 1 : i - 1; + break; + } + } + + rgb_matrix_set_flags_eeprom_helper(rgb_matrix_flag_steps[next], write_to_eeprom); +} + +void rgb_matrix_flags_step_reverse_noeeprom(void) { + rgb_matrix_flags_step_reverse_helper(false); +} + +void rgb_matrix_flags_step_reverse(void) { + rgb_matrix_flags_step_reverse_helper(true); +} + //---------------------------------------------------------- // RGB Matrix naming #undef RGB_MATRIX_EFFECT diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index a91dded4a8..f49ad04ace 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -151,6 +151,14 @@ void eeconfig_force_flush_rgb_matrix(void); uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i); +/** + * @brief Convert an index to the addressing used by underlying driver + * + * @param index Logical index of the LED we want to work on + * + * @return Resolved index to be used on the driver + * @retval < 0 Error (eg: trying to address a LED on the other half of a split board) + */ int rgb_matrix_led_index(int index); void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); @@ -218,6 +226,10 @@ void rgb_matrix_decrease_speed_noeeprom(void); led_flags_t rgb_matrix_get_flags(void); void rgb_matrix_set_flags(led_flags_t flags); void rgb_matrix_set_flags_noeeprom(led_flags_t flags); +void rgb_matrix_flags_step_noeeprom(void); +void rgb_matrix_flags_step(void); +void rgb_matrix_flags_step_reverse_noeeprom(void); +void rgb_matrix_flags_step_reverse(void); void rgb_matrix_update_pwm_buffers(void); #ifdef RGB_MATRIX_MODE_NAME_ENABLE diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index bfccb472b5..3c4a05844d 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -1381,7 +1381,7 @@ void rgblight_effect_twinkle(animation_status_t *anim) { for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { TwinkleState *t = &(led_twinkle_state[i]); - hsv_t * c = &(t->hsv); + hsv_t *c = &(t->hsv); if (!random_color) { c->h = rgblight_config.hue; diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h index c061e71895..e70c081c2a 100644 --- a/quantum/rgblight/rgblight.h +++ b/quantum/rgblight/rgblight.h @@ -186,8 +186,7 @@ typedef struct { # define RGBLIGHT_USE_TIMER # define RGBLIGHT_END_SEGMENT_INDEX (255) -# define RGBLIGHT_END_SEGMENTS \ - { RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0 } +# define RGBLIGHT_END_SEGMENTS {RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0} # ifndef RGBLIGHT_MAX_LAYERS # define RGBLIGHT_MAX_LAYERS 8 # endif @@ -202,10 +201,8 @@ typedef uint32_t rgblight_layer_mask_t; # else # error invalid RGBLIGHT_MAX_LAYERS value (must be <= 32) # endif -# define RGBLIGHT_LAYER_SEGMENTS(...) \ - { __VA_ARGS__, RGBLIGHT_END_SEGMENTS } -# define RGBLIGHT_LAYERS_LIST(...) \ - { __VA_ARGS__, NULL } +# define RGBLIGHT_LAYER_SEGMENTS(...) {__VA_ARGS__, RGBLIGHT_END_SEGMENTS} +# define RGBLIGHT_LAYERS_LIST(...) {__VA_ARGS__, NULL} // Get/set enabled rgblight layers void rgblight_set_layer_state(uint8_t layer, bool enabled); diff --git a/quantum/rgblight/rgblight_breathe_table.h b/quantum/rgblight/rgblight_breathe_table.h index 5a8181c7d4..648e1bbaec 100644 --- a/quantum/rgblight/rgblight_breathe_table.h +++ b/quantum/rgblight/rgblight_breathe_table.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/secure.c b/quantum/secure.c index f2a567f31d..2f589877b7 100644 --- a/quantum/secure.c +++ b/quantum/secure.c @@ -14,10 +14,7 @@ #endif #ifndef SECURE_UNLOCK_SEQUENCE -# define SECURE_UNLOCK_SEQUENCE \ - { \ - { 0, 0 } \ - } +# define SECURE_UNLOCK_SEQUENCE {{0, 0}} #endif static secure_status_t secure_status = SECURE_LOCKED; diff --git a/quantum/send_string/send_string.c b/quantum/send_string/send_string.c index 602f24dabe..6471d5140c 100644 --- a/quantum/send_string/send_string.c +++ b/quantum/send_string/send_string.c @@ -281,6 +281,10 @@ void send_nibble(uint8_t number) { } } +#if defined(__AVR_ATmega32U4__) +# include +#endif + void tap_random_base64(void) { #if defined(__AVR_ATmega32U4__) uint8_t key = (TCNT0 + TCNT1 + TCNT3 + TCNT4) % 64; diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 59b6009ec4..93a4d3419f 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -56,8 +56,6 @@ static uint8_t connection_errors = 0; -volatile bool isLeftHand = true; - static struct { bool master; bool left; @@ -167,7 +165,7 @@ __attribute__((weak)) bool is_keyboard_left_impl(void) { # pragma message "Faking EE_HANDS for right hand" const bool should_be_left = false; # endif - bool is_left = eeconfig_read_handedness(); + bool is_left = eeconfig_read_handedness(); if (is_left != should_be_left) { eeconfig_update_handedness(should_be_left); } @@ -203,8 +201,6 @@ void split_pre_init(void) { split_config.master = is_keyboard_master_impl(); split_config.left = is_keyboard_left_impl(); - isLeftHand = is_keyboard_left(); // TODO: Remove isLeftHand - #if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) uint8_t num_rgb_leds_split[2] = RGBLED_SPLIT; if (is_keyboard_left()) { diff --git a/quantum/split_common/split_util.h b/quantum/split_common/split_util.h index 6f4c4dc660..4eb8f8dc18 100644 --- a/quantum/split_common/split_util.h +++ b/quantum/split_common/split_util.h @@ -5,8 +5,6 @@ #include "matrix.h" -extern volatile bool isLeftHand; - void split_pre_init(void); void split_post_init(void); diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 694737868a..c383b26adb 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -18,6 +18,10 @@ #include "compiler_support.h" +#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +# define SPLIT_TRANSACTION_RPC +#endif + enum serial_transaction_id { #ifdef USE_I2C I2C_EXECUTE_CALLBACK, @@ -99,12 +103,12 @@ enum serial_transaction_id { PUT_ACTIVITY, #endif // SPLIT_ACTIVITY_ENABLE -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) PUT_RPC_INFO, PUT_RPC_REQ_DATA, EXECUTE_RPC, GET_RPC_RESP_DATA, -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) // keyboard-specific #ifdef SPLIT_TRANSACTION_IDS_KB @@ -116,6 +120,11 @@ enum serial_transaction_id { SPLIT_TRANSACTION_IDS_USER, #endif // SPLIT_TRANSACTION_IDS_USER +// community module specific +#ifdef COMMUNITY_MODULES_ENABLE +# include "split_transaction_id_community_modules.inc" +#endif // COMMUNITY_MODULES_ENABLE + #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) PUT_DETECTED_OS, #endif // defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index f66b2ad89f..ffc3e45c2c 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -73,26 +73,23 @@ #define sizeof_member(type, member) sizeof(((type *)NULL)->member) -#define trans_initiator2target_initializer_cb(member, cb) \ - { sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), 0, 0, cb } +#define trans_initiator2target_initializer_cb(member, cb) {sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), 0, 0, cb} #define trans_initiator2target_initializer(member) trans_initiator2target_initializer_cb(member, NULL) -#define trans_target2initiator_initializer_cb(member, cb) \ - { 0, 0, sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), cb } +#define trans_target2initiator_initializer_cb(member, cb) {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 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) +#if defined(SPLIT_TRANSACTION_RPC) // Forward-declare the RPC callback handlers void slave_rpc_info_callback(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer); void slave_rpc_exec_callback(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer); -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) //////////////////////////////////////////////////// // Helpers @@ -946,12 +943,12 @@ split_transaction_desc_t split_transaction_table[NUM_TOTAL_TRANSACTIONS] = { TRANSACTIONS_DETECTED_OS_REGISTRATIONS // clang-format on -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) [PUT_RPC_INFO] = trans_initiator2target_initializer_cb(rpc_info, slave_rpc_info_callback), [PUT_RPC_REQ_DATA] = trans_initiator2target_initializer(rpc_m2s_buffer), [EXECUTE_RPC] = trans_initiator2target_initializer_cb(rpc_info.payload.transaction_id, slave_rpc_exec_callback), [GET_RPC_RESP_DATA] = trans_target2initiator_initializer(rpc_s2m_buffer), -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) }; bool transactions_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { @@ -999,7 +996,7 @@ void transactions_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[ TRANSACTIONS_DETECTED_OS_SLAVE(); } -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) void transaction_register_rpc(int8_t transaction_id, slave_callback_t callback) { // Prevent invoking RPC on QMK core sync data @@ -1076,4 +1073,4 @@ void slave_rpc_exec_callback(uint8_t initiator2target_buffer_size, const void *i } } -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h index fbd87ca312..e6caca4fa8 100644 --- a/quantum/split_common/transport.h +++ b/quantum/split_common/transport.h @@ -22,6 +22,7 @@ #include "progmem.h" #include "action_layer.h" #include "matrix.h" +#include "transaction_id_define.h" #ifndef RPC_M2S_BUFFER_SIZE # define RPC_M2S_BUFFER_SIZE 32 @@ -132,7 +133,7 @@ typedef struct _split_slave_activity_sync_t { } split_slave_activity_sync_t; #endif // defined(SPLIT_ACTIVITY_ENABLE) -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) typedef struct _rpc_sync_info_t { uint8_t checksum; struct { @@ -141,7 +142,7 @@ typedef struct _rpc_sync_info_t { uint8_t s2m_length; } payload; } rpc_sync_info_t; -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) # include "os_detection.h" @@ -222,11 +223,11 @@ typedef struct _split_shared_memory_t { split_slave_activity_sync_t activity_sync; #endif // defined(SPLIT_ACTIVITY_ENABLE) -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) rpc_sync_info_t rpc_info; uint8_t rpc_m2s_buffer[RPC_M2S_BUFFER_SIZE]; uint8_t rpc_s2m_buffer[RPC_S2M_BUFFER_SIZE]; -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) os_variant_t detected_os; diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index dff1d43fb4..b84c130907 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c @@ -46,12 +46,6 @@ # define UNICODE_KEY_WINC KC_RIGHT_ALT #endif -// Comma-delimited, ordered list of input modes selected for use (e.g. in cycle) -// Example: #define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_LINUX -#ifndef UNICODE_SELECTED_MODES -# define UNICODE_SELECTED_MODES -1 -#endif - // Whether input mode changes in cycle should be written to EEPROM #ifndef UNICODE_CYCLE_PERSIST # define UNICODE_CYCLE_PERSIST true @@ -66,7 +60,7 @@ unicode_config_t unicode_config; uint8_t unicode_saved_mods; led_t unicode_saved_led_state; -#if UNICODE_SELECTED_MODES != -1 +#ifdef UNICODE_SELECTED_MODES static uint8_t selected[] = {UNICODE_SELECTED_MODES}; static int8_t selected_count = ARRAY_SIZE(selected); static int8_t selected_index; @@ -136,7 +130,7 @@ static void unicode_play_song(uint8_t mode) { void unicode_input_mode_init(void) { eeconfig_read_unicode_mode(&unicode_config); -#if UNICODE_SELECTED_MODES != -1 +#ifdef UNICODE_SELECTED_MODES # if UNICODE_CYCLE_PERSIST // Find input_mode in selected modes int8_t i; @@ -178,7 +172,7 @@ void set_unicode_input_mode(uint8_t mode) { } static void cycle_unicode_input_mode(int8_t offset) { -#if UNICODE_SELECTED_MODES != -1 +#ifdef UNICODE_SELECTED_MODES selected_index = (selected_index + offset) % selected_count; if (selected_index < 0) { selected_index += selected_count; diff --git a/quantum/util.h b/quantum/util.h index 61ec7ac153..99a0c0f627 100644 --- a/quantum/util.h +++ b/quantum/util.h @@ -24,7 +24,7 @@ * @brief Computes the rounded up result of a division of two integers at * compile time. */ -# define CEILING(dividend, divisor) (((dividend) + (divisor)-1) / (divisor)) +# define CEILING(dividend, divisor) (((dividend) + (divisor) - 1) / (divisor)) #endif #if !defined(IS_ARRAY) diff --git a/quantum/via.c b/quantum/via.c index 130ff74794..9c10840ec5 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -68,7 +68,7 @@ // Can be called in an overriding via_init_kb() to test if keyboard level code usage of // EEPROM is invalid and use/save defaults. bool via_eeprom_is_valid(void) { - char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); @@ -85,7 +85,7 @@ bool via_eeprom_is_valid(void) { // Keyboard level code (eg. via_init_kb()) should not call this void via_eeprom_set_valid(bool valid) { if (valid) { - char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); @@ -357,6 +357,14 @@ void raw_hid_receive(uint8_t *data, uint8_t length) { command_data[4] = value & 0xFF; break; } + case id_keycodes_version: { + uint32_t value = QMK_KEYCODES_VERSION_BCD; + command_data[1] = (value >> 24) & 0xFF; + command_data[2] = (value >> 16) & 0xFF; + command_data[3] = (value >> 8) & 0xFF; + command_data[4] = value & 0xFF; + break; + } default: { // The value ID is not known // Return the unhandled state diff --git a/quantum/via.h b/quantum/via.h index 9f0eef10f7..ef788ebfd8 100644 --- a/quantum/via.h +++ b/quantum/via.h @@ -39,7 +39,7 @@ // This is changed only when the command IDs change, // so VIA Configurator can detect compatible firmware. -#define VIA_PROTOCOL_VERSION 0x000C +#define VIA_PROTOCOL_VERSION 0x000D // This is a version number for the firmware for the keyboard. // It can be used to ensure the VIA keyboard definition and the firmware @@ -82,6 +82,7 @@ enum via_keyboard_value_id { id_switch_matrix_state = 0x03, id_firmware_version = 0x04, id_device_indication = 0x05, + id_keycodes_version = 0x06, }; enum via_channel_id { diff --git a/quantum/wear_leveling/wear_leveling.c b/quantum/wear_leveling/wear_leveling.c index 258f074a5c..f65ff9c1ca 100644 --- a/quantum/wear_leveling/wear_leveling.c +++ b/quantum/wear_leveling/wear_leveling.c @@ -358,7 +358,7 @@ static wear_leveling_status_t wear_leveling_append_raw(backing_store_int_t value * @return true if consolidation occurred */ static wear_leveling_status_t wear_leveling_write_raw_multibyte(uint32_t address, const void *value, size_t length) { - const uint8_t * p = value; + const uint8_t *p = value; write_log_entry_t log = LOG_ENTRY_MAKE_MULTIBYTE(address, length); for (size_t i = 0; i < length; ++i) { log.raw8[3 + i] = p[i]; @@ -415,7 +415,7 @@ static wear_leveling_status_t wear_leveling_write_raw_multibyte(uint32_t address * Handles the actual writing of logical data into the write log section of the backing store. */ static wear_leveling_status_t wear_leveling_write_raw(uint32_t address, const void *value, size_t length) { - const uint8_t * p = value; + const uint8_t *p = value; size_t remaining = length; wear_leveling_status_t status = WEAR_LEVELING_SUCCESS; while (remaining > 0) { @@ -555,7 +555,7 @@ static wear_leveling_status_t wear_leveling_playback_log(void) { if (!ok) { wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); cancel_playback = true; - status = WEAR_LEVELING_FAILED; + status = WEAR_LEVELING_FAILED; break; } address += (BACKING_STORE_WRITE_SIZE); diff --git a/tests/combo/test_combo.cpp b/tests/combo/test_combo.cpp index d78ec55990..cc6425a94c 100644 --- a/tests/combo/test_combo.cpp +++ b/tests/combo/test_combo.cpp @@ -54,3 +54,18 @@ TEST_F(Combo, combo_osmshift_tapped) { tap_key(key_i); VERIFY_AND_CLEAR(driver); } + +TEST_F(Combo, combo_single_key_twice) { + TestDriver driver; + KeymapKey key_a(0, 0, 1, KC_A); + set_keymap({key_a}); + + EXPECT_REPORT(driver, (KC_B)); + tap_combo({key_a}); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + tap_combo({key_a}); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/combo/test_combos.c b/tests/combo/test_combos.c index 8dcb364c6e..a6f249833f 100644 --- a/tests/combo/test_combos.c +++ b/tests/combo/test_combos.c @@ -4,14 +4,16 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -enum combos { modtest, osmshift }; +enum combos { modtest, osmshift, single_key }; -uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END}; -uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END}; +uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END}; +uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END}; +uint16_t const single_key_combo[] = {KC_A, COMBO_END}; // clang-format off combo_t key_combos[] = { [modtest] = COMBO(modtest_combo, RSFT_T(KC_SPACE)), - [osmshift] = COMBO(osmshift_combo, OSM(MOD_LSFT)) + [osmshift] = COMBO(osmshift_combo, OSM(MOD_LSFT)), + [single_key] = COMBO(single_key_combo, KC_B), }; // clang-format on diff --git a/tests/repeat_key/test_repeat_key.cpp b/tests/repeat_key/test_repeat_key.cpp index ed5d618761..385ae884cc 100644 --- a/tests/repeat_key/test_repeat_key.cpp +++ b/tests/repeat_key/test_repeat_key.cpp @@ -54,6 +54,7 @@ class RepeatKey : public TestFixture { bool process_record_user_was_called_; void SetUp() override { + reset_repeat_key_state(); autoshift_disable(); process_record_user_fun = process_record_user_default; remember_last_key_user_fun = remember_last_key_user_default; @@ -784,4 +785,26 @@ TEST_F(RepeatKey, IgnoredKeys) { testing::Mock::VerifyAndClearExpectations(&driver); } +// Check that on fresh boot, repeat press, another key, repeat release doesn't hang +TEST_F(RepeatKey, RepeatKeyHeldAfterBoot) { + TestDriver driver; + KeymapKey key_a(0, 1, 0, KC_A); + KeymapKey key_repeat(0, 2, 0, QK_REP); + set_keymap({key_a, key_repeat}); + + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); + ExpectString(driver, "a"); + + // Press and hold repeat key, then press and release 'a' key, then release repeat key + key_repeat.press(); + run_one_scan_loop(); + key_a.press(); + run_one_scan_loop(); + key_a.release(); + run_one_scan_loop(); + key_repeat.release(); + run_one_scan_loop(); + testing::Mock::VerifyAndClearExpectations(&driver); +} + } // namespace diff --git a/tests/tap_dance/examples.c b/tests/tap_dance/examples.c index 4b6bdb2090..6aaf008232 100644 --- a/tests/tap_dance/examples.c +++ b/tests/tap_dance/examples.c @@ -81,11 +81,13 @@ typedef struct { bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; + tap_dance_state_t* state; switch (keycode) { case TD(CT_CLN): action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); - if (!record->event.pressed && action->state.count && !action->state.finished) { + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; tap_code16(tap_hold->tap); } diff --git a/tests/tap_hold_configurations/retro_tapping/config.h b/tests/tap_hold_configurations/retro_tapping/config.h index cc9f162477..b776b7466e 100644 --- a/tests/tap_hold_configurations/retro_tapping/config.h +++ b/tests/tap_hold_configurations/retro_tapping/config.h @@ -20,5 +20,4 @@ #define RETRO_TAPPING #define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_RIGHT_CTRL -#define MODS_TO_NEUTRALIZE \ - { MOD_BIT(KC_LEFT_GUI) } +#define MODS_TO_NEUTRALIZE {MOD_BIT(KC_LEFT_GUI)} diff --git a/tests/tap_hold_configurations/speculative_hold/all_mods/config.h b/tests/tap_hold_configurations/speculative_hold/all_mods/config.h new file mode 100644 index 0000000000..e4bcba13c1 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/all_mods/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/all_mods/test.mk b/tests/tap_hold_configurations/speculative_hold/all_mods/test.mk new file mode 100644 index 0000000000..1765122512 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/all_mods/test.mk @@ -0,0 +1,18 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2025 Google LLC +# +# 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 . + +MAGIC_ENABLE = yes + diff --git a/tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp new file mode 100644 index 0000000000..764b97ddde --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp @@ -0,0 +1,352 @@ +// Copyright 2025 Google LLC +// +// 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 +// +// https://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. + +#include + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +namespace { + +// Gets the unpacked 8-bit mods corresponding to a given mod-tap keycode. +uint8_t unpack_mod_tap_mods(uint16_t keycode) { + const uint8_t mods5 = QK_MOD_TAP_GET_MODS(keycode); + return (mods5 & 0x10) != 0 ? (mods5 << 4) : mods5; +} + +bool get_speculative_hold_all_mods(uint16_t keycode, keyrecord_t *record) { + return true; // Enable Speculative Hold for all mod-tap keys. +} + +// Indirection so that get_speculative_hold() can be +// replaced with other functions in the test cases below. +std::function get_speculative_hold_fun = get_speculative_hold_all_mods; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return get_speculative_hold_fun(keycode, record); +} + +class SpeculativeHoldAllMods : public TestFixture { + public: + void SetUp() override { + get_speculative_hold_fun = get_speculative_hold_all_mods; + } +}; + +TEST_F(SpeculativeHoldAllMods, tap_mod_tap_neutralized) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, GUI_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. Speculative mod is neutralized and canceled. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, hold_two_mod_taps) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, LCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RALT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL); + + // Press second mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL, KC_RALT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_RALT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, two_mod_taps_same_mods) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, GUI_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, GUI_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap second mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, respects_get_speculative_hold_callback) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, LSFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, LSFT_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, LCTL_T(KC_C)); + auto mod_tap_key4 = KeymapKey(0, 3, 0, LCTL_T(KC_D)); + auto mod_tap_key5 = KeymapKey(0, 4, 0, RSFT_T(KC_E)); + auto mod_tap_key6 = KeymapKey(0, 5, 0, RSFT_T(KC_F)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3, mod_tap_key4, mod_tap_key5, mod_tap_key6}); + + // Enable Speculative Hold selectively for some of the keys. + get_speculative_hold_fun = [](uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LSFT_T(KC_B): + case LCTL_T(KC_D): + case RSFT_T(KC_F): + return true; + } + return false; + }; + + for (KeymapKey *mod_tap_key : {&mod_tap_key2, &mod_tap_key4, &mod_tap_key6}) { + SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); + const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); + + // Long press and release mod_tap_key. + // For these keys where Speculative Hold is enabled, then the mod should + // activate immediately on keydown. + EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); + mod_tap_key->press(); + run_one_scan_loop(); + EXPECT_EQ(get_speculative_mods(), mods); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key->release(); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + } + + for (KeymapKey *mod_tap_key : {&mod_tap_key1, &mod_tap_key3, &mod_tap_key5}) { + SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); + const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); + + // Long press and release mod_tap_key. + // For these keys where Speculative Hold is disabled, the mod should + // activate when the key has settled after the tapping term. + EXPECT_NO_REPORT(driver); + mod_tap_key->press(); + run_one_scan_loop(); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key->release(); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + } +} + +TEST_F(SpeculativeHoldAllMods, respects_magic_mod_config) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_P)); + + set_keymap({mod_tap_key}); + + keymap_config.swap_lctl_lgui = true; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + keymap_config.swap_lctl_lgui = false; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, tap_a_mod_tap_key_while_another_mod_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto first_mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto second_mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_A)); + + set_keymap({first_mod_tap_key, second_mod_tap_key}); + + // Press first mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + first_mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT, KC_RSFT)); + second_mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second tap-hold key. + EXPECT_NO_REPORT(driver); + second_mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + first_mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, tap_mod_tap_key_two_times) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-hold key again. + EXPECT_REPORT(driver, (KC_P)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +} // namespace diff --git a/tests/tap_hold_configurations/speculative_hold/default/config.h b/tests/tap_hold_configurations/speculative_hold/default/config.h new file mode 100644 index 0000000000..9891296f42 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/config.h @@ -0,0 +1,22 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD diff --git a/tests/tap_hold_configurations/speculative_hold/default/test.mk b/tests/tap_hold_configurations/speculative_hold/default/test.mk new file mode 100644 index 0000000000..f5decaeb78 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/test.mk @@ -0,0 +1,20 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2025 Google LLC +# +# 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 . + +KEY_OVERRIDE_ENABLE = yes + +INTROSPECTION_KEYMAP_C = test_keymap.c + diff --git a/tests/tap_hold_configurations/speculative_hold/default/test_keymap.c b/tests/tap_hold_configurations/speculative_hold/default/test_keymap.c new file mode 100644 index 0000000000..db65374618 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/test_keymap.c @@ -0,0 +1,20 @@ +// Copyright 2025 Google LLC +// +// 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 +// +// https://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. + +#include "quantum.h" + +// Shift + Esc = Home +const key_override_t home_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, KC_HOME); + +const key_override_t *key_overrides[] = {&home_esc_override}; diff --git a/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp new file mode 100644 index 0000000000..bfa022be11 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp @@ -0,0 +1,535 @@ +// Copyright 2025 Google LLC +// +// 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 +// +// https://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. + +#include + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +namespace { + +bool process_record_user_default(uint16_t keycode, keyrecord_t *record) { + return true; +} + +// Indirection so that process_record_user() can be +// replaced with other functions in the test cases below. +std::function process_record_user_fun = process_record_user_default; + +extern "C" bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return process_record_user_fun(keycode, record); +} + +class SpeculativeHoldDefault : public TestFixture { + public: + void SetUp() override { + process_record_user_fun = process_record_user_default; + } +}; + +TEST_F(SpeculativeHoldDefault, get_speculative_hold) { + keyrecord_t record = {}; + + // With the default definition of get_speculative_hold(), Speculative Hold + // is enabled for Ctrl and Shift. + EXPECT_TRUE(get_speculative_hold(MT(MOD_LCTL, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_LSFT, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_LCTL | MOD_LSFT, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_RCTL, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_RSFT, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_RCTL | MOD_RSFT, KC_NO), &record)); + + EXPECT_FALSE(get_speculative_hold(MT(MOD_LALT, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_LGUI, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_RALT, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_RGUI, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_MEH, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_HYPR, KC_NO), &record)); +} + +TEST_F(SpeculativeHoldDefault, tap_mod_tap) { + TestDriver driver; + InSequence s; + static int process_record_user_calls = 0; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + process_record_user_fun = [](uint16_t keycode, keyrecord_t *record) { + ++process_record_user_calls; + return true; + }; + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LSHIFT); + // Speculative mod holds and releases are made directly, bypassing regular + // event processing. No calls have been made yet to process_record_user(). + EXPECT_EQ(process_record_user_calls, 0); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); // Speculative mod canceled. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + // Two calls have now been made, for pressing and releasing KC_P. + EXPECT_EQ(process_record_user_calls, 2); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, key_overrides) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto esc_key = KeymapKey(0, 3, 0, KC_ESC); + + set_keymap({mod_tap_key, esc_key}); + + // Press mod-tap Shift key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press Esc key. + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_HOME)); + esc_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release Esc key. + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT)); + esc_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap Shift key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_regular_key_while_mod_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 3); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_mod_tap_key_two_times) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-hold key again. + EXPECT_REPORT(driver, (KC_P)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_mod_tap_key_twice_and_hold_on_second_time) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-hold key again. + EXPECT_REPORT(driver, (KC_P)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_and_hold_mod_tap_key) { + TestDriver driver; + InSequence s; + static int process_record_user_calls = 0; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + process_record_user_fun = [](uint16_t keycode, keyrecord_t *record) { + ++process_record_user_calls; + return true; + }; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 1); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LSHIFT); + EXPECT_EQ(get_mods(), 0); + // Speculative mod holds and releases are made directly, bypassing regular + // event processing. No calls have been made yet to process_record_user(). + EXPECT_EQ(process_record_user_calls, 0); + idle_for(2); + // Now that the key has settled, one call has been made for the hold event. + EXPECT_EQ(process_record_user_calls, 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LSHIFT); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + EXPECT_EQ(process_record_user_calls, 2); + VERIFY_AND_CLEAR(driver); +} + +// Test with layer tap and speculative mod tap keys on the same layer, +// rolling from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldDefault, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldDefault, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldDefault, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT)); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// slow nested press: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +} // namespace diff --git a/tests/tap_hold_configurations/speculative_hold/flow_tap/config.h b/tests/tap_hold_configurations/speculative_hold/flow_tap/config.h new file mode 100644 index 0000000000..6988484226 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/flow_tap/config.h @@ -0,0 +1,25 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define FLOW_TAP_TERM 150 +#define PERMISSIVE_HOLD +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk b/tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk new file mode 100644 index 0000000000..ad8675da9d --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk @@ -0,0 +1,15 @@ +# Copyright 2022 Vladislav Kucheriavykh +# +# 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 . + diff --git a/tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp new file mode 100644 index 0000000000..0433a2548d --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp @@ -0,0 +1,1114 @@ +// Copyright 2025 Google LLC +// +// 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 +// +// https://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. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; +} + +class SpeculativeHoldFlowTapTest : public TestFixture {}; + +TEST_F(SpeculativeHoldFlowTapTest, tap_mod_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LSHIFT); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); // Speculative mod canceled. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTapTest, hold_two_mod_taps) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, LCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RALT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL); + + // Press second mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL, KC_RALT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_RALT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTapTest, two_mod_taps_same_mods) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, GUI_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, GUI_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key1.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Tap second mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI, KC_B)); + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test an input of quick distinct taps. All should be settled as tapped. +TEST_F(SpeculativeHoldFlowTapTest, distinct_taps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, ALT_T(KC_D)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key, FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 1. + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 2. + EXPECT_REPORT(driver, (KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 3. + EXPECT_REPORT(driver, (KC_D)); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key3.release(); + idle_for(FLOW_TAP_TERM + 1); // Pause between taps. + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 1. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 2. + EXPECT_REPORT(driver, (KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM + 1); + mod_tap_key2.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// By default, Flow Tap is disabled when mods other than Shift and AltGr are on. +TEST_F(SpeculativeHoldFlowTapTest, hotkey_taps) { + TestDriver driver; + InSequence s; + auto ctrl_key = KeymapKey(0, 0, 0, KC_LCTL); + auto shft_key = KeymapKey(0, 1, 0, KC_LSFT); + auto alt_key = KeymapKey(0, 2, 0, KC_LALT); + auto gui_key = KeymapKey(0, 3, 0, KC_LGUI); + auto regular_key = KeymapKey(0, 4, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 5, 0, RCTL_T(KC_B)); + + set_keymap({ctrl_key, shft_key, alt_key, gui_key, regular_key, mod_tap_key}); + + for (KeymapKey *mod_key : {&ctrl_key, &alt_key, &gui_key}) { + // Hold mod key. + EXPECT_REPORT(driver, (mod_key->code)); + mod_key->press(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (mod_key->code, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (mod_key->code)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap, where Flow Tap is disabled due to the held mod. + EXPECT_REPORT(driver, (mod_key->code, KC_RCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap. + EXPECT_REPORT(driver, (mod_key->code)); + mod_tap_key.release(); + run_one_scan_loop(); + + // Release mod key. + EXPECT_EMPTY_REPORT(driver); + mod_key->release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + } + + // Hold Shift key. + EXPECT_REPORT(driver, (KC_LSFT)); + shft_key.press(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap, where Flow Tap applies to settle as tapped. + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.release(); + run_one_scan_loop(); + + // Release Shift key. + EXPECT_EMPTY_REPORT(driver); + shft_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test input with two mod-taps in a rolled press quickly after a regular key. +TEST_F(SpeculativeHoldFlowTapTest, rolled_press) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 1 quickly after regular key. The mod-tap should settle + // immediately as tapped, sending `KC_B`. + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 2 quickly. + EXPECT_REPORT(driver, (KC_B, KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, long_flow_tap_settled_as_held) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + + set_keymap({regular_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, holding_multiple_mod_taps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + mod_tap_key2.press(); + idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); + regular_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, holding_mod_tap_with_regular_mod) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_key = KeymapKey(0, 1, 0, KC_LSFT); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod and mod-tap keys. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); + regular_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, layer_tap_ignored_with_disabled_key) { + TestDriver driver; + InSequence s; + auto no_key = KeymapKey(0, 0, 0, KC_NO); + auto regular_key = KeymapKey(1, 0, 0, KC_ESC); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_ESC)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + tap_key(regular_key); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, layer_tap_ignored_with_disabled_key_complex) { + TestDriver driver; + InSequence s; + auto regular_key1 = KeymapKey(0, 0, 0, KC_Q); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_SPC)); + auto mod_tap_key1 = KeymapKey(0, 2, 0, CTL_T(KC_T)); + // Place RALT_T(KC_I), where Flow Tap is enabled, in the same position on + // layer 0 as KC_RGHT, where Flow Tap is disabled. This tests that Flow Tap + // tracks the keycode from the correct layer. + auto mod_tap_key2 = KeymapKey(0, 3, 0, RALT_T(KC_I)); + auto regular_key2 = KeymapKey(1, 3, 0, KC_RGHT); + + set_keymap({regular_key1, layer_tap_key, mod_tap_key1, mod_tap_key2, regular_key2}); + + // Tap regular key 1. + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key1); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Hold layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap regular key 2. + EXPECT_REPORT(driver, (KC_RALT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_RGHT)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key2); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Quickly hold mod-tap key 1. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_Q)); + EXPECT_REPORT(driver, (KC_LCTL)); + tap_key(regular_key1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, layer_tap_ignored_with_enabled_key) { + TestDriver driver; + InSequence s; + auto no_key = KeymapKey(0, 0, 0, KC_NO); + auto regular_key = KeymapKey(1, 0, 0, KC_C); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + tap_key(regular_key); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM + 1); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, quick_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(mod_tap_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_mt_mt) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + EXPECT_NO_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_lt_mt_regular) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_B)); + auto regular_key = KeymapKey(0, 2, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + idle_for(FLOW_TAP_TERM + 1); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B, KC_C)); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_lt_regular_mt) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + layer_tap_key.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B, KC_C)); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_mt_mt_mt) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, CTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, GUI_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, ALT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI, KC_LALT)); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B, KC_C)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release other mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, roll_release_132) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, CTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, GUI_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, ALT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI, KC_LALT)); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release other mod-tap keys. + EXPECT_REPORT(driver, (KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, rolling +// from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press from LT to MT key: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_B)); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key.press(); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// slow nested press: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} diff --git a/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h new file mode 100644 index 0000000000..5b16a60687 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h @@ -0,0 +1,30 @@ +/* Copyright 2022 Isaac Elenbaas + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define PERMISSIVE_HOLD + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS + +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk new file mode 100644 index 0000000000..7a19bcab59 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk @@ -0,0 +1,17 @@ +# Copyright 2022 Isaac Elenbaas +# Copyright 2025 Google LLC +# +# 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 . + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp new file mode 100644 index 0000000000..b81485865b --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp @@ -0,0 +1,689 @@ +// Copyright 2022 Isaac Elenbaas +// Copyright 2025 Google LLC +// +// 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 "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +extern "C" { +bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} +} // extern "C" + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftPermissiveHold : public TestFixture {}; + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// Test with layer tap and speculative mod tap keys on the same layer, rolling +// from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press from LT to MT key: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT, KC_C)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, try a nested +// press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_C)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, try a slow +// nested press: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} diff --git a/keyboards/splitkb/aurora/corne/rev1/config.h b/tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h similarity index 78% rename from keyboards/splitkb/aurora/corne/rev1/config.h rename to tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h index 5a5910d81c..b20ddbdcad 100644 --- a/keyboards/splitkb/aurora/corne/rev1/config.h +++ b/tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h @@ -1,4 +1,5 @@ -/* Copyright 2022 splitkb.com +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC * * 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 @@ -16,8 +17,8 @@ #pragma once -// Not yet available in `info.json` -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X32 -# define SPLIT_OLED_ENABLE -#endif +#include "test_common.h" + +#define SPECULATIVE_HOLD +#define RETRO_TAPPING +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk new file mode 100644 index 0000000000..9bc3366e14 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk @@ -0,0 +1,15 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2025 Google LLC +# +# 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 . diff --git a/tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp new file mode 100644 index 0000000000..de70bf09fd --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp @@ -0,0 +1,629 @@ +// Copyright 2025 Google LLC +// +// 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 +// +// https://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. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; +} + +class SpeculativeHoldRetroTappingTest : public TestFixture {}; + +TEST_F(SpeculativeHoldRetroTappingTest, roll_regular_to_lgui_mod) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B, KC_LGUI)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Speculative Hold. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, regular_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B, KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_regular) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Speculative Hold. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_B, KC_P)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_over_tap_term_to_regular) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_over_tap_term_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT, KC_P)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Retro Tapping. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_P, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_mod_over_tap_term_offset) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + // Neutralizer invoked by Retro Tapping. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_over_tap_term_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Retro Tapping. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_P, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_to_mod_to_mod) { + TestDriver driver; + InSequence s; + auto mod_tap_lalt = KeymapKey(0, 1, 0, LALT_T(KC_R)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + auto mod_tap_lctl = KeymapKey(0, 3, 0, LCTL_T(KC_C)); + + set_keymap({mod_tap_lalt, mod_tap_lsft, mod_tap_lctl}); + + EXPECT_REPORT(driver, (KC_LALT)); + mod_tap_lalt.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LALT)); + mod_tap_lsft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lalt.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT)); + mod_tap_lctl.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_C, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lctl.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// Test with layer tap and speculative mod tap keys on the same layer, rolling +// from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LCTL)); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly making +// a nested press from LT to MT key: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} diff --git a/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/config.h b/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/config.h new file mode 100644 index 0000000000..92b4e61b1d --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2026 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define SPECULATIVE_HOLD_FLOW_TERM 200 diff --git a/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/test.mk b/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/test.mk new file mode 100644 index 0000000000..e716b59210 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/test.mk @@ -0,0 +1,16 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2026 Google LLC +# +# 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 . + diff --git a/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/test_tap_hold.cpp new file mode 100644 index 0000000000..70a7713bb0 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/speculative_hold_flow_term/test_tap_hold.cpp @@ -0,0 +1,195 @@ +// Copyright 2026 Google LLC +// +// 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 +// +// https://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. + +#include +#include + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +namespace { + +class SpeculativeHoldFlowTerm : public TestFixture {}; + +TEST_F(SpeculativeHoldFlowTerm, within_flow_term_one_modtap) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 1, 0, KC_SPC); + auto mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_B)); + set_keymap({regular_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_SPC)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); // Don't speculate. + EXPECT_EQ(get_mods(), 0); + + EXPECT_REPORT(driver, (KC_RSFT)); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_RSHIFT); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTerm, within_flow_term_two_modtaps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 1 quickly after regular key. The mod-tap should settle + // immediately as tapped, sending `KC_B`. + EXPECT_NO_REPORT(driver); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); // Don't speculate. + + // Press mod-tap key 2 quickly. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); // Don't speculate. + + // Hold for longer than the tapping term. + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTerm, after_flow_term_one_modtap) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 1, 0, KC_SPC); + auto mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_B)); + set_keymap({regular_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_SPC)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + idle_for(SPECULATIVE_HOLD_FLOW_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key. + EXPECT_REPORT(driver, (KC_RSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_RSHIFT); + EXPECT_EQ(get_mods(), 0); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_RSHIFT); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTerm, after_flow_term_two_modtaps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 1, 0, KC_SPC); + auto mod_tap_key1 = KeymapKey(0, 2, 0, RSFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 3, 0, RCTL_T(KC_C)); + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_SPC)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + idle_for(SPECULATIVE_HOLD_FLOW_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 1. + EXPECT_REPORT(driver, (KC_RSFT)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_RSHIFT); + EXPECT_EQ(get_mods(), 0); + + // Press mod-tap key 2. + EXPECT_REPORT(driver, (KC_RSFT, KC_RCTL)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_RSHIFT | MOD_BIT_RCTRL); + EXPECT_EQ(get_mods(), 0); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_RSHIFT | MOD_BIT_RCTRL); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_RCTL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +} // namespace diff --git a/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/config.h b/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/config.h new file mode 100644 index 0000000000..0ae84c2cac --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/config.h @@ -0,0 +1,24 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2026 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define SPECULATIVE_HOLD_ONE_KEY +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/test.mk b/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/test.mk new file mode 100644 index 0000000000..e716b59210 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/test.mk @@ -0,0 +1,16 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2026 Google LLC +# +# 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 . + diff --git a/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/test_tap_hold.cpp new file mode 100644 index 0000000000..60f7574517 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/speculative_hold_one_key/test_tap_hold.cpp @@ -0,0 +1,189 @@ +// Copyright 2026 Google LLC +// +// 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 +// +// https://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. + +#include +#include + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +namespace { + +// Gets the unpacked 8-bit mods corresponding to a given mod-tap keycode. +uint8_t unpack_mod_tap_mods(uint16_t keycode) { + const uint8_t mods5 = QK_MOD_TAP_GET_MODS(keycode); + return (mods5 & 0x10) != 0 ? (mods5 << 4) : mods5; +} + +std::vector mods_report(uint8_t mods) { + std::vector keycodes; + if ((mods & MOD_BIT_LCTRL)) { + keycodes.push_back(KC_LCTL); + } + if ((mods & MOD_BIT_LSHIFT)) { + keycodes.push_back(KC_LSFT); + } + if ((mods & MOD_BIT_LALT)) { + keycodes.push_back(KC_LALT); + } + if ((mods & MOD_BIT_LGUI)) { + keycodes.push_back(KC_LGUI); + } + if ((mods & MOD_BIT_RCTRL)) { + keycodes.push_back(KC_RCTL); + } + if ((mods & MOD_BIT_RSHIFT)) { + keycodes.push_back(KC_RSFT); + } + if ((mods & MOD_BIT_RALT)) { + keycodes.push_back(KC_RALT); + } + if ((mods & MOD_BIT_RGUI)) { + keycodes.push_back(KC_RGUI); + } + return keycodes; +} + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; // Enable Speculative Hold for all mod-tap keys. +} + +class SpeculativeHoldOneKey : public TestFixture {}; + +TEST_F(SpeculativeHoldOneKey, modtap_dont_speculate) { + TestDriver driver; + InSequence s; + + struct Params { + uint8_t initial_mods; + uint16_t key; + }; + for (Params params : std::vector({ + {MOD_BIT_LSHIFT, LALT_T(KC_1)}, + {MOD_BIT_RCTRL, LGUI_T(KC_1)}, + {MOD_BIT_LALT, LSFT_T(KC_1)}, + {MOD_BIT_RALT, RCTL_T(KC_1)}, + {MOD_MASK_SHIFT, RGUI_T(KC_1)}, + })) { + std::string scope = "initial_mods="; + scope += testing::PrintToString(params.initial_mods); + scope += std::string(", key=") + get_keycode_string(params.key); + SCOPED_TRACE(scope); + + const uint8_t initial_mods = params.initial_mods; + auto mod_tap_key = KeymapKey(0, 1, 0, params.key); + const uint8_t mod_tap_mods = unpack_mod_tap_mods(params.key); + + set_keymap({mod_tap_key}); + + // Activate mods. + set_mods(initial_mods); + + // Press mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_mods(), initial_mods); + EXPECT_EQ(get_speculative_mods(), 0); + + EXPECT_REPORT(driver, (mods_report(initial_mods | mod_tap_mods))); + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), initial_mods | mod_tap_mods); + + // Release mod-tap key. + EXPECT_REPORT(driver, (mods_report(initial_mods & ~mod_tap_mods))); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + } + + EXPECT_EMPTY_REPORT(driver); + clear_mods(); + send_keyboard_report(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldOneKey, two_modtaps_dont_speculate_second_key) { + TestDriver driver; + InSequence s; + + for (auto keys : std::vector>({ + {LSFT_T(KC_A), LCTL_T(KC_1)}, + {RSFT_T(KC_A), RCTL_T(KC_1)}, + {LGUI_T(KC_A), LSFT_T(KC_1)}, + {RALT_T(KC_A), RSFT_T(KC_1)}, + {MEH_T(KC_A), LGUI_T(KC_1)}, + {RCS_T(KC_A), RSG_T(KC_1)}, + {LCS_T(KC_A), HYPR_T(KC_1)}, + })) { + std::string scope = "keys = "; + scope += get_keycode_string(keys.first); + scope += std::string(", ") + get_keycode_string(keys.second); + SCOPED_TRACE(scope); + + auto mod_tap_key1 = KeymapKey(0, 1, 0, keys.first); + auto mod_tap_key2 = KeymapKey(0, 2, 0, keys.second); + const uint8_t mods1 = unpack_mod_tap_mods(keys.first); + const uint8_t mods2 = unpack_mod_tap_mods(keys.second); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (mods_report(mods1))); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), mods1); + + // Press second mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), mods1); + + EXPECT_REPORT(driver, (mods_report(mods1 | mods2))); + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods1 | mods2); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (mods_report(mods2 & ~mods1))); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + } +} + +} // namespace diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp index 5e40323669..dea61efcd1 100644 --- a/tests/test_common/keyboard_report_util.cpp +++ b/tests/test_common/keyboard_report_util.cpp @@ -18,6 +18,7 @@ #include #include #include +#include extern "C" { #include "keycode_string.h" diff --git a/tests/test_common/keyboard_report_util.hpp b/tests/test_common/keyboard_report_util.hpp index 2c33f0412e..d4a4622c24 100644 --- a/tests/test_common/keyboard_report_util.hpp +++ b/tests/test_common/keyboard_report_util.hpp @@ -19,21 +19,25 @@ #include #include "gmock/gmock.h" -bool operator==(const report_keyboard_t& lhs, const report_keyboard_t& rhs); +bool operator==(const report_keyboard_t& lhs, const report_keyboard_t& rhs); std::ostream& operator<<(std::ostream& stream, const report_keyboard_t& value); class KeyboardReportMatcher : public testing::MatcherInterface { - public: + public: KeyboardReportMatcher(const std::vector& keys); virtual bool MatchAndExplain(report_keyboard_t& report, testing::MatchResultListener* listener) const override; virtual void DescribeTo(::std::ostream* os) const override; virtual void DescribeNegationTo(::std::ostream* os) const override; -private: + + private: report_keyboard_t m_report; }; +inline testing::Matcher KeyboardReport(const std::vector& keys) { + return testing::MakeMatcher(new KeyboardReportMatcher(keys)); +} -template +template inline testing::Matcher KeyboardReport(Ts... keys) { - return testing::MakeMatcher(new KeyboardReportMatcher(std::vector({keys...}))); + return testing::MakeMatcher(new KeyboardReportMatcher({static_cast(keys)...})); } diff --git a/tests/test_common/mouse_report_util.cpp b/tests/test_common/mouse_report_util.cpp index 60cdeced24..948b3c1121 100644 --- a/tests/test_common/mouse_report_util.cpp +++ b/tests/test_common/mouse_report_util.cpp @@ -18,6 +18,7 @@ #include #include #include +#include using namespace testing; diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp index 70b920ac86..2ab692256b 100644 --- a/tests/test_common/test_driver.cpp +++ b/tests/test_common/test_driver.cpp @@ -15,6 +15,7 @@ */ #include "test_driver.hpp" +#include TestDriver* TestDriver::m_this = nullptr; diff --git a/tests/test_common/test_fixture.cpp b/tests/test_common/test_fixture.cpp index 00084721d6..ed57d9e109 100644 --- a/tests/test_common/test_fixture.cpp +++ b/tests/test_common/test_fixture.cpp @@ -65,7 +65,7 @@ TestFixture::TestFixture() { TestFixture::~TestFixture() { test_logger.info() << "test fixture clean-up start." << std::endl; - TestDriver driver; + ::testing::NiceMock driver; /* Reset keyboard state. */ clear_all_keys(); diff --git a/tests/test_common/test_keymap_key.cpp b/tests/test_common/test_keymap_key.cpp index 63ae29975b..3435382c04 100644 --- a/tests/test_common/test_keymap_key.cpp +++ b/tests/test_common/test_keymap_key.cpp @@ -15,6 +15,7 @@ */ #include "test_keymap_key.hpp" +#include #include #include #include "matrix.h" diff --git a/tests/test_common/test_logger.hpp b/tests/test_common/test_logger.hpp index 4964583ded..010adc138e 100644 --- a/tests/test_common/test_logger.hpp +++ b/tests/test_common/test_logger.hpp @@ -21,7 +21,7 @@ class TestLogger : public std::ostream { public: - TestLogger() : std::ostream(&m_log){}; + TestLogger() : std::ostream(&m_log) {}; TestLogger& info(); TestLogger& trace(); TestLogger& error(); diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index 5720bc3c4c..b8cded99fc 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -191,6 +191,9 @@ void protocol_pre_task(void) { // // Pause for a while to let things settle... wait_ms(USB_SUSPEND_WAKEUP_DELAY); + // ...and then update the wakeup matrix again as the waking key + // might have been released during the delay + update_matrix_state_after_wakeup(); # endif } } diff --git a/tmk_core/protocol/chibios/usb_driver.c b/tmk_core/protocol/chibios/usb_driver.c index 7c3ce44687..8b471cba56 100644 --- a/tmk_core/protocol/chibios/usb_driver.c +++ b/tmk_core/protocol/chibios/usb_driver.c @@ -186,7 +186,7 @@ void usb_endpoint_out_configure_cb(usb_endpoint_out_t *endpoint) { void usb_endpoint_in_tx_complete_cb(USBDriver *usbp, usbep_t ep) { usb_endpoint_in_t *endpoint = usbp->in_params[ep - 1U]; size_t n; - uint8_t * buffer; + uint8_t *buffer; if (endpoint == NULL) { return; diff --git a/tmk_core/protocol/chibios/usb_endpoints.c b/tmk_core/protocol/chibios/usb_endpoints.c index 856df62426..00536845b2 100644 --- a/tmk_core/protocol/chibios/usb_endpoints.c +++ b/tmk_core/protocol/chibios/usb_endpoints.c @@ -68,7 +68,7 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { # if defined(USB_ENDPOINTS_ARE_REORDERABLE) [USB_ENDPOINT_IN_CONSOLE] = QMK_USB_ENDPOINT_IN_SHARED(USB_EP_MODE_TYPE_INTR, CONSOLE_EPSIZE, CONSOLE_IN_EPNUM, CONSOLE_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(CONSOLE_EPSIZE)), # else - [USB_ENDPOINT_IN_CONSOLE] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, CONSOLE_EPSIZE, CONSOLE_IN_EPNUM, CONSOLE_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(CONSOLE_EPSIZE)), + [USB_ENDPOINT_IN_CONSOLE] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, CONSOLE_EPSIZE, CONSOLE_IN_EPNUM, CONSOLE_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(CONSOLE_EPSIZE)), # endif #endif @@ -76,7 +76,7 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { # if defined(USB_ENDPOINTS_ARE_REORDERABLE) [USB_ENDPOINT_IN_RAW] = QMK_USB_ENDPOINT_IN_SHARED(USB_EP_MODE_TYPE_INTR, RAW_EPSIZE, RAW_IN_EPNUM, RAW_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(RAW_EPSIZE)), # else - [USB_ENDPOINT_IN_RAW] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, RAW_EPSIZE, RAW_IN_EPNUM, RAW_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(RAW_EPSIZE)), + [USB_ENDPOINT_IN_RAW] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, RAW_EPSIZE, RAW_IN_EPNUM, RAW_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(RAW_EPSIZE)), # endif #endif @@ -84,7 +84,7 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { # if defined(USB_ENDPOINTS_ARE_REORDERABLE) [USB_ENDPOINT_IN_MIDI] = QMK_USB_ENDPOINT_IN_SHARED(USB_EP_MODE_TYPE_BULK, MIDI_STREAM_EPSIZE, MIDI_STREAM_IN_EPNUM, MIDI_STREAM_IN_CAPACITY, NULL, NULL), # else - [USB_ENDPOINT_IN_MIDI] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_BULK, MIDI_STREAM_EPSIZE, MIDI_STREAM_IN_EPNUM, MIDI_STREAM_IN_CAPACITY, NULL, NULL), + [USB_ENDPOINT_IN_MIDI] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_BULK, MIDI_STREAM_EPSIZE, MIDI_STREAM_IN_EPNUM, MIDI_STREAM_IN_CAPACITY, NULL, NULL), # endif #endif diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index b798a8d1cb..b8497684d6 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -80,7 +80,7 @@ static const USBDescriptor *usb_get_descriptor_cb(USBDriver *usbp, uint8_t dtype static USBDescriptor descriptor; descriptor.ud_string = NULL; - descriptor.ud_size = get_usb_descriptor(setup->wValue.word, setup->wIndex, setup->wLength, (const void **const) & descriptor.ud_string); + descriptor.ud_size = get_usb_descriptor(setup->wValue.word, setup->wIndex, setup->wLength, (const void **const)&descriptor.ud_string); if (descriptor.ud_string == NULL) { return NULL; diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 4874d7c1d3..f4fa9064e0 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -18,6 +18,7 @@ along with this program. If not, see . #include #include "keyboard.h" #include "keycode.h" +#include "action.h" #include "host.h" #include "util.h" #include "debug.h" @@ -78,9 +79,48 @@ host_driver_t *host_get_driver(void) { return driver; } +#ifdef CONNECTION_ENABLE +static connection_host_t active_host = CONNECTION_HOST_NONE; + +__attribute__((weak)) void host_disconnect_active_driver_user(connection_host_t host) {} +__attribute__((weak)) void host_disconnect_active_driver_kb(connection_host_t host) {} + +__attribute__((weak)) void host_connect_active_driver_user(connection_host_t host) {} +__attribute__((weak)) void host_connect_active_driver_kb(connection_host_t host) {} + +// TODO: Additionally have host_driver_t handle swap +static void host_update_active_driver(connection_host_t current, connection_host_t next) { + host_disconnect_active_driver_user(current); + host_disconnect_active_driver_kb(current); + + if (current != CONNECTION_HOST_NONE) { + clear_keyboard(); + } + + host_connect_active_driver_user(next); + host_connect_active_driver_kb(next); +} + +#endif + +void host_init(void) { + // currently do nothing +} + +void host_task(void) { +#ifdef CONNECTION_ENABLE + connection_host_t next_host = connection_get_host(); + if (next_host != active_host) { + host_update_active_driver(active_host, next_host); + + active_host = next_host; + } +#endif +} + static host_driver_t *host_get_active_driver(void) { #ifdef CONNECTION_ENABLE - switch (connection_get_host()) { + switch (active_host) { # ifdef BLUETOOTH_ENABLE case CONNECTION_HOST_BLUETOOTH: return &bt_driver; @@ -96,7 +136,7 @@ static host_driver_t *host_get_active_driver(void) { bool host_can_send_nkro(void) { #ifdef CONNECTION_ENABLE - switch (connection_get_host()) { + switch (active_host) { # ifdef BLUETOOTH_ENABLE case CONNECTION_HOST_BLUETOOTH: return bluetooth_can_send_nkro(); diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h index a0b1e73dcc..7ff6d0df08 100644 --- a/tmk_core/protocol/host.h +++ b/tmk_core/protocol/host.h @@ -27,6 +27,9 @@ along with this program. If not, see . extern "C" { #endif +void host_init(void); +void host_task(void); + /* host driver */ void host_set_driver(host_driver_t *driver); host_driver_t *host_get_driver(void); diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index e13f4b548e..3e442ba033 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -826,6 +826,9 @@ void protocol_pre_task(void) { // // Pause for a while to let things settle... wait_ms(USB_SUSPEND_WAKEUP_DELAY); + // ...and then update the wakeup matrix again as the waking key + // might have been released during the delay + update_matrix_state_after_wakeup(); # endif } } diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index 9053b0bb3f..ec220c6938 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -194,21 +194,21 @@ typedef struct { } PACKED report_programmable_button_t; #ifdef MOUSE_EXTENDED_REPORT -# define MOUSE_REPORT_XY_MIN INT16_MIN +# define MOUSE_REPORT_XY_MIN (INT16_MIN + 1) # define MOUSE_REPORT_XY_MAX INT16_MAX typedef int16_t mouse_xy_report_t; #else -# define MOUSE_REPORT_XY_MIN INT8_MIN +# define MOUSE_REPORT_XY_MIN (INT8_MIN + 1) # define MOUSE_REPORT_XY_MAX INT8_MAX typedef int8_t mouse_xy_report_t; #endif #ifdef WHEEL_EXTENDED_REPORT -# define MOUSE_REPORT_HV_MIN INT16_MIN +# define MOUSE_REPORT_HV_MIN (INT16_MIN + 1) # define MOUSE_REPORT_HV_MAX INT16_MAX typedef int16_t mouse_hv_report_t; #else -# define MOUSE_REPORT_HV_MIN INT8_MIN +# define MOUSE_REPORT_HV_MIN (INT8_MIN + 1) # define MOUSE_REPORT_HV_MAX INT8_MAX typedef int8_t mouse_hv_report_t; #endif diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index ceab9eef9a..38abb3781c 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -153,13 +153,13 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_USAGE(8, 0x30), // X HID_RI_USAGE(8, 0x31), // Y # ifndef MOUSE_EXTENDED_REPORT - HID_RI_LOGICAL_MINIMUM(8, -127), - HID_RI_LOGICAL_MAXIMUM(8, 127), + HID_RI_LOGICAL_MINIMUM(8, MOUSE_REPORT_XY_MIN), + HID_RI_LOGICAL_MAXIMUM(8, MOUSE_REPORT_XY_MAX), HID_RI_REPORT_COUNT(8, 0x02), HID_RI_REPORT_SIZE(8, 0x08), # else - HID_RI_LOGICAL_MINIMUM(16, -32767), - HID_RI_LOGICAL_MAXIMUM(16, 32767), + HID_RI_LOGICAL_MINIMUM(16, MOUSE_REPORT_XY_MIN), + HID_RI_LOGICAL_MAXIMUM(16, MOUSE_REPORT_XY_MAX), HID_RI_REPORT_COUNT(8, 0x02), HID_RI_REPORT_SIZE(8, 0x10), # endif @@ -186,13 +186,13 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { // Vertical wheel (1 or 2 bytes) HID_RI_USAGE(8, 0x38), // Wheel # ifndef WHEEL_EXTENDED_REPORT - HID_RI_LOGICAL_MINIMUM(8, -127), - HID_RI_LOGICAL_MAXIMUM(8, 127), + HID_RI_LOGICAL_MINIMUM(8, MOUSE_REPORT_HV_MIN), + HID_RI_LOGICAL_MAXIMUM(8, MOUSE_REPORT_HV_MAX), HID_RI_REPORT_COUNT(8, 0x01), HID_RI_REPORT_SIZE(8, 0x08), # else - HID_RI_LOGICAL_MINIMUM(16, -32767), - HID_RI_LOGICAL_MAXIMUM(16, 32767), + HID_RI_LOGICAL_MINIMUM(16, MOUSE_REPORT_HV_MIN), + HID_RI_LOGICAL_MAXIMUM(16, MOUSE_REPORT_HV_MAX), HID_RI_REPORT_COUNT(8, 0x01), HID_RI_REPORT_SIZE(8, 0x10), # endif @@ -202,13 +202,13 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_USAGE_PAGE(8, 0x0C),// Consumer HID_RI_USAGE(16, 0x0238), // AC Pan # ifndef WHEEL_EXTENDED_REPORT - HID_RI_LOGICAL_MINIMUM(8, -127), - HID_RI_LOGICAL_MAXIMUM(8, 127), + HID_RI_LOGICAL_MINIMUM(8, MOUSE_REPORT_HV_MIN), + HID_RI_LOGICAL_MAXIMUM(8, MOUSE_REPORT_HV_MAX), HID_RI_REPORT_COUNT(8, 0x01), HID_RI_REPORT_SIZE(8, 0x08), # else - HID_RI_LOGICAL_MINIMUM(16, -32767), - HID_RI_LOGICAL_MAXIMUM(16, 32767), + HID_RI_LOGICAL_MINIMUM(16, MOUSE_REPORT_HV_MIN), + HID_RI_LOGICAL_MAXIMUM(16, MOUSE_REPORT_HV_MAX), HID_RI_REPORT_COUNT(8, 0x01), HID_RI_REPORT_SIZE(8, 0x10), # endif @@ -332,6 +332,11 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_USAGE(8, 0x44), // Barrel Switch HID_RI_LOGICAL_MINIMUM(8, 0x00), HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_PHYSICAL_MINIMUM(8, 0), + // Semi-random value (actual claimed physical size is not important) + HID_RI_PHYSICAL_MAXIMUM(8, 0xCB), + HID_RI_UNIT(8, 0x13), // Inch, English Linear + HID_RI_UNIT_EXPONENT(8, 0x0E), // -2 HID_RI_REPORT_COUNT(8, 0x03), HID_RI_REPORT_SIZE(8, 0x01), HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index 1de8c5ec88..366a380fdd 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -223,7 +223,7 @@ enum usb_endpoints { # ifdef USB_ENDPOINTS_ARE_REORDERABLE # define RAW_OUT_EPNUM RAW_IN_EPNUM # else - RAW_OUT_EPNUM = NEXT_EPNUM, + RAW_OUT_EPNUM = NEXT_EPNUM, # endif #endif @@ -250,7 +250,7 @@ enum usb_endpoints { # ifdef USB_ENDPOINTS_ARE_REORDERABLE # define CDC_OUT_EPNUM CDC_IN_EPNUM # else - CDC_OUT_EPNUM = NEXT_EPNUM, + CDC_OUT_EPNUM = NEXT_EPNUM, # endif #endif diff --git a/tmk_core/protocol/usb_descriptor_common.h b/tmk_core/protocol/usb_descriptor_common.h index f782d83fbc..a1dba288ba 100644 --- a/tmk_core/protocol/usb_descriptor_common.h +++ b/tmk_core/protocol/usb_descriptor_common.h @@ -51,4 +51,4 @@ # else # define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 0 # endif -#endif \ No newline at end of file +#endif diff --git a/tmk_core/protocol/usb_device_state.c b/tmk_core/protocol/usb_device_state.c index 98ccfbc902..46f83b4325 100644 --- a/tmk_core/protocol/usb_device_state.c +++ b/tmk_core/protocol/usb_device_state.c @@ -78,7 +78,7 @@ void usb_device_state_set_protocol(usb_hid_protocol_t protocol) { notify_usb_device_state_change(usb_device_state); } -inline usb_hid_protocol_t usb_device_state_get_protocol() { +inline usb_hid_protocol_t usb_device_state_get_protocol(void) { return usb_device_state.protocol; } diff --git a/tmk_core/protocol/vusb/protocol.c b/tmk_core/protocol/vusb/protocol.c index e2d0c4112e..b95750306a 100644 --- a/tmk_core/protocol/vusb/protocol.c +++ b/tmk_core/protocol/vusb/protocol.c @@ -125,6 +125,9 @@ void protocol_pre_task(void) { // // Pause for a while to let things settle... wait_ms(USB_SUSPEND_WAKEUP_DELAY); + // ...and then update the wakeup matrix again as the waking key + // might have been released during the delay + update_matrix_state_after_wakeup(); # endif } } diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 1f0f82664b..e2e28a2b10 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -515,15 +515,15 @@ const PROGMEM uchar shared_hid_report[] = { 0x09, 0x30, // Usage (X) 0x09, 0x31, // Usage (Y) # ifndef MOUSE_EXTENDED_REPORT - 0x15, 0x81, // Logical Minimum (-127) - 0x25, 0x7F, // Logical Maximum (127) - 0x95, 0x02, // Report Count (2) - 0x75, 0x08, // Report Size (8) + 0x15, MOUSE_REPORT_XY_MIN, // Logical Minimum (-127) + 0x25, MOUSE_REPORT_XY_MAX, // Logical Maximum (127) + 0x95, 0x02, // Report Count (2) + 0x75, 0x08, // Report Size (8) # else - 0x16, 0x01, 0x80, // Logical Minimum (-32767) - 0x26, 0xFF, 0x7F, // Logical Maximum (32767) - 0x95, 0x02, // Report Count (2) - 0x75, 0x10, // Report Size (16) + 0x16, 0x01, HID_VALUE_16(MOUSE_REPORT_XY_MIN), // Logical Minimum (-32767) + 0x26, 0xFF, HID_VALUE_16(MOUSE_REPORT_XY_MAX), // Logical Maximum (32767) + 0x95, 0x02, // Report Count (2) + 0x75, 0x10, // Report Size (16) # endif 0x81, 0x06, // Input (Data, Variable, Relative) @@ -548,15 +548,15 @@ const PROGMEM uchar shared_hid_report[] = { // Vertical wheel (1 or 2 bytes) 0x09, 0x38, // Usage (Wheel) # ifndef WHEEL_EXTENDED_REPORT - 0x15, 0x81, // Logical Minimum (-127) - 0x25, 0x7F, // Logical Maximum (127) - 0x95, 0x01, // Report Count (1) - 0x75, 0x08, // Report Size (8) + 0x15, MOUSE_REPORT_HV_MIN, // Logical Minimum (-127) + 0x25, MOUSE_REPORT_HV_MAX, // Logical Maximum (127) + 0x95, 0x01, // Report Count (1) + 0x75, 0x08, // Report Size (8) # else - 0x16, 0x01, 0x80, // Logical Minimum (-32767) - 0x26, 0xFF, 0x7F, // Logical Maximum (32767) - 0x95, 0x01, // Report Count (1) - 0x75, 0x10, // Report Size (16) + 0x16, 0x01, HID_VALUE_16(MOUSE_REPORT_HV_MIN), // Logical Minimum (-32767) + 0x26, 0xFF, HID_VALUE_16(MOUSE_REPORT_HV_MAX), // Logical Maximum (32767) + 0x95, 0x01, // Report Count (1) + 0x75, 0x10, // Report Size (16) # endif 0x81, 0x06, // Input (Data, Variable, Relative) @@ -564,15 +564,15 @@ const PROGMEM uchar shared_hid_report[] = { 0x05, 0x0C, // Usage Page (Consumer) 0x0A, 0x38, 0x02, // Usage (AC Pan) # ifndef WHEEL_EXTENDED_REPORT - 0x15, 0x81, // Logical Minimum (-127) - 0x25, 0x7F, // Logical Maximum (127) - 0x95, 0x01, // Report Count (1) - 0x75, 0x08, // Report Size (8) + 0x15, MOUSE_REPORT_HV_MIN, // Logical Minimum (-127) + 0x25, MOUSE_REPORT_HV_MAX, // Logical Maximum (127) + 0x95, 0x01, // Report Count (1) + 0x75, 0x08, // Report Size (8) # else - 0x16, 0x01, 0x80, // Logical Minimum (-32767) - 0x26, 0xFF, 0x7F, // Logical Maximum (32767) - 0x95, 0x01, // Report Count (1) - 0x75, 0x10, // Report Size (16) + 0x16, 0x01, HID_VALUE_16(MOUSE_REPORT_HV_MIN), // Logical Minimum (-32767) + 0x26, 0xFF, HID_VALUE_16(MOUSE_REPORT_HV_MAX), // Logical Maximum (32767) + 0x95, 0x01, // Report Count (1) + 0x75, 0x10, // Report Size (16) # endif 0x81, 0x06, // Input (Data, Variable, Relative) diff --git a/util/chibios_conf_updater.sh b/util/chibios_conf_updater.sh index 4c68c678c6..06f8e9104a 100755 --- a/util/chibios_conf_updater.sh +++ b/util/chibios_conf_updater.sh @@ -62,7 +62,7 @@ upgrade_conf_files_generic() { pushd "$qmk_firmware_dir/lib/chibios/tools/updater" >/dev/null 2>&1 for file in $(find_chibi_files "$qmk_firmware_dir" -name "$search_filename") ; do cp -f "$file" "$file.orig" - clang-format --style='{IndentPPDirectives: None}' -i "$file" + clang-format --style='{IndentPPDirectives: None, ColumnLimit: 0}' -i "$file" cp -f "$file" "$file.formatted" bash "$update_script" "$file" if ! diff "$file" "$file.formatted" >/dev/null 2>&1 ; then diff --git a/util/env-bootstrap.sh b/util/env-bootstrap.sh new file mode 100755 index 0000000000..e845d8dc64 --- /dev/null +++ b/util/env-bootstrap.sh @@ -0,0 +1,636 @@ +#!/usr/bin/env sh +# Copyright 2025 Nick Brassel (@tzarc) +# SPDX-License-Identifier: GPL-2.0-or-later + +################################################################################ +# This script will install the QMK CLI, toolchains, and flashing utilities. +################################################################################ +# Environment variables: +# CONFIRM: Skip the pre-install delay. (or: --confirm) +# QMK_DISTRIB_DIR: The directory to install the QMK distribution to. (or: --qmk-distrib-dir=...) +# UV_INSTALL_DIR: The directory to install `uv` to. (or: --uv-install-dir=...) +# UV_TOOL_DIR: The directory to install `uv` tools to. (or: --uv-tool-dir=...) +# SKIP_CLEAN: Skip cleaning the distribution directory. (or: --skip-clean) +# SKIP_PACKAGE_MANAGER: Skip installing the necessary packages for the package manager. (or: --skip-package-manager) +# SKIP_UV: Skip installing `uv`. (or: --skip-uv) +# SKIP_QMK_CLI: Skip installing the QMK CLI. (or: --skip-qmk-cli) +# SKIP_QMK_TOOLCHAINS: Skip installing the QMK toolchains. (or: --skip-qmk-toolchains) +# SKIP_QMK_FLASHUTILS: Skip installing the QMK flashing utilities. (or: --skip-qmk-flashutils) +# SKIP_UDEV_RULES: Skip installing the udev rules for Linux. (or: --skip-udev-rules) +# SKIP_WINDOWS_DRIVERS: Skip installing the Windows drivers for the flashing utilities. (or: --skip-windows-drivers) +# +# Arguments above may be negated by prefixing with `--no-` instead (e.g. `--no-skip-clean`). +################################################################################ +# Usage: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | sh +# +# Help: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | sh -s -- --help +# +# An example which skips installing `uv` using environment variables: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | SKIP_UV=1 sh +# +# ...or by using command line arguments: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | sh -s -- --skip-uv +# +# Any other configurable items listed above may be specified in the same way. +################################################################################ + +{ # this ensures the entire script is downloaded # + set -eu + + # Prevent user grep settings from injecting flags (e.g. --color=always) that + # corrupt captured output and break pattern matching throughout this script. + unset GREP_OPTIONS GREP_COLOR GREP_COLORS + + BOOTSTRAP_TMPDIR="$(mktemp -d /tmp/qmk-bootstrap-failure.XXXXXX)" + trap 'rm -rf "$BOOTSTRAP_TMPDIR" >/dev/null 2>&1 || true' EXIT + FAILURE_FILE="${BOOTSTRAP_TMPDIR}/fail" + + # Work out which `sed` to use + command -v gsed >/dev/null 2>&1 && SED=gsed || SED=sed + + script_args() { + cat <<__EOT__ + --help -- Shows this help text + --confirm -- Skips the delay before installation + --uv-install-dir={path} -- The directory to install \`uv\` into + --uv-tool-dir={path} -- The directory to install \`uv\` tools into + --qmk-distrib-dir={path} -- The directory to install the QMK distribution into + --skip-clean -- Skip cleaning the QMK distribution directory + --skip-package-manager -- Skip installing the necessary packages for the package manager + --skip-uv -- Skip installing \`uv\` + --skip-qmk-cli -- Skip installing the QMK CLI + --skip-qmk-toolchains -- Skip installing the QMK toolchains + --skip-qmk-flashutils -- Skip installing the QMK flashing utilities + --skip-udev-rules -- Skip installing the udev rules for Linux + --skip-windows-drivers -- Skip installing the Windows drivers for the flashing utilities +__EOT__ + # Hidden: + # --wsl-install -- Installs the WSL variant of qmk_flashutils + } + + signal_execution_failure() { + touch "$FAILURE_FILE" >/dev/null 2>&1 || true + } + + exit_if_execution_failed() { + if [ -e "$FAILURE_FILE" ]; then + exit 1 + fi + } + + script_help() { + echo "$(basename ${this_script:-qmk-install.sh}) $(script_args | sort | ${SED} -e 's@^\s*@@g' -e 's@\s\+--.*@@g' -e 's@^@[@' -e 's@$@]@' | tr '\n' ' ')" + echo + echo "Arguments:" + script_args + echo + echo "Switch arguments may be negated by prefixing with '--no-' (e.g. '--no-skip-clean')." + } + + script_parse_args() { + local N + local V + while [ ! -z "${1:-}" ]; do + case "$1" in + --help) + script_help + exit 0 + ;; + --*=*) + N=${1%%=*} + N=${N##--} + N=$(echo $N | tr '-' '_' | tr 'a-z' 'A-Z') + V=${1##*=} + export $N="$V" + ;; + --no-*) + N=${1##--no-} + N=$(echo $N | tr '-' '_' | tr 'a-z' 'A-Z') + unset $N + ;; + --*) + N=${1##--} + N=$(echo $N | tr '-' '_' | tr 'a-z' 'A-Z') + export $N=true + ;; + *) + echo "Unknown argument: '$1'" >&2 + echo + script_help >&2 + exit 1 + ;; + esac + shift + unset N + unset V + done + } + + nsudo() { + if [ "$(fn_os)" = "windows" ]; then + # No need for sudo under QMK MSYS + return + elif [ $(id -u) -ne 0 ]; then + if [ -n "$(command -v sudo 2>/dev/null || true)" ]; then + echo "sudo" + elif [ -n "$(command -v doas 2>/dev/null || true)" ]; then + echo "doas" + else + echo "Please install 'sudo' or 'doas' to continue." >&2 + exit 1 + fi + fi + true + } + + download_url() { + local url=$1 + local filename=${2:-$(basename "$url")} + local quiet='' + if [ -n "$(command -v curl 2>/dev/null || true)" ]; then + [ "$filename" = "-" ] && quiet='-s' || echo "Downloading '$url' => '$filename'" >&2 + curl -LSf $quiet -o "$filename" "$url" + elif [ -n "$(command -v wget 2>/dev/null || true)" ]; then + [ "$filename" = "-" ] && quiet='-q' || echo "Downloading '$url' => '$filename'" >&2 + wget $quiet "-O$filename" "$url" + else + echo "Please install 'curl' to continue." >&2 + exit 1 + fi + } + + github_api_call() { + local url="$1" + local token="${GITHUB_TOKEN:-${GH_TOKEN:-}}" + if [ -n "${token:-}" ]; then + if [ -n "$(command -v curl 2>/dev/null || true)" ]; then + curl -fsSL -H "Authorization: token $token" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/$url" + elif [ -n "$(command -v wget 2>/dev/null || true)" ]; then + wget -q --header="Authorization: token $token" --header="Accept: application/vnd.github.v3+json" "https://api.github.com/$url" -O - + fi + else + download_url "https://api.github.com/$url" - + fi + } + + fn_os() { + local os_name=$(echo ${1:-} | tr 'A-Z' 'a-z') + if [ -z "$os_name" ]; then + os_name=$(uname -s | tr 'A-Z' 'a-z') + fi + case "$os_name" in + *darwin* | *macos* | *apple*) + echo macos + ;; + *windows* | *mingw* | *msys*) + echo windows + ;; + *linux*) + echo linux + ;; + *) + echo unknown + ;; + esac + } + + fn_arch() { + local arch_name=$(echo ${1:-} | tr 'A-Z' 'a-z') + if [ -z "$arch_name" ]; then + arch_name=$(uname -m | tr 'A-Z' 'a-z') + fi + case "$arch_name" in + *arm64* | *aarch64*) + echo ARM64 + ;; + *riscv64*) + echo RV64 + ;; + *x86_64* | *x64*) + echo X64 + ;; + *) + echo unknown + ;; + esac + } + + preinstall_delay() { + [ -z "${CONFIRM:-}" ] || return 0 + echo >&2 + echo "Waiting 10 seconds before proceeding. Press Ctrl+C to cancel installation." >&2 + sleep 10 + } + + get_package_manager_deps() { + case $(fn_os) in + macos) echo "zstd clang-format make hidapi libusb dos2unix git" ;; + windows) echo "base-devel: zstd:p toolchain:p clang:p hidapi:p dos2unix: git: unzip:" ;; + linux) + if ldd --version 2>&1 | grep -qi musl; then + echo >&2 + echo "Sorry, QMK's pre-built toolchains are compiled against glibc and will not run on musl-based Linux distributions." >&2 + echo >&2 + echo "Try using a glibc-based distribution, or use Docker instead:" >&2 + echo " - https://docs.qmk.fm/newbs_getting_started#set-up-your-environment" >&2 + echo " - https://docs.qmk.fm/#/getting_started_docker" >&2 + echo >&2 + echo "If you cannot use a compatible distro, you can try installing the \`qmk\` Python package manually using \`pip\`, most likely requiring a virtual environment:" >&2 + echo " % python3 -m pip install qmk" >&2 + echo >&2 + echo "All other dependencies will need to be installed manually, such as make, git, AVR and ARM toolchains, and associated flashing utilities." >&2 + echo >&2 + echo "**NOTE**: QMK does not provide official support for musl-based environments. Here be dragons, you are on your own." >&2 + signal_execution_failure + return + fi + case $(grep ID /etc/os-release) in + *arch* | *manjaro* | *cachyos*) echo "zstd base-devel clang diffutils wget unzip zip hidapi dos2unix git" ;; + *debian* | *ubuntu*) echo "zstd build-essential clang-format diffutils wget unzip zip libhidapi-hidraw0 dos2unix git" ;; + *fedora*) echo "zstd clang diffutils which gcc git wget unzip zip hidapi dos2unix libusb-devel libusb1-devel libusb-compat-0.1-devel libusb0-devel git epel-release" ;; + *suse*) echo "zstd make gcc binutils clang diffutils wget unzip zip libhidapi-hidraw0 dos2unix git libusb-1_0-devel gzip which" ;; + *gentoo*) echo "zstd sys-apps/diffutils wget unzip zip dev-libs/hidapi dos2unix dev-vcs/git dev-libs/libusb app-arch/gzip which" ;; + *) + echo >&2 + echo "Sorry, we don't recognize your distribution." >&2 + echo >&2 + echo "Proceeding with the installation, however you will need to install at least the following tools manually:" >&2 + echo " - make, git, curl, zstd, unzip, [lib]hidapi" >&2 + echo "Other tools may be required depending on your distribution." >&2 + echo >&2 + echo "Alternatively, if you prefer Docker, try using the docker image instead:" >&2 + echo " - https://docs.qmk.fm/#/getting_started_docker" >&2 + ;; + esac + ;; + *) + # We can only really support macOS, Windows, and Linux at this time due to `uv` requirements. + echo >&2 + echo "Sorry, we don't recognize your OS. Try using a compatible OS instead:" >&2 + echo " - https://docs.qmk.fm/newbs_getting_started#set-up-your-environment" >&2 + echo >&2 + echo "If you cannot use a compatible OS, you can try installing the \`qmk\` Python package manually using \`pip\`, most likely requiring a virtual environment:" >&2 + echo " % python3 -m pip install qmk" >&2 + echo >&2 + echo "All other dependencies will need to be installed manually, such as make, git, AVR and ARM toolchains, and associated flashing utilities." >&2 + echo >&2 + echo "**NOTE**: QMK does not provide official support for your environment. Here be dragons, you are on your own." >&2 + signal_execution_failure + ;; + esac + } + + print_package_manager_deps_and_delay() { + get_package_manager_deps | tr ' ' '\n' | sort | xargs -I'{}' echo " - {}" >&2 + exit_if_execution_failed + preinstall_delay || exit 1 + } + + install_package_manager_deps() { + # Install the necessary packages for the package manager + case $(fn_os) in + macos) + if [ -n "$(command -v brew 2>/dev/null || true)" ]; then + echo "It will also install the following system packages using 'brew':" >&2 + print_package_manager_deps_and_delay + + brew update + + local existing="" + local new="" + for dep in $(get_package_manager_deps); do + if brew list --formula | grep -q "^${dep}\$"; then + existing="${existing:-} $dep" + else + new="${new:-} $dep" + fi + done + + if [ -n "${existing:-}" ]; then + brew upgrade $existing + fi + if [ -n "${new:-}" ]; then + brew install $new + fi + else + echo "Please install 'brew' to continue. See https://brew.sh/ for more information." >&2 + exit 1 + fi + ;; + windows) + echo "It will also install the following packages using 'pacman'/'pacboy':" >&2 + print_package_manager_deps_and_delay + $(nsudo) pacman --needed --noconfirm --disable-download-timeout -S pactoys + $(nsudo) pacboy sync --needed --noconfirm --disable-download-timeout $(get_package_manager_deps) + ;; + linux) + case $(grep ID /etc/os-release) in + *arch* | *manjaro* | *cachyos*) + echo "It will also install the following system packages using 'pacman':" >&2 + print_package_manager_deps_and_delay + $(nsudo) pacman --needed --noconfirm -S $(get_package_manager_deps) + ;; + *debian* | *ubuntu*) + echo "It will also install the following system packages using 'apt':" >&2 + print_package_manager_deps_and_delay + $(nsudo) apt-get update + DEBIAN_FRONTEND=noninteractive \ + $(nsudo) apt-get --quiet --yes install $(get_package_manager_deps) + ;; + *fedora*) + echo "It will also install the following system packages using 'dnf':" >&2 + print_package_manager_deps_and_delay + # Some RHEL-likes need EPEL for hidapi and libusb packages + $(nsudo) dnf -y install epel-release 2>/dev/null || true + # RHEL-likes have naming differences in libusb/hidapi packages; try each individually + $(nsudo) dnf -y install $(get_package_manager_deps | tr ' ' '\n' | grep -v 'epel-release' | grep -v libusb | grep -v hidapi | tr '\n' ' ') + for pkg in $(get_package_manager_deps | tr ' ' '\n' | grep -E 'libusb|hidapi'); do + $(nsudo) dnf -y install "$pkg" 2>/dev/null || true + done + ;; + *opensuse* | *suse*) + echo "It will also install the following system packages using 'zypper':" >&2 + print_package_manager_deps_and_delay + $(nsudo) zypper --non-interactive refresh + $(nsudo) zypper --non-interactive install $(get_package_manager_deps) + ;; + *gentoo*) + echo "It will also install the following system packages using 'emerge':" >&2 + print_package_manager_deps_and_delay + $(nsudo) emerge-webrsync + $(nsudo) emerge --noreplace --ask=n $(get_package_manager_deps | tr ' ' '\n') || signal_execution_failure + exit_if_execution_failed + ;; + *) + print_package_manager_deps_and_delay + echo "Proceeding with the installation, you will need to ensure prerequisites are installed." >&2 + ;; + esac + ;; + *) + print_package_manager_deps_and_delay + ;; + esac + } + + install_uv() { + # Install `uv` (or update as necessary) + download_url https://astral.sh/uv/install.sh - | TMPDIR="$(posix_ish_path "${TMPDIR:-}")" UV_INSTALL_DIR="$(windows_ish_path "${UV_INSTALL_DIR:-}")" sh + } + + setup_paths() { + # Set up the paths for any of the locations `uv` expects + if [ -n "${XDG_BIN_HOME:-}" ]; then + export PATH="$XDG_BIN_HOME:$PATH" + fi + if [ -n "${XDG_DATA_HOME:-}" ]; then + export PATH="$XDG_DATA_HOME/../bin:$PATH" + fi + [ ! -d "$HOME/.local/bin" ] || export PATH="$HOME/.local/bin:$PATH" + + if [ -n "${UV_INSTALL_DIR:-}" ]; then + export PATH="$UV_INSTALL_DIR/bin:$UV_INSTALL_DIR:$PATH" # cater for both "flat" and "hierarchical" installs of `uv` + fi + + if [ -n "${UV_TOOL_BIN_DIR:-}" ]; then + export PATH="$UV_TOOL_BIN_DIR:$PATH" + fi + } + + uv_command() { + if [ "$(fn_os)" = "windows" ]; then + UV_TOOL_DIR="$(windows_ish_path "${UV_TOOL_DIR:-}")" \ + UV_TOOL_BIN_DIR="$(windows_ish_path "${UV_TOOL_BIN_DIR:-}")" \ + uv "$@" + else + uv "$@" + fi + } + + install_qmk_cli() { + # Install the QMK CLI + uv_command tool install --force --with pip --upgrade --python $PYTHON_TARGET_VERSION qmk + + # QMK is installed to... + local qmk_tooldir="$(posix_ish_path "$(uv_command tool dir)/qmk")" + + # Activate the environment + if [ -e "$qmk_tooldir/bin" ]; then + . "$qmk_tooldir/bin/activate" + elif [ -e "$qmk_tooldir/Scripts" ]; then + . "$qmk_tooldir/Scripts/activate" + else + echo "Could not find the QMK environment to activate." >&2 + exit 1 + fi + + # Install the QMK dependencies + uv_command pip install --upgrade -r https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/requirements.txt + uv_command pip install --upgrade -r https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/requirements-dev.txt + + # Deactivate the environment + deactivate + } + + install_toolchains() { + # Get the latest toolchain release from https://github.com/qmk/qmk_toolchains + local latest_toolchains_release=$(github_api_call repos/qmk/qmk_toolchains/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + # Download the specific release asset with a matching keyword + local toolchain_url=$(github_api_call repos/qmk/qmk_toolchains/releases/tags/$latest_toolchains_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep -E "qmk_toolchains-.*$(fn_os)$(fn_arch)") + if [ -z "$toolchain_url" ]; then + echo "No toolchain found for this OS/Arch combination." >&2 + exit 1 + fi + + # Download the toolchain release to the toolchains location + echo "Downloading compiler toolchains..." >&2 + local target_file="$QMK_DISTRIB_DIR/$(basename "$toolchain_url")" + download_url "$toolchain_url" "$target_file" + + # Extract the toolchain + echo "Extracting compiler toolchains to '$QMK_DISTRIB_DIR'..." >&2 + zstdcat "$target_file" | tar xf - -C "$QMK_DISTRIB_DIR" --strip-components=1 + } + + install_flashing_tools() { + local osarchvariant="$(fn_os)$(fn_arch)" + + # Special case for WSL + if [ -n "${WSL_INSTALL:-}" ] || [ -n "${WSL_DISTRO_NAME:-}" ] || [ -f /proc/sys/fs/binfmt_misc/WSLInterop ]; then + osarchvariant="windowsWSL" + fi + + # Get the latest flashing tools release from https://github.com/qmk/qmk_flashutils + local latest_flashutils_release=$(github_api_call repos/qmk/qmk_flashutils/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + # Download the specific release asset with a matching keyword + local flashutils_url=$(github_api_call repos/qmk/qmk_flashutils/releases/tags/$latest_flashutils_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep -E "qmk_flashutils-.*$osarchvariant") + if [ -z "$flashutils_url" ]; then + echo "No flashing tools found for this OS/Arch combination." >&2 + exit 1 + fi + + # Download the flashing tools release to the toolchains location + echo "Downloading flashing tools..." >&2 + local target_file="$QMK_DISTRIB_DIR/$(basename "$flashutils_url")" + download_url "$flashutils_url" "$target_file" + + # Extract the flashing tools + echo "Extracting flashing tools to '$QMK_DISTRIB_DIR'..." >&2 + zstdcat "$target_file" | tar xf - -C "$QMK_DISTRIB_DIR/bin" + # Move the release file to etc + mv "$QMK_DISTRIB_DIR/bin/flashutils_release"* "$QMK_DISTRIB_DIR/etc" + } + + install_linux_udev_rules() { + # Get the latest qmk_udev release + local latest_udev_release=$(github_api_call repos/qmk/qmk_udev/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + if [ -z "$latest_udev_release" ]; then + echo "Could not determine latest qmk_udev release." >&2 + exit 1 + fi + echo "Using qmk_udev release: $latest_udev_release" >&2 + + # Download the udev rules file + local qmk_rules_file="$QMK_DISTRIB_DIR/50-qmk.rules" + local release_base="https://github.com/qmk/qmk_udev/releases/download/$latest_udev_release" + download_url "$release_base/50-qmk.rules" "$qmk_rules_file" + + # Download the architecture-appropriate qmk_id binary + local arch="$(fn_arch)" + local qmk_id_file="$QMK_DISTRIB_DIR/qmk_id" + download_url "$release_base/qmk_id-linux${arch}" "$qmk_id_file" + + # Remove existing QMK udev rules and qmk_id helpers from all standard locations + echo "Removing existing QMK udev rules and helpers..." >&2 + for dir in /etc/udev/rules.d /run/udev/rules.d /usr/lib/udev/rules.d /usr/local/lib/udev/rules.d /lib/udev/rules.d; do + if [ -d "$dir" ]; then + for f in "$dir"/*-qmk.rules; do + [ -e "$f" ] && echo "Removing $f" >&2 && $(nsudo) rm -f "$f" + done + fi + done + for dir in /usr/lib/udev /usr/local/lib/udev /lib/udev; do + [ -e "$dir/qmk_id" ] && echo "Removing $dir/qmk_id" >&2 && $(nsudo) rm -f "$dir/qmk_id" + done + + # Install qmk_id binary + echo "Installing /usr/lib/udev/qmk_id ..." >&2 + $(nsudo) install -d -m 0755 /usr/lib/udev + $(nsudo) install -m 0755 "$qmk_id_file" /usr/lib/udev/qmk_id + + # Install udev rules + echo "Installing /etc/udev/rules.d/50-qmk.rules ..." >&2 + $(nsudo) install -d -m 0755 /etc/udev/rules.d + $(nsudo) install -m 0644 "$qmk_rules_file" /etc/udev/rules.d/50-qmk.rules + + # Clean up downloaded files + rm -f "$qmk_rules_file" "$qmk_id_file" || true + + # Reload udev rules + if command -v udevadm >/dev/null 2>&1; then + echo "Reloading udev rules..." >&2 + $(nsudo) udevadm control --reload-rules || true + $(nsudo) udevadm trigger || true + else + echo "udevadm not found, skipping udev rules reload." >&2 + fi + } + + install_windows_drivers() { + # Get the latest driver installer release from https://github.com/qmk/qmk_driver_installer + local latest_driver_installer_release=$(github_api_call repos/qmk/qmk_driver_installer/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + # Download the specific release asset + local driver_installer_url=$(github_api_call repos/qmk/qmk_driver_installer/releases/tags/$latest_driver_installer_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep '\.exe') + if [ -z "$driver_installer_url" ]; then + echo "No driver installer found." >&2 + exit 1 + fi + # Download the driver installer release to the toolchains location + echo "Downloading driver installer..." >&2 + local target_file="$QMK_DISTRIB_DIR/$(basename "$driver_installer_url")" + download_url "$driver_installer_url" "$target_file" + # Download the drivers list + download_url "https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/util/drivers.txt" "$QMK_DISTRIB_DIR/drivers.txt" + # Execute the driver installer + cd "$QMK_DISTRIB_DIR" + cmd.exe //c "qmk_driver_installer.exe --all --force drivers.txt" + cd - + # Remove the temporary files + rm -f "$QMK_DISTRIB_DIR/qmk_driver_installer.exe" "$QMK_DISTRIB_DIR/drivers.txt" || true + } + + clean_tarballs() { + # Clean up the tarballs + rm -f "$QMK_DISTRIB_DIR"/*.tar.zst || true + } + + windows_ish_path() { + [ -n "$1" ] || return 0 + [ "$(uname -o 2>/dev/null || true)" = "Msys" ] && cygpath -w "$1" || echo "$1" + } + + posix_ish_path() { + [ -n "$1" ] || return 0 + [ "$(uname -o 2>/dev/null || true)" = "Msys" ] && cygpath -u "$1" || echo "$1" + } + + # Set the Python version we want to use with the QMK CLI + export PYTHON_TARGET_VERSION=${PYTHON_TARGET_VERSION:-3.14} + + # Windows/MSYS doesn't like `/tmp` so we need to set a different temporary directory. + # Also set the default `UV_INSTALL_DIR` and `QMK_DISTRIB_DIR` to locations which don't pollute the user's home directory, keeping the installation internal to MSYS. + if [ "$(uname -o 2>/dev/null || true)" = "Msys" ]; then + export TMPDIR="$(posix_ish_path "$TMP")" + export UV_INSTALL_DIR="$(posix_ish_path "${UV_INSTALL_DIR:-/opt/uv}")" + export QMK_DISTRIB_DIR="$(posix_ish_path "${QMK_DISTRIB_DIR:-/opt/qmk}")" + export UV_TOOL_DIR="$(posix_ish_path "${UV_TOOL_DIR:-"$UV_INSTALL_DIR/tools"}")" + export UV_TOOL_BIN_DIR="$(posix_ish_path "$UV_TOOL_DIR/bin")" + fi + + script_parse_args "$@" + + echo "This QMK CLI installation script will install \`uv\`, the QMK CLI, as well as QMK-supplied toolchains and flashing utilities." >&2 + [ -z "${SKIP_PACKAGE_MANAGER:-}" ] || { preinstall_delay || exit 1; } + [ -n "${SKIP_PACKAGE_MANAGER:-}" ] || install_package_manager_deps + [ -n "${SKIP_UV:-}" ] || install_uv + + # Make sure the usual `uv` and other associated directories are on the $PATH + setup_paths + + # Work out where we want to install the distribution and tools now that `uv` is installed + export QMK_DISTRIB_DIR="$(posix_ish_path "${QMK_DISTRIB_DIR:-$(printf 'import platformdirs\nprint(platformdirs.user_data_dir("qmk"))' | uv_command run --quiet --python $PYTHON_TARGET_VERSION --with platformdirs -)}")" + + # Clear out the distrib directory if necessary + if [ -z "${SKIP_CLEAN:-}" ] || [ -z "${SKIP_QMK_TOOLCHAINS:-}" -a -z "${SKIP_QMK_FLASHUTILS:-}" ]; then + if [ -d "$QMK_DISTRIB_DIR" ]; then + echo "Removing old QMK distribution..." >&2 + rm -rf "$QMK_DISTRIB_DIR" + fi + fi + mkdir -p "$QMK_DISTRIB_DIR" + + [ -n "${SKIP_QMK_CLI:-}" ] || install_qmk_cli + [ -n "${SKIP_QMK_TOOLCHAINS:-}" ] || install_toolchains + [ -n "${SKIP_QMK_FLASHUTILS:-}" ] || install_flashing_tools + if [ "$(uname -s 2>/dev/null || true)" = "Linux" ]; then + [ -n "${SKIP_UDEV_RULES:-}" ] || install_linux_udev_rules + fi + if [ "$(uname -o 2>/dev/null || true)" = "Msys" ]; then + [ -n "${SKIP_WINDOWS_DRIVERS:-}" ] || install_windows_drivers + fi + clean_tarballs + + # Notify the user that they may need to restart their shell to get the `qmk` command + echo >&2 + echo "QMK CLI installation complete." >&2 + echo "The QMK CLI has been installed to '$(posix_ish_path "$(dirname "$(command -v qmk)")")'." >&2 + echo "The QMK CLI venv has been created at '$(posix_ish_path "$(uv_command tool dir)/qmk")'." >&2 + echo "Toolchains and flashing utilities have been installed to '$QMK_DISTRIB_DIR'." >&2 + echo >&2 + echo "You may need to restart your shell to gain access to the 'qmk' command." >&2 + echo "Alternatively, add "$(posix_ish_path "$(dirname "$(command -v qmk)")")" to your \$PATH:" >&2 + echo " export PATH=\"$(posix_ish_path "$(dirname "$(command -v qmk)")"):\$PATH\"" >&2 + +} # this ensures the entire script is downloaded # diff --git a/util/install_udev.sh b/util/install_udev.sh new file mode 100755 index 0000000000..f79678b5f1 --- /dev/null +++ b/util/install_udev.sh @@ -0,0 +1,126 @@ +#!/usr/bin/env sh +# Copyright 2025 Nick Brassel (@tzarc) +# SPDX-License-Identifier: GPL-2.0-or-later + +################################################################################ +# Installs the latest QMK udev rules and qmk_id helper from +# https://github.com/qmk/qmk_udev +################################################################################ + +set -e + +nsudo() { + if [ "$(id -u)" -ne 0 ]; then + if [ -n "$(command -v sudo 2>/dev/null || true)" ]; then + echo "sudo" + elif [ -n "$(command -v doas 2>/dev/null || true)" ]; then + echo "doas" + else + echo "Please install 'sudo' or 'doas' to continue." >&2 + exit 1 + fi + fi + true +} + +download_url() { + local url=$1 + local filename=${2:-$(basename "$url")} + if [ -n "$(command -v curl 2>/dev/null || true)" ]; then + curl -LSf -o "$filename" "$url" + elif [ -n "$(command -v wget 2>/dev/null || true)" ]; then + wget "-O$filename" "$url" + else + echo "Please install 'curl' or 'wget' to continue." >&2 + exit 1 + fi +} + +github_api_call() { + local url="$1" + local token="${GITHUB_TOKEN:-${GH_TOKEN:-}}" + if [ -n "${token:-}" ]; then + if [ -n "$(command -v curl 2>/dev/null || true)" ]; then + curl -fsSL -H "Authorization: token $token" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/$url" + elif [ -n "$(command -v wget 2>/dev/null || true)" ]; then + wget -q --header="Authorization: token $token" --header="Accept: application/vnd.github.v3+json" "https://api.github.com/$url" -O - + fi + else + download_url "https://api.github.com/$url" - + fi +} + +fn_arch() { + local arch_name=$(uname -m | tr 'A-Z' 'a-z') + case "$arch_name" in + *arm64* | *aarch64*) + echo ARM64 + ;; + *riscv64*) + echo RV64 + ;; + *x86_64* | *x64*) + echo X64 + ;; + *) + echo "Unsupported architecture: $arch_name" >&2 + exit 1 + ;; + esac +} + +if [ "$(uname -s 2>/dev/null || true)" != "Linux" ]; then + echo "This script is only intended for Linux." >&2 + exit 1 +fi + +# Create a temporary directory for downloads +tmpdir=$(mktemp -d) +trap 'rm -rf "$tmpdir"' EXIT + +# Get the latest qmk_udev release +echo "Fetching latest qmk_udev release..." >&2 +latest_release=$(github_api_call repos/qmk/qmk_udev/releases/latest | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') +if [ -z "$latest_release" ]; then + echo "Could not determine latest qmk_udev release." >&2 + exit 1 +fi +echo "Using qmk_udev release: $latest_release" >&2 + +release_base="https://github.com/qmk/qmk_udev/releases/download/$latest_release" + +# Download the udev rules file and architecture-appropriate qmk_id binary +download_url "$release_base/50-qmk.rules" "$tmpdir/50-qmk.rules" +download_url "$release_base/qmk_id-linux$(fn_arch)" "$tmpdir/qmk_id" + +# Remove existing QMK udev rules and qmk_id helpers from all standard locations +echo "Removing existing QMK udev rules and helpers..." >&2 +for dir in /etc/udev/rules.d /run/udev/rules.d /usr/lib/udev/rules.d /usr/local/lib/udev/rules.d /lib/udev/rules.d; do + if [ -d "$dir" ]; then + for f in "$dir"/*-qmk.rules; do + [ -e "$f" ] && echo "Removing $f" >&2 && $(nsudo) rm -f "$f" + done + fi +done +for dir in /usr/lib/udev /usr/local/lib/udev /lib/udev; do + [ -e "$dir/qmk_id" ] && echo "Removing $dir/qmk_id" >&2 && $(nsudo) rm -f "$dir/qmk_id" +done + +# Install qmk_id binary and udev rules +echo "Installing /usr/lib/udev/qmk_id ..." >&2 +$(nsudo) install -d -m 0755 /usr/lib/udev +$(nsudo) install -m 0755 "$tmpdir/qmk_id" /usr/lib/udev/qmk_id +echo "Installing /etc/udev/rules.d/50-qmk.rules ..." >&2 +$(nsudo) install -d -m 0755 /etc/udev/rules.d +$(nsudo) install -m 0644 "$tmpdir/50-qmk.rules" /etc/udev/rules.d/50-qmk.rules + +# Reload udev rules +if command -v udevadm >/dev/null 2>&1; then + echo "Reloading udev rules..." >&2 + $(nsudo) udevadm control --reload-rules || true + $(nsudo) udevadm trigger || true +else + echo "udevadm not found, skipping udev rules reload." >&2 +fi + +echo "Done." >&2 diff --git a/util/udev/50-qmk.rules b/util/udev/50-qmk.rules deleted file mode 100644 index 338b4fdbe0..0000000000 --- a/util/udev/50-qmk.rules +++ /dev/null @@ -1,89 +0,0 @@ -# Atmel DFU -### ATmega16U2 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess" -### ATmega32U2 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess" -### ATmega16U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess" -### ATmega32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess" -### AT90USB64 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess" -### AT90USB162 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess" -### AT90USB128 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess" - -# Input Club -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess" - -# STM32duino -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess" -# STM32 DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess" - -# BootloadHID -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess" - -# USBAspLoader -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess" - -# USBtinyISP -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess" - -# ModemManager should ignore the following devices -# Atmel SAM-BA (Massdrop) -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" - -# Caterina (Pro Micro) -## pid.codes shared PID -### Keyboardio Atreus 2 Bootloader -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Spark Fun Electronics -### Pro Micro 3V3/8MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### Pro Micro 5V/16MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### LilyPad 3V3/8MHz (and some Pro Micro clones) -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Pololu Electronics -### A-Star 32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Arduino SA -### Leonardo -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### Micro -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## Adafruit Industries LLC -### Feather 32U4 -SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### ItsyBitsy 32U4 3V3/8MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### ItsyBitsy 32U4 5V/16MHz -SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -## dog hunter AG -### Leonardo -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" -### Micro -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1" - -# hid_listen -KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl" - -# hid bootloaders -## QMK HID -SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess" -## PJRC's HalfKay -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess" - -# APM32 DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess" - -# GD32V DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess" - -# WB32 DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess" - -# AT32 DFU -SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", TAG+="uaccess" diff --git a/util/uf2conv.py b/util/uf2conv.py index 67cf92f169..a0507b00b9 100755 --- a/util/uf2conv.py +++ b/util/uf2conv.py @@ -142,9 +142,9 @@ def convert_to_uf2(file_content): return b"".join(outp) class Block: - def __init__(self, addr): + def __init__(self, addr, default_data=0xFF): self.addr = addr - self.bytes = bytearray(256) + self.bytes = bytearray([default_data] * 256) def encode(self, blockno, numblocks): global familyid @@ -210,24 +210,26 @@ def to_str(b): def get_drives(): drives = [] if sys.platform == "win32": - r = subprocess.check_output(["wmic", "PATH", "Win32_LogicalDisk", - "get", "DeviceID,", "VolumeName,", - "FileSystem,", "DriveType"]) - for line in to_str(r).split('\n'): - words = re.split(r'\s+', line) - if len(words) >= 3 and words[1] == "2" and words[2] == "FAT": - drives.append(words[0]) + r = subprocess.check_output([ + "powershell", + "-Command", + '(Get-WmiObject Win32_LogicalDisk -Filter "FileSystem=\'FAT\'").DeviceID' + ]) + drives = [drive.strip() for drive in to_str(r).splitlines()] else: - searchpaths = ["/media"] + searchpaths = ["/mnt", "/media"] if sys.platform == "darwin": searchpaths = ["/Volumes"] elif sys.platform == "linux": - searchpaths += ["/media/" + os.environ["USER"], '/run/media/' + os.environ["USER"]] + searchpaths += ["/media/" + os.environ["USER"], "/run/media/" + os.environ["USER"]] + if "SUDO_USER" in os.environ.keys(): + searchpaths += ["/media/" + os.environ["SUDO_USER"]] + searchpaths += ["/run/media/" + os.environ["SUDO_USER"]] for rootpath in searchpaths: if os.path.isdir(rootpath): for d in os.listdir(rootpath): - if os.path.isdir(rootpath): + if os.path.isdir(os.path.join(rootpath, d)): drives.append(os.path.join(rootpath, d)) diff --git a/util/uf2families.json b/util/uf2families.json index e35bf8d428..cd21783fe3 100644 --- a/util/uf2families.json +++ b/util/uf2families.json @@ -34,6 +34,11 @@ "short_name": "STM32WL", "description": "ST STM32WLxx" }, + { + "id": "0x22e0d6fc", + "short_name": "RTL8710B", + "description": "Realtek AmebaZ RTL8710B" + }, { "id": "0x2abc77ec", "short_name": "LPC55", @@ -49,6 +54,11 @@ "short_name": "GD32F350", "description": "GD32F350" }, + { + "id": "0x3379CFE2", + "short_name": "RTL8720D", + "description": "Realtek AmebaD RTL8720D" + }, { "id": "0x04240bdf", "short_name": "STM32L5", @@ -64,6 +74,11 @@ "short_name": "MIMXRT10XX", "description": "NXP i.MX RT10XX" }, + { + "id": "0x51e903a8", + "short_name": "XR809", + "description": "Xradiotech 809" + }, { "id": "0x53b80f00", "short_name": "STM32F7", @@ -104,11 +119,21 @@ "short_name": "STM32F0", "description": "ST STM32F0xx" }, + { + "id": "0x675a40b0", + "short_name": "BK7231U", + "description": "Beken 7231U/7231T" + }, { "id": "0x68ed2b88", "short_name": "SAMD21", "description": "Microchip (Atmel) SAMD21" }, + { + "id": "0x6a82cc42", + "short_name": "BK7251", + "description": "Beken 7251/7252" + }, { "id": "0x6b846188", "short_name": "STM32F3", @@ -119,6 +144,11 @@ "short_name": "STM32F407", "description": "ST STM32F407" }, + { + "id": "0x4e8f1c5d", + "short_name": "STM32H5", + "description": "ST STM32H5xx" + }, { "id": "0x6db66082", "short_name": "STM32H7", @@ -129,6 +159,11 @@ "short_name": "STM32WB", "description": "ST STM32WBxx" }, + { + "id": "0x7b3ef230", + "short_name": "BK7231N", + "description": "Beken 7231N" + }, { "id": "0x7eab61ed", "short_name": "ESP8266", @@ -144,11 +179,21 @@ "short_name": "STM32F407VG", "description": "ST STM32F407VG" }, + { + "id": "0x9fffd543", + "short_name": "RTL8710A", + "description": "Realtek Ameba1 RTL8710A" + }, { "id": "0xada52840", "short_name": "NRF52840", "description": "Nordic NRF52840" }, + { + "id": "0x820d9a5f", + "short_name": "NRF52820", + "description": "Nordic NRF52820_xxAA" + }, { "id": "0xbfdd4eee", "short_name": "ESP32S2", @@ -194,6 +239,26 @@ "short_name": "ESP32C61", "description": "ESP32-C61" }, + { + "id": "0xb6dd00af", + "short_name": "ESP32H21", + "description": "ESP32-H21" + }, + { + "id": "0x9e0baa8a", + "short_name": "ESP32H4", + "description": "ESP32-H4" + }, + { + "id": "0xde1270b7", + "short_name": "BL602", + "description": "Boufallo 602" + }, + { + "id": "0xe08f7564", + "short_name": "RTL8720C", + "description": "Realtek AmebaZ2 RTL8720C" + }, { "id": "0xe48bff56", "short_name": "RP2040", @@ -293,5 +358,25 @@ "id": "0x7be8976d", "short_name": "RA4M1", "description": "Renesas RA4M1" + }, + { + "id": "0x7410520a", + "short_name": "MAX32690", + "description": "Analog Devices MAX32690" + }, + { + "id": "0xd63f8632", + "short_name": "MAX32650", + "description": "Analog Devices MAX32650/1/2" + }, + { + "id": "0xf0c30d71", + "short_name": "MAX32666", + "description": "Analog Devices MAX32665/6" + }, + { + "id": "0x91d3fd18", + "short_name": "MAX78002", + "description": "Analog Devices MAX78002" } ]