1
0

Compare commits

..

9 Commits

Author SHA1 Message Date
David Allemang
05e0426609 rework mod-tap keys 2025-04-11 15:47:04 -04:00
David Allemang
25c65cbb7b swap eql, pipe. 2024-02-22 13:51:06 -05:00
David Allemang
71546949c3 clean up layers 2024-02-22 12:34:50 -05:00
David Allemang
8f9386395e clean up config and rules.mk 2024-02-22 09:36:07 -05:00
David Allemang
ba8348a81d update versor readme 2024-02-21 13:59:09 -05:00
David Allemang
fde5fef067 remove crkbd layout notes 2024-02-21 13:56:05 -05:00
David Allemang
dad5e774a7 update versor layout 2024-02-21 13:56:05 -05:00
David Allemang
8b77e4ea9f fix nkro and tapping term settigs 2024-02-20 17:07:45 -05:00
David Allemang
a656de0e17 crkbd layout 2024-02-20 14:49:58 -05:00
29368 changed files with 1236165 additions and 998785 deletions

35
.clangd
View File

@@ -1,33 +1,4 @@
CompileFlags: CompileFlags:
Add: Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
[ Remove: [-W*, -mcall-prologues]
-Wno-unknown-attributes, Compiler: clang
-Wno-maybe-uninitialized,
-Wno-unknown-warning-option,
-Wno-pointer-to-int-cast,
-Wno-int-to-void-pointer-cast,
-DPROGMEM=,
]
Remove:
[
-W*,
-mmcu=*,
-mcpu=*,
-mfpu=*,
-mfloat-abi=*,
-mno-unaligned-access,
-mno-thumb-interwork,
-mcall-prologues,
-D__has_include*,
-mlra,
]
Compiler: clang
Diagnostics:
UnusedIncludes: None
Suppress:
[
asm_invalid_output_constraint,
asm_invalid_input_constraint,
invalid_asm_value_for_constraint,
anyx86_interrupt_attribute,
]

View File

@@ -4,40 +4,39 @@
root = true root = true
[*] [*]
end_of_line = lf
indent_style = space indent_style = space
indent_size = 4 indent_size = 4
# We recommend you to keep these unchanged
charset = utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true
insert_final_newline = true insert_final_newline = true
# To match GitHub Actions formatting
[*.{yaml,yml}]
indent_size = 2
[*.md] [*.md]
trim_trailing_whitespace = false trim_trailing_whitespace = false
indent_size = 4
[{Makefile,*.mk}] [{qmk,*.py}]
charset = utf-8
max_line_length = 200
# Make these match what we have in .gitattributes
[*.mk]
end_of_line = lf
indent_style = tab indent_style = tab
# Don't override anything in `lib/`... [Makefile]
[lib/**]
indent_style = unset
indent_size = unset
tab_width = unset
end_of_line = unset
charset = unset
spelling_language = unset
trim_trailing_whitespace = unset
insert_final_newline = unset
# ...except QMK's `lib/python`.
[{*.py,lib/python/**.py}]
end_of_line = lf end_of_line = lf
indent_style = space indent_style = tab
indent_size = 4
charset = utf-8 [*.sh]
trim_trailing_whitespace = true end_of_line = lf
insert_final_newline = true
max_line_length = 200 # The gitattributes file will handle the line endings conversion properly according to the operating system settings for other files
# We don't have gitattributes properly for these
# So if the user have for example core.autocrlf set to true
# the line endings would be wrong.
[lib/**]
end_of_line = unset

View File

@@ -1,7 +1,7 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: QMK Discord - name: QMK Discord
url: https://discord.gg/qmk url: https://discord.gg/Uq7gcHh
about: Ask questions, discuss issues and features. Chill. about: Ask questions, discuss issues and features. Chill.
- name: OLKB Subreddit - name: OLKB Subreddit
url: https://www.reddit.com/r/olkb url: https://www.reddit.com/r/olkb

View File

@@ -1,5 +1,6 @@
<!--- Provide a general summary of your changes in the title above. --> <!--- Provide a general summary of your changes in the title above. -->
<!--- This template is entirely optional and can be removed, but is here to help both you and us. -->
<!--- Anything on lines wrapped in comments like these will not show up in the final text. --> <!--- Anything on lines wrapped in comments like these will not show up in the final text. -->
## Description ## Description
@@ -14,7 +15,7 @@
- [ ] New feature - [ ] New feature
- [ ] Enhancement/optimization - [ ] Enhancement/optimization
- [ ] Keyboard (addition or update) - [ ] Keyboard (addition or update)
- [ ] Keymap/layout (addition or update) - [ ] Keymap/layout/userspace (addition or update)
- [ ] Documentation - [ ] Documentation
## Issues Fixed or Closed by This PR ## Issues Fixed or Closed by This PR

View File

@@ -1,430 +0,0 @@
---
applyTo: "**"
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.
## 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)
### QMK Best Practices
- **Include Guards**: Use `#pragma once` instead of `#ifndef` guards in headers
- **Abstractions Required**: No low-level GPIO/I2C/SPI functions
- Must use QMK abstractions (flag direct hardware access)
- **Timing Functions**:
- Use `wait_ms()` instead of `_delay_ms()`
- Remove `#include <util/delay.h>`
- Use `timer_read()`, `timer_read32()` from `timer.h`
- **New Abstractions**: If proposing new abstraction, suggest:
1. Prototype in own keyboard first
2. Discuss with QMK Collaborators on Discord
3. Refactor as separate core change
4. Remove the keyboard-specific implementation from board
---
## Keymap PR Reviews
**Scope**: These rules apply to files within `keyboards/*/keymaps/*` subdirectories.
### Note on Personal Keymaps
- **Policy Change**: Personal keymap submissions no longer accepted
- **Permitted**: Vendor-specific keymaps only
- Naming convention: `default_${vendor}` (e.g., `default_clueboard`)
- Can be more feature-rich than stock `default` keymaps
### Keymap Code Standards
- **Includes**: `#include QMK_KEYBOARD_H` preferred over specific board files
- **Enums**: Prefer layer enums to `#define`s
- **Custom Keycodes**: First entry must be `QK_USER`
- **Formatting**: Check spacing alignment on commas and keycodes (spaces, not tabs)
- **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)
- `<keyboard>.c` and `<keyboard>.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
- **Data-Driven Configuration**: Encourage maximum use of `info.json` and `keyboard.json` schema features
- **Schema Validation**: All `info.json` and `keyboard.json` files must validate against `data/schemas/keyboard.jsonschema`
- Use QMK CLI: `qmk lint -kb <keyboard_name>` to validate
- Schema defines required fields, data types, and valid values
- Check for schema validation errors before submitting PR
- **Mandatory Elements**:
- Valid URL
- Valid maintainer
- Valid USB VID/PID and device version
- Displays correctly in Configurator (Ctrl+Shift+I to preview)
- `layout` definitions include matrix positions
- Standard layout definitions where applicable
- Community Layout macro names when applicable
- Microcontroller and bootloader specified
- Diode direction (if not using direct pins)
- **Layout Naming**:
- Single layout: Use `LAYOUT` or community layout name
- Multiple layouts: Include `LAYOUT_all` + alternate names
- Prefer community layout names (e.g., `LAYOUT_tkl_ansi`, `LAYOUT_ortho_4x4`)
- **Configuration in info.json or keyboard.json** (when applicable):
- Direct pin configuration
- Backlight, Split keyboard, Encoder, Bootmagic configs
- LED Indicator, RGB Light, RGB Matrix configs
- **Format**: Run `qmk format-json -i` before submitting
### USB VID/PID Uniqueness
VID+PID combination must be unique across all keyboards. Individual VID or PID values can be reused with different partners.
**Validation Steps:**
1. Extract VID and PID from keyboard.json/info.json in the PR
2. Search for existing usage: `grep -r '"vid".*"0xVVVV"' keyboards/ --include="*.json" | grep -l '"pid".*"0xPPPP"'`
3. If results found: Check if BOTH VID AND PID match in same file
- Both match = **COLLISION** - request different PID
- Only one matches = **OK** - different keyboards can share individual values
4. For keyboard variants/revisions under same keyboard folder:
- Different PID recommended for functionally different variants
- Same PID acceptable if revisions only differ in hardware routing/pin assignments
**Quick Reference:**
- Same PID + Different VID = Valid
- Same VID + Different PID = Valid
- Same VID + Same PID = Invalid
**Review Response:**
For collision:
```
VID+PID collision: 0xVVVV:0xPPPP already used by keyboards/[path]/file.json
+Please assign a different PID. VID can remain the same.
```
For uniqueness confirmed:
```
VID+PID validation: 0xVVVV:0xPPPP is unique (no collisions found)
```
### 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
- One-off prototypes will be questioned
- Open-source should link to files
- **Reset Instructions**: Clear bootloader mode instructions
- **Images Required**:
- Keyboard and PCB photos preferred
- Must be hosted externally (imgur, etc.)
- Direct image links required (not preview pages)
- Example: `https://i.imgur.com/vqgE7Ok.jpg` not `https://imgur.com/vqgE7Ok`
### rules.mk Standards
- **Removed Items**:
- `MIDI_ENABLE`, `FAUXCLICKY_ENABLE`, `HD44780_ENABLE`
- Size comments like `(-/+size)`
- Alternate bootloader lists if one specified
- MCU parameter re-definitions matching defaults in `mcu_selection.mk`
- **Comment Updates**: Change bootloader comments to generic
- **Forbidden Features at Keyboard Level** (these belong in keymap-level `rules.mk` only):
- `COMBO_ENABLE`
- `ENCODER_MAP_ENABLE`
### config.h Standards (Keyboard Level)
- **Prohibited**:
- `#define DESCRIPTION`
- Magic Key Options, MIDI Options, HD44780 configuration
- User preference `#define`s (belong in keymap)
- Re-defining default values (`DEBOUNCE`, RGB settings)
- Copy/pasted comment blocks explaining features
- Commented-out unused defines
- `#include "config_common.h"`
- `#define MATRIX_ROWS/COLS` (unless custom matrix)
- **Minimal Code**: Only critical board boot code required
- **No Vial**: Vial-related files/changes not accepted
### Keyboard Implementation Files
#### `<keyboard>.c`
- **Remove Empty Functions**: Delete empty or commented-out weak-defined functions
- `xxxx_xxxx_kb()`, `xxxx_xxxx_user()` implementations
- **Migration**: `matrix_init_board()` → `keyboard_pre_init_kb()`
- **Custom Matrix**: Use `lite` variant when possible for standard debounce
- `CUSTOM_MATRIX = lite` preferred
- Full custom matrix (`yes`) requires justification
- **LED Indicators**: Prefer Configuration Options over custom `led_update_*()` implementations
- **Hardware Configuration**: Basic functionality for OLED, encoders, etc. at keyboard level
#### `<keyboard>.h`
- **Include**: `#include "quantum.h"` at top
- **Layout Macros**: Move to `info.json` or `keyboard.json` (no longer in header)
### Default Keymap Standards
**Scope**: These rules specifically apply to files within `keyboards/*/keymaps/default/` directories.
- **Pristine Requirement**: Bare minimum clean slate
- No custom keycodes
- No advanced features (non-exhaustive list of examples: tap dance, macros)
- Basic mod taps and home row mods acceptable when necessary
- Standard layouts preferred -- see examples in `layouts/default/` and `layouts/community/`
- **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
- **Additional Keymaps**: Example/bells-and-whistles keymaps acceptable in same PR (separate from default)
### Prohibited Files
- **No VIA JSON**: Belongs in [VIA Keyboard Repo](https://github.com/the-via/keyboards)
- **No KLE JSON**: Not used within QMK
- **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)
- Multi-board code is candidate for core refactoring when intended for use by multiple vendors
### Wireless Keyboards
- **Policy**: Wireless/Bluetooth PRs rejected without complete wireless code
- Wireless code may not include anything resembling precompiled data such as `*.a` files or other libraries
- Firmware blobs are not permitted in raw form or as compiled C-style arrays either.
- GPL2+ license requires full source disclosure
- Historically abused for VIA compatibility without releasing sources
- PRs without wireless capability will be held indefinitely
- Existing merged wireless boards from same vendor held until sources provided
### ChibiOS-Specific Requirements
- **Board Definitions**: Strong preference for existing ChibiOS board definitions
- Use equivalent Nucleo boards when possible
- Example: STM32L082KZ can use `BOARD = ST_NUCLEO64_L073RZ`
- QMK is eliminating custom board definitions due to maintenance burden
- **New Board Definitions**:
- Must NOT be embedded in keyboard PR
- Submit as separate Core PR
- `board.c` must have standard `__early_init()` and empty `boardInit()`
- Migrate code intended for `__early_init()` → keyboard-local `early_hardware_init_pre/post()`
- Migrate code intended for `boardInit()` → keyboard-local `board_init()`
---
## Core PR Reviews
### Targeting and Scope
- **Branch**: All core PRs must target `develop` branch
- **Single Focus**: Smallest set of changes per PR
- PRs with multiple areas will be asked to split
- Keyboard/keymap changes only if affecting base builds or default-like keymaps
- Keymap modifications (non-default) should be followup PR after core merge
- Large refactoring PRs affecting other keymaps raised separately
### Testing Requirements
- **New Hardware Support**: Requires test keyboard under `keyboards/handwired/onekey`
- New MCUs: Add child keyboard targeting new MCU for build verification
- New hardware (displays, matrix, peripherals): Provide associated keymap
- Exception: If existing keymap can leverage functionality (consult Collaborators)
- **Callbacks**: New `_kb`/`_user` callbacks must return `bool` for user override
- **Unit Tests**: Strongly recommended, may be required
- Critical code areas (keycode pipeline) will require tests
- Boost confidence in current and future correctness
### Code Quality
- **Subjective Review**: Other requirements at QMK Collaborators' discretion
- **Documentation**: Core changes should be well-documented
---
## Automated Review Checklist
When reviewing PRs, check the following systematically:
### File Changes Review
1. **License headers** on all C/H files (GPL2+ preferred, others must be GPL2+ compatible, SPDX format preferred)
2. **File naming** lowercase (flag exceptions needing justification)
3. **Include guards** use `#pragma once`
4. **No low-level hardware access** (GPIO, I2C, SPI direct register writes)
5. **Timing abstractions** (`wait_ms()`, `timer_read()` usage)
### info.json and keyboard.json Validation
1. **Schema Compliance**: `keyboard.json` and `info.json` files validate against `data/schemas/keyboard.jsonschema`
- Both files are identical syntax, however the `keyboard.json` dictates a buildable target, `info.json` does not
- Run `qmk lint -kb <keyboard>` to check schema validation
- Check for proper data types (strings, integers, arrays, objects)
- Verify required fields are present
- Ensure enum values match allowed options in schema
2. All mandatory fields present and valid
3. `qmk format-json -i` has been run (formats and validates)
4. Layout macros moved from headers
5. Community layout names used where applicable
### rules.mk Cleanup
1. Deprecated features removed
2. No size comments
3. No keymap-only features at keyboard level
4. No redundant MCU parameter definitions
### config.h Cleanup
1. No `DESCRIPTION`, `config_common.h`, or prohibited includes
2. No default value re-definitions
3. No commented-out defines or feature documentation blocks
4. No user preference defines at keyboard level
### Keymap Quality
1. Default keymaps are pristine (no custom keycodes/advanced features)
2. No `QMKBEST`/`QMKURL` macros
3. Encoder map feature used instead of `encoder_update_user()`
4. Tri Layer feature used for multi-layer access
5. No VIA enabled in default keymap
### Documentation
1. readme.md follows template
2. Flash command present with `:flash`
3. Reset instructions clear
4. External image hosting (direct links)
5. Valid hardware availability link
### Code Organization
1. Empty weak-defined functions removed from `<keyboard>.c`
2. Proper migration of init functions
3. No cross-vendor source files
4. No VIA/KLE JSON files
### Branch and Scope
1. Not submitted from submitter's own `master` branch (use feature branches)
2. PR is focused on single change
3. Targets correct branch:
- `master` for new keyboard additions
- `develop` for keyboard updates/refactors/moves and core changes
4. No merge conflicts
---
## 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`
- **Core changes** 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: DESCRIPTION, default value re-definitions, etc.]
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 <keyboard_name>\`
```
### For schema validation errors:
```
❌ Schema validation failed for info.json or keyboard.json:
- [list specific validation errors from schema]
- Check `data/schemas/keyboard.jsonschema` for valid field definitions
- Common issues:
- Invalid data types (e.g., string instead of integer)
- Missing required fields
- Invalid enum values
- Incorrectly formatted pin definitions
```
### For non-pristine default keymap:
```
⚠️ Default keymap should be pristine (clean slate for users):
- Remove: [custom keycodes/tap dance/macros/etc.]
- Keep it minimal with standard layouts where possible
Consider moving advanced features to a separate example keymap.
```
---
## Notes for GitHub Copilot
- 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
- **Acknowledge trade-offs**: Some guidelines have valid exceptions
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.

86
.github/labeler.yml vendored
View File

@@ -1,60 +1,46 @@
core: core:
- changed-files: - quantum/**/*
- any-glob-to-any-file: - tmk_core/**/*
- quantum/** - drivers/**/*
- tmk_core/** - tests/**/*
- drivers/** - util/**/*
- tests/** - platforms/**/*
- util/** - builddefs/**/*
- platforms/** - Makefile
- builddefs/*.mk - '*.mk'
- Makefile
- '*.mk'
dependencies: dependencies:
- changed-files: - any:
- all-globs-to-any-file: - 'lib/**/*'
- lib/** - '!lib/python/**/*'
- '!lib/python/**'
keyboard: keyboard:
- changed-files: - any:
- all-globs-to-any-file: - 'keyboards/**/*'
- keyboards/** - '!keyboards/**/keymaps/**/*'
- '!keyboards/**/keymaps/**'
keymap: keymap:
- changed-files: - users/**/*
- any-glob-to-any-file: - layouts/**/*
- users/** - keyboards/**/keymaps/**/*
- layouts/**
- keyboards/**/keymaps/**
via: via:
- changed-files: - keyboards/**/keymaps/via/*
- any-glob-to-any-file:
- keyboards/**/keymaps/via/*
cli: cli:
- changed-files: - requirements.txt
- any-glob-to-any-file: - lib/python/**/*
- requirements.txt
- lib/python/**
python: python:
- changed-files: - '**/*.py'
- any-glob-to-any-file:
- '**/*.py'
documentation: documentation:
- changed-files: - docs/**/*
- any-glob-to-any-file: translation:
- docs/** - docs/fr-fr/**/*
- builddefs/docsgen/** - docs/es/**/*
- docs/ja/**/*
- docs/he-il/**/*
- docs/pt-br/**/*
- docs/zh-cn/**/*
- docs/de/**/*
- docs/ru-ru/**/*
CI: CI:
- changed-files: - .github/**/*
- any-glob-to-any-file:
- .github/**
dd: dd:
- changed-files: - data/constants/**/*
- any-glob-to-any-file: - data/mappings/**/*
- data/constants/** - data/schemas/**/*
- data/mappings/**
- data/schemas/**
community_module:
- changed-files:
- any-glob-to-any-file:
- modules/**

View File

@@ -25,7 +25,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware' if: github.repository == 'qmk/qmk_firmware'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
persist-credentials: false persist-credentials: false

View File

@@ -4,7 +4,7 @@ permissions: {}
on: on:
schedule: schedule:
- cron: "*/30 * * * *" - cron: "*/5 * * * *"
jobs: jobs:
automatic_approve: automatic_approve:
@@ -13,8 +13,8 @@ jobs:
if: github.repository == 'qmk/qmk_firmware' if: github.repository == 'qmk/qmk_firmware'
steps: steps:
- uses: zvecr/automatic-approve-action@safe_files - uses: mheap/automatic-approve-action@v1
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}
workflows: "labeler.yml,lint.yml,docs.yml" workflows: "format.yml,lint.yml,unit_test.yml"
safe_files: "keyboards/,docs/" dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"

View File

@@ -15,7 +15,6 @@ on:
- quantum/**/* - quantum/**/*
- tests/**/* - tests/**/*
- tmk_core/**/* - tmk_core/**/*
- lib/python/**/*
- util/**/* - util/**/*
- Makefile - Makefile
- '*.mk' - '*.mk'
@@ -28,7 +27,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware' if: github.repository == 'qmk/qmk_firmware'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0

View File

@@ -1,289 +0,0 @@
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:20.04
- ubuntu:22.04
- ubuntu:24.04
# RHEL/CentOS/Fedora based
- fedora:41
- fedora:42
- fedora:43
- rockylinux:8
- rockylinux:9
- rockylinux/rockylinux:10
- almalinux:8
- almalinux:9
- almalinux:10
# OpenSUSE based (we skip Tumbleweed as it has issues with package versions between pattern installs and other dependencies preinstalled into the base container)
- 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 # 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

View File

@@ -1,138 +0,0 @@
name: CI Build Major Branch
permissions:
contents: read
actions: write
on:
push:
branches: [master, develop, xap]
workflow_dispatch:
inputs:
branch:
type: choice
description: "Branch to build"
options: [master, develop, xap]
env:
# https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits
# We've decreased it from 20 to 15 to allow for other GHA to run unimpeded
CONCURRENT_JOBS: 15
# Ensure we only have one build running at a time, cancelling any active builds if a new commit is pushed to the respective branch
concurrency:
group: ci_build-${{ github.event.inputs.branch || github.ref_name }}
cancel-in-progress: true
jobs:
determine_concurrency:
name: "Determine concurrency"
if: github.repository == 'qmk/qmk_firmware'
runs-on: ubuntu-latest
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: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
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: |
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:
name: "Compile keymap ${{ matrix.keymap }}"
needs: determine_concurrency
strategy:
fail-fast: false
matrix:
keymap: ${{ fromJson(needs.determine_concurrency.outputs.keymaps) }}
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
with:
branch: ${{ inputs.branch || github.ref_name }}
keymap: ${{ matrix.keymap }}
slice_length: ${{ needs.determine_concurrency.outputs.slice_length }}
secrets: inherit
rollup_tasks:
name: "Consolidation"
needs: build_targets
runs-on: ubuntu-latest
steps:
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Download firmwares
uses: actions/download-artifact@v8
with:
pattern: firmware-*
path: .
merge-multiple: true
- name: Generate index page
run: |
python3 -m pip install -r ./util/ci/requirements.txt
./util/ci/index_generator.py > index.html
./util/ci/firmware_list_generator.py > firmware_list.json
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: .
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: .
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
- name: Fail build if needed
run: |
# Exit with failure if the compilation stage failed
[ ! -e .failed ] || exit 1

View File

@@ -1,211 +0,0 @@
name: CI Build Major Branch Keymap
permissions:
contents: read
actions: write
on:
workflow_call:
inputs:
branch:
type: string
required: true
keymap:
type: string
required: true
slice_length:
type: string
required: true
jobs:
generate_targets:
name: "Generate targets (${{ inputs.keymap }})"
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
outputs:
targets: ${{ steps.generate_targets.outputs.targets }}
steps:
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
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 --random-source=<(openssl enc -aes-256-ctr -pass pass:qmk -nosalt </dev/zero 2>/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
echo -n '"targets":"'
echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n
echo -n '"}'
done
echo -n '}'
} | sed -e 's@\n@@g' > targets.json
# Output the target keys as a variable
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
- name: Upload targets json
uses: actions/upload-artifact@v7
with:
name: targets-${{ inputs.keymap }}
path: targets.json
build_targets:
name: "Compile ${{ matrix.target }} (${{ inputs.keymap }})"
needs: generate_targets
runs-on: ubuntu-latest
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: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
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@v8
with:
name: targets-${{ inputs.keymap }}
path: .
- 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: |
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@v7
with:
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*
.failed
- name: Fail build if any group failed
run: |
# Exit with failure if the compilation stage failed
[ ! -f .failed ] || exit 1
repack_firmware:
if: always()
name: "Repack artifacts"
needs: build_targets
runs-on: ubuntu-latest
steps:
- name: Checkout QMK Firmware
uses: actions/checkout@v6
- name: Download firmwares
uses: actions/download-artifact@v8
with:
pattern: firmware-${{ inputs.keymap }}-*
path: .
merge-multiple: true
- name: Upload all firmwares
uses: actions/upload-artifact@v7
with:
name: firmware-${{ inputs.keymap }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*
.failed
- name: Generate output logs
run: |
# Generate the step summary markdown
./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
- name: Delete temporary build artifacts
uses: geekyeggo/delete-artifact@v6
with:
name: |
firmware-${{ inputs.keymap }}-*
targets-${{ inputs.keymap }}
- name: 'CI Discord Notification'
if: always() && !cancelled()
working-directory: util/ci/
env:
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
run: |
python3 -m pip install -r requirements.txt
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --sha $(git rev-parse HEAD) --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

74
.github/workflows/ci_builds.yml vendored Normal file
View File

@@ -0,0 +1,74 @@
name: CI Builds
permissions:
contents: read
on:
push:
branches: [master, develop]
workflow_dispatch:
inputs:
branch:
type: choice
description: 'Branch to build'
options: [master, develop]
concurrency: ci_build-${{ github.event.inputs.branch || github.ref_name }}
jobs:
ci_builds:
if: github.repository == 'qmk/qmk_firmware'
name: "CI Build"
runs-on: self-hosted
timeout-minutes: 1380
strategy:
fail-fast: false
matrix:
keymap: [default, via]
container: ghcr.io/qmk/qmk_cli
steps:
- name: Disable safe.directory check
run : git config --global --add safe.directory '*'
- uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{ github.event.inputs.branch || github.ref }}
- name: Install dependencies
run: pip3 install -r requirements.txt
- name: Run `qmk mass-compile` (keymap ${{ matrix.keymap }})
run: |
export NCPUS=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null)
qmk mass-compile -t -j $NCPUS -km ${{ matrix.keymap }} -e DUMP_CI_METADATA=yes || touch .failed
# Generate the step summary markdown
./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
# Exit with failure if the compilation stage failed
[ ! -f .failed ] || exit 1
- name: 'Upload artifacts'
uses: actions/upload-artifact@v4
if: always()
with:
name: artifacts-${{ github.event.inputs.branch || github.ref_name }}-${{ matrix.keymap }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*
- name: 'CI Discord Notification'
if: always()
working-directory: util/ci/
env:
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
run: |
python3 -m pip install -r requirements.txt
python3 ./discord-results.py --branch ${{ github.event.inputs.branch || github.ref_name }} --keymap ${{ matrix.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@@ -24,12 +24,11 @@ jobs:
- name: Disable safe.directory check - name: Disable safe.directory check
run : git config --global --add safe.directory '*' run : git config --global --add safe.directory '*'
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
- name: Install dependencies - name: Install dependencies
run: pip3 install -r requirements-dev.txt run: pip3 install -r requirements-dev.txt
- name: Run tests - name: Run tests
run: qmk pytest run: qmk pytest

View File

@@ -1,34 +0,0 @@
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',
})

View File

@@ -15,7 +15,7 @@ jobs:
if: github.repository == 'qmk/qmk_firmware' if: github.repository == 'qmk/qmk_firmware'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0 fetch-depth: 0

View File

@@ -8,59 +8,39 @@ on:
branches: branches:
- master - master
paths: paths:
- 'builddefs/docsgen/**'
- 'tmk_core/**' - 'tmk_core/**'
- 'quantum/**' - 'quantum/**'
- 'platforms/**' - 'platforms/**'
- 'docs/**' - 'docs/**'
- '.github/workflows/docs.yml' - '.github/workflows/docs.yml'
pull_request:
paths:
- 'builddefs/docsgen/**'
- 'docs/**'
- '.github/workflows/docs.yml'
defaults:
run:
shell: bash
jobs: jobs:
generate: generate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli container: ghcr.io/qmk/qmk_cli
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
- name: Install dependencies - name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Install nvm
run: | run: |
touch $HOME/.bashrc apt-get update && apt-get install -y rsync nodejs npm doxygen
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash npm install -g moxygen
- name: Install node
run: |
source $HOME/.bashrc
nvm install 20
nvm use 20
corepack enable
- name: Build docs - name: Build docs
run: | run: |
source $HOME/.bashrc
nvm use 20
qmk --verbose generate-docs qmk --verbose generate-docs
- name: Deploy - name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} uses: JamesIves/github-pages-deploy-action@v4.5.0
uses: JamesIves/github-pages-deploy-action@v4.8.0
with: with:
token: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages BASE_BRANCH: master
folder: .build/docs BRANCH: gh-pages
git-config-name: QMK Bot FOLDER: .build/docs
git-config-email: hello@qmk.fm GIT_CONFIG_EMAIL: hello@qmk.fm

View File

@@ -21,7 +21,7 @@ jobs:
- riot - riot
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}
fetch-depth: 0 fetch-depth: 0

View File

@@ -10,7 +10,6 @@ on:
- 'lib/arm_atsam/**' - 'lib/arm_atsam/**'
- 'lib/lib8tion/**' - 'lib/lib8tion/**'
- 'lib/python/**' - 'lib/python/**'
- 'modules/**'
- 'platforms/**' - 'platforms/**'
- 'quantum/**' - 'quantum/**'
- 'tests/**' - 'tests/**'
@@ -26,7 +25,7 @@ jobs:
- name: Disable safe.directory check - name: Disable safe.directory check
run : git config --global --add safe.directory '*' run : git config --global --add safe.directory '*'
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
@@ -36,9 +35,7 @@ jobs:
- name: Get changed files - name: Get changed files
id: file_changes id: file_changes
uses: tj-actions/changed-files@v47 uses: tj-actions/changed-files@v42
with:
use_rest_api: true
- name: Run qmk formatters - name: Run qmk formatters
shell: 'bash {0}' shell: 'bash {0}'

View File

@@ -19,7 +19,7 @@ jobs:
- name: Disable safe.directory check - name: Disable safe.directory check
run : git config --global --add safe.directory '*' run : git config --global --add safe.directory '*'
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
@@ -39,7 +39,7 @@ jobs:
qmk format-text -a qmk format-text -a
git diff git diff
- uses: rlespinasse/github-slug-action@v5 - uses: rlespinasse/github-slug-action@v3.x
- name: Become QMK Bot - name: Become QMK Bot
run: | run: |
@@ -47,7 +47,7 @@ jobs:
git config user.email 'hello@qmk.fm' git config user.email 'hello@qmk.fm'
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v8 uses: peter-evans/create-pull-request@v5
if: ${{ github.repository == 'qmk/qmk_firmware'}} if: ${{ github.repository == 'qmk/qmk_firmware'}}
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@@ -1,13 +1,18 @@
name: "Pull Request Labeler" name: "Pull Request Labeler"
permissions:
contents: read
pull-requests: write
on: on:
- pull_request_target pull_request_target:
types: [opened, synchronize, reopened, ready_for_review, locked]
jobs: jobs:
triage: triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/labeler@v6 - uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: '.github/labeler.yml'

View File

@@ -18,7 +18,7 @@ jobs:
- name: Disable safe.directory check - name: Disable safe.directory check
run : git config --global --add safe.directory '*' run : git config --global --add safe.directory '*'
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
@@ -27,11 +27,9 @@ jobs:
- name: Get changed files - name: Get changed files
id: file_changes id: file_changes
uses: tj-actions/changed-files@v47 uses: tj-actions/changed-files@v42
with:
use_rest_api: true
- name: Print git info - name: Print info
run: | run: |
git rev-parse --short HEAD git rev-parse --short HEAD
echo ${{ github.event.pull_request.base.sha }} echo ${{ github.event.pull_request.base.sha }}
@@ -57,19 +55,17 @@ jobs:
if [[ $KEYMAP_ONLY -gt 0 ]]; then if [[ $KEYMAP_ONLY -gt 0 ]]; then
echo "linting ${KB}" echo "linting ${KB}"
qmk lint --strict --keyboard ${KB} && qmk info -l --keyboard ${KB} qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
exit_code=$(($exit_code + $?)) exit_code=$(($exit_code + $?))
fi fi
done done
qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true qmk format-text ${{ steps.file_changes.outputs.all_changed_files}} || true
for file in ${{ steps.file_changes.outputs.all_changed_files}}; do for file in ${{ steps.file_changes.outputs.all_changed_files}}; do
if [[ -f $file ]]; then if ! git diff --quiet $file; then
if ! git diff --quiet $file; then echo "File '${file}' Requires Formatting"
echo "File '${file}' Requires Formatting" echo "::error file=${file}::Requires Formatting"
echo "::error file=${file}::Requires Formatting" exit_code=$(($exit_code + 1))
exit_code=$(($exit_code + 1))
fi
fi fi
done done
@@ -78,21 +74,10 @@ jobs:
fi fi
exit $exit_code exit $exit_code
- name: Reset git repo - name: Verify keyboard aliases
if: always() if: always()
shell: 'bash {0}' shell: 'bash {0}'
run: | run: |
git reset --hard git reset --hard
git clean -xfd 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 qmk ci-validate-aliases

View File

@@ -8,9 +8,6 @@ on:
paths: paths:
- 'data/constants/**' - 'data/constants/**'
- 'lib/python/**' - 'lib/python/**'
- 'quantum/rgblight/rgblight_breathe_table.h'
- 'quantum/keycodes.h'
- 'quantum/keymap_extras/**'
jobs: jobs:
regen: regen:
@@ -22,10 +19,7 @@ jobs:
- name: Disable safe.directory check - name: Disable safe.directory check
run : git config --global --add safe.directory '*' run : git config --global --add safe.directory '*'
- uses: actions/checkout@v6 - uses: actions/checkout@v4
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run qmk generators - name: Run qmk generators
run: | run: |

View File

@@ -19,17 +19,14 @@ jobs:
- name: Disable safe.directory check - name: Disable safe.directory check
run : git config --global --add safe.directory '*' run : git config --global --add safe.directory '*'
- uses: actions/checkout@v6 - uses: actions/checkout@v4
- name: Install dependencies
run: pip3 install -r requirements-dev.txt
- name: Run qmk generators - name: Run qmk generators
run: | run: |
util/regen.sh util/regen.sh
git diff git diff
- uses: rlespinasse/github-slug-action@v5 - uses: rlespinasse/github-slug-action@v3.x
- name: Become QMK Bot - name: Become QMK Bot
run: | run: |
@@ -37,7 +34,7 @@ jobs:
git config user.email 'hello@qmk.fm' git config user.email 'hello@qmk.fm'
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v8 uses: peter-evans/create-pull-request@v5
if: ${{ github.repository == 'qmk/qmk_firmware'}} if: ${{ github.repository == 'qmk/qmk_firmware'}}
with: with:
token: ${{ secrets.QMK_BOT_TOKEN }} token: ${{ secrets.QMK_BOT_TOKEN }}

View File

@@ -45,7 +45,7 @@ jobs:
stale-pr-label: stale stale-pr-label: stale
days-before-pr-stale: 45 days-before-pr-stale: 45
days-before-pr-close: 30 days-before-pr-close: 30
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold
stale-pr-message: > stale-pr-message: >
Thank you for your contribution! Thank you for your contribution!

View File

@@ -11,7 +11,6 @@ on:
pull_request: pull_request:
paths: paths:
- 'builddefs/**' - 'builddefs/**'
- '!builddefs/docsgen/**'
- 'quantum/**' - 'quantum/**'
- 'platforms/**' - 'platforms/**'
- 'tmk_core/**' - 'tmk_core/**'
@@ -27,12 +26,10 @@ jobs:
container: ghcr.io/qmk/qmk_cli container: ghcr.io/qmk/qmk_cli
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
- name: Install dependencies - name: Install dependencies
run: pip3 install -r requirements-dev.txt run: pip3 install -r requirements-dev.txt
- name: Run tests - name: Run tests
run: qmk test-c -j $(nproc) run: make test:all

12
.gitignore vendored
View File

@@ -25,8 +25,6 @@
*.la *.la
*.stackdump *.stackdump
*.sym *.sym
index.html
firmware_list.json
# QMK-specific # QMK-specific
api_data/v1 api_data/v1
@@ -39,7 +37,6 @@ quantum/version.h
# DD config at wrong location # DD config at wrong location
/keyboards/**/keymaps/*/info.json /keyboards/**/keymaps/*/info.json
/keyboards/**/keymaps/*/keyboard.json
# Old-style QMK Makefiles # Old-style QMK Makefiles
/keyboards/**/Makefile /keyboards/**/Makefile
@@ -64,9 +61,6 @@ build/
cmake-build-debug cmake-build-debug
CMakeLists.txt CMakeLists.txt
*.pdf *.pdf
*.zip
.env
.envrc
# Let these ones be user specific, since we have so many different configurations # Let these ones be user specific, since we have so many different configurations
*.code-workspace *.code-workspace
@@ -97,11 +91,6 @@ tags
*.mpeg *.mpeg
*.ttf *.ttf
*.otf *.otf
# Un-ignore limited image file formats in docs
!docs/public/**.gif
!docs/public/**.jpg
!docs/public/**.jpeg
!docs/public/**.png
# Things Travis sees # Things Travis sees
/.vs /.vs
@@ -126,5 +115,4 @@ compile_commands.json
# VIA(L) files that don't belong in QMK repo # VIA(L) files that don't belong in QMK repo
via*.json via*.json
/keyboards/**/keymaps/via/*
/keyboards/**/keymaps/vial/* /keyboards/**/keymaps/vial/*

27
.vscode/settings.json vendored
View File

@@ -10,13 +10,6 @@
"**/*.uf2": true "**/*.uf2": true
}, },
"files.associations": { "files.associations": {
// QMK Filetypes
"keyboard.json": "jsonc",
"info.json": "jsonc",
"keymap.json": "jsonc",
"qmk.json": "jsonc",
"qmk_module.json": "jsonc",
// Standard filetypes
"*.h": "c", "*.h": "c",
"*.c": "c", "*.c": "c",
"*.inc": "c", "*.inc": "c",
@@ -35,23 +28,7 @@
"[json]": { "[json]": {
"editor.formatOnSave": false "editor.formatOnSave": false
}, },
"clangd.arguments": ["--header-insertion=never"], "clangd.arguments": [
"json.schemas": [ "--header-insertion=never"
{
"fileMatch": ["qmk.json"],
"url": "./data/schemas/user_repo_v1_1.jsonschema"
},
{
"fileMatch": ["qmk_module.json"],
"url": "./data/schemas/community_module.jsonschema"
},
{
"fileMatch": ["keyboard.json", "info.json"],
"url": "./data/schemas/keyboard.jsonschema"
},
{
"fileMatch": ["keymap.json"],
"url": "./data/schemas/keymap.jsonschema"
}
] ]
} }

View File

@@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "QMK Firmware" PROJECT_NAME = "QMK Firmware"
PROJECT_NUMBER = https://github.com/qmk/qmk_firmware PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families" PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
OUTPUT_DIRECTORY = .build/docs/static/doxygen OUTPUT_DIRECTORY = .build/doxygen
ALLOW_UNICODE_NAMES = NO ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES BRIEF_MEMBER_DESC = YES
@@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES RECURSIVE = YES
EXCLUDE = EXCLUDE =
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS = */protocol/arm_atsam/*
EXCLUDE_SYMBOLS = EXCLUDE_SYMBOLS =
EXAMPLE_PATH = EXAMPLE_PATH =
EXAMPLE_PATTERNS = * EXAMPLE_PATTERNS = *

132
Makefile
View File

@@ -38,17 +38,14 @@ $(info QMK Firmware $(QMK_VERSION))
endif endif
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 # Determine which qmk cli to use
QMK_BIN := qmk 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 # avoid 'Entering|Leaving directory' messages
MAKEFLAGS += --no-print-directory MAKEFLAGS += --no-print-directory
@@ -62,7 +59,6 @@ ifeq ($(ROOT_DIR),)
endif endif
include paths.mk include paths.mk
include $(BUILDDEFS_PATH)/support.mk
TEST_OUTPUT_DIR := $(BUILD_DIR)/test TEST_OUTPUT_DIR := $(BUILD_DIR)/test
ERROR_FILE := $(BUILD_DIR)/error_occurred ERROR_FILE := $(BUILD_DIR)/error_occurred
@@ -117,29 +113,6 @@ endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST # Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST
TRY_TO_MATCH_RULE_FROM_LIST = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER,$1))$(RULE_FOUND) 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
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))
TOKENr:=$$(shell python3 -c "import sys; print((sys.argv[1].split(':',1)+[''])[1])" $$(RULE))
TOKEN1:=$$(shell $(QMK_BIN) resolve-alias --allow-unknown $$(TOKEN1))
FOUNDx:=$$(shell echo $1 | tr " " "\n" | grep -Fx $$(TOKEN1))
ifneq ($$(FOUNDx),)
RULE := $$(TOKENr)
RULE_FOUND := true
MATCHED_ITEM := $$(TOKEN1)
else
RULE_FOUND := false
MATCHED_ITEM :=
endif
endef
# Make it easier to call TRY_TO_MATCH_RULE_FROM_LIST_KB
TRY_TO_MATCH_RULE_FROM_LIST_KB = $(eval $(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER_KB,$1))$(RULE_FOUND)
define ALL_IN_LIST_LOOP define ALL_IN_LIST_LOOP
OLD_RULE$1 := $$(RULE) OLD_RULE$1 := $$(RULE)
$$(eval $$(call $1,$$(ITEM$1))) $$(eval $$(call $1,$$(ITEM$1)))
@@ -165,7 +138,7 @@ define PARSE_RULE
$$(eval $$(call PARSE_TEST)) $$(eval $$(call PARSE_TEST))
# If the rule starts with the name of a known keyboard, then continue # If the rule starts with the name of a known keyboard, then continue
# the parsing from PARSE_KEYBOARD # the parsing from PARSE_KEYBOARD
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true) else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
KEYBOARD_RULE=$$(MATCHED_ITEM) KEYBOARD_RULE=$$(MATCHED_ITEM)
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM))) $$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
else else
@@ -193,9 +166,52 @@ endef
# Parses a rule in the format <keymap>:<target> # Parses a rule in the format <keymap>:<target>
# the keyboard is already known when entering this function # the keyboard is already known when entering this function
define PARSE_KEYBOARD 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 CURRENT_KB := $1
KEYMAPS := $(shell $(QMK_BIN) list-keymaps --keyboard $1) # KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB))
DEFAULT_FOLDER := $$(CURRENT_KB)
# We assume that every rules.mk will contain the full default value
$$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB))
$$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk)
endif
CURRENT_KB := $$(DEFAULT_FOLDER)
# 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))
# if the rule after removing the start of it is empty (we haven't specified a kemap or target) # if the rule after removing the start of it is empty (we haven't specified a kemap or target)
# compile all the keymaps # compile all the keymaps
@@ -226,7 +242,7 @@ endef
# if we are going to compile all keyboards, match the rest of the rule # if we are going to compile all keyboards, match the rest of the rule
# for each of them # for each of them
define PARSE_ALL_KEYBOARDS define PARSE_ALL_KEYBOARDS
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards))) $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYBOARD,$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)))
endef endef
# Prints a list of all known keymaps for the given keyboard # Prints a list of all known keymaps for the given keyboard
@@ -321,23 +337,24 @@ define BUILD_TEST
endif endif
endef endef
define LIST_TEST
include $(BUILDDEFS_PATH)/testlist.mk
FOUND_TESTS := $$(patsubst ./tests/%,%,$$(TEST_LIST))
$$(info $$(FOUND_TESTS))
endef
define PARSE_TEST define PARSE_TEST
TESTS := TESTS :=
TEST_NAME := $$(firstword $$(subst :, ,$$(RULE))) # list of possible targets, colon-delimited, to reassign to MAKE_TARGET and remove
TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE))) TARGETS := :clean:
ifneq (,$$(findstring :$$(lastword $$(subst :, ,$$(RULE))):, $$(TARGETS)))
MAKE_TARGET := $$(lastword $$(subst :, ,$$(RULE)))
TEST_SUBPATH := $$(subst $$(eval) ,/,$$(wordlist 2, $$(words $$(subst :, ,$$(RULE))), _ $$(subst :, ,$$(RULE))))
else
MAKE_TARGET :=
TEST_SUBPATH := $$(subst :,/,$$(RULE))
endif
include $(BUILDDEFS_PATH)/testlist.mk include $(BUILDDEFS_PATH)/testlist.mk
ifeq ($$(TEST_NAME),all) ifeq ($$(RULE),all)
MATCHED_TESTS := $$(TEST_LIST) MATCHED_TESTS := $$(TEST_LIST)
else else
MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(patsubst ./tests/%,%,$$(TEST)x)), $$(TEST),)) MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring /$$(TEST_SUBPATH)/, $$(patsubst %,%/,$$(TEST))), $$(TEST),))
endif endif
$$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET)))) $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(MAKE_TARGET))))
endef endef
@@ -418,15 +435,11 @@ git-submodules: git-submodule
.PHONY: list-keyboards .PHONY: list-keyboards
list-keyboards: list-keyboards:
$(QMK_BIN) list-keyboards | tr '\n' ' ' $(QMK_BIN) list-keyboards --no-resolve-defaults | tr '\n' ' '
.PHONY: list-tests
list-tests:
$(eval $(call LIST_TEST))
.PHONY: generate-keyboards-file .PHONY: generate-keyboards-file
generate-keyboards-file: generate-keyboards-file:
$(QMK_BIN) list-keyboards $(QMK_BIN) list-keyboards --no-resolve-defaults
.PHONY: clean .PHONY: clean
clean: clean:
@@ -449,18 +462,3 @@ distclean_userspace: clean
rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2 rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2
echo 'done.' echo 'done.'
endif 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"
.PHONY: pytest
pytest:
RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); 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"

View File

@@ -21,10 +21,10 @@ $(TEST_OUTPUT)_SRC := \
$(SRC) \ $(SRC) \
$(QUANTUM_PATH)/keymap_introspection.c \ $(QUANTUM_PATH)/keymap_introspection.c \
tests/test_common/matrix.c \ tests/test_common/matrix.c \
tests/test_common/pointing_device_driver.c \
tests/test_common/test_driver.cpp \ tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \ tests/test_common/keyboard_report_util.cpp \
tests/test_common/mouse_report_util.cpp \ tests/test_common/keycode_util.cpp \
tests/test_common/keycode_table.cpp \
tests/test_common/test_fixture.cpp \ tests/test_common/test_fixture.cpp \
tests/test_common/test_keymap_key.cpp \ tests/test_common/test_keymap_key.cpp \
tests/test_common/test_logger.cpp \ tests/test_common/test_logger.cpp \

36
builddefs/build_json.mk Normal file
View File

@@ -0,0 +1,36 @@
# 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

View File

@@ -11,7 +11,6 @@ endif
.DEFAULT_GOAL := all .DEFAULT_GOAL := all
include paths.mk include paths.mk
include $(BUILDDEFS_PATH)/support.mk
include $(BUILDDEFS_PATH)/message.mk include $(BUILDDEFS_PATH)/message.mk
# Helper to add defines with a 'QMK_' prefix # Helper to add defines with a 'QMK_' prefix
@@ -35,13 +34,10 @@ ifeq ($(strip $(DUMP_CI_METADATA)),yes)
endif endif
# Force expansion # Force expansion
override TARGET := $(TARGET) TARGET := $(TARGET)
ifneq ($(FORCE_LAYOUT),) ifneq ($(FORCE_LAYOUT),)
override TARGET := $(TARGET)_$(FORCE_LAYOUT) TARGET := $(TARGET)_$(FORCE_LAYOUT)
endif
ifneq ($(CONVERT_TO),)
override TARGET := $(TARGET)_$(CONVERT_TO)
endif endif
# Object files and generated keymap directory # Object files and generated keymap directory
@@ -62,6 +58,9 @@ ifdef SKIP_GIT
VERSION_H_FLAGS += --skip-git VERSION_H_FLAGS += --skip-git
endif endif
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
# Determine which subfolders exist. # Determine which subfolders exist.
KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD) KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1))) KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
@@ -98,151 +97,131 @@ endif
# Pull in rules.mk files from all our subfolders # Pull in rules.mk files from all our subfolders
-include $(KEYBOARD_PATH_5)/rules.mk ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
-include $(KEYBOARD_PATH_4)/rules.mk include $(KEYBOARD_PATH_5)/rules.mk
-include $(KEYBOARD_PATH_3)/rules.mk
-include $(KEYBOARD_PATH_2)/rules.mk
-include $(KEYBOARD_PATH_1)/rules.mk
# Create dependencies on DD keyboard config - structure validated elsewhere
DD_CONFIG_FILES :=
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/info.json
endif endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","") ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json include $(KEYBOARD_PATH_4)/rules.mk
endif endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","") ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json include $(KEYBOARD_PATH_3)/rules.mk
endif endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","") ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json include $(KEYBOARD_PATH_2)/rules.mk
endif endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json include $(KEYBOARD_PATH_1)/rules.mk
endif endif
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","") MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
endif MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","") MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/keyboard.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
endif
# Pull in rules from DD keyboard config # Pull in rules from info.json
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk) INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
include $(INFO_RULES_MK) include $(INFO_RULES_MK)
include $(BUILDDEFS_PATH)/locate_keymap.mk # Check for keymap.json first, so we can regenerate keymap.c
-include $(KEYMAP_PATH)/rules.mk 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
# Have we found a keymap.json? # Have we found a keymap.json?
ifneq ("$(wildcard $(KEYMAP_JSON))", "") ifneq ("$(wildcard $(KEYMAP_JSON))", "")
ifneq ("$(wildcard $(KEYMAP_C))", "") ifneq ("$(wildcard $(KEYMAP_C))", "")
# Allow a separately-found keymap.c next to keymap.json -- the keymap.c $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.)
# generator will include the other keymap.c in the process, if supplied.
OTHER_KEYMAP_C := $(KEYMAP_C)
OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
endif endif
KEYMAP_PATH := $(KEYMAP_JSON_PATH)
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
# Load the keymap-level rules.mk if exists
-include $(KEYMAP_PATH)/rules.mk
# Load any rules.mk content from keymap.json # 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)) INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
include $(INFO_RULES_MK) include $(INFO_RULES_MK)
# Add rules to generate the keymap files - indentation here is important # Add rules to generate the keymap files - indentation here is important
$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES) $(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON)) $(eval CMD=$(QMK_BIN) json2c --quiet --output $(KEYMAP_C) $(KEYMAP_JSON))
@$(BUILD_CMD) @$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) $(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON)) $(eval CMD=$(QMK_BIN) generate-config-h --quiet --output $(KEYMAP_H) $(KEYMAP_JSON))
@$(BUILD_CMD) @$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/keymap.c
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keymap-h --quiet --output $(INTERMEDIATE_OUTPUT)/src/keymap.h $(KEYMAP_JSON))
@$(BUILD_CMD)
generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/keymap.c $(INTERMEDIATE_OUTPUT)/src/keymap.h
endif
# Community modules
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))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/community_modules.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-introspection-c -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-community-modules-introspection-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-led-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(KEYMAP_JSON))
@$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(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_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 endif
include $(BUILDDEFS_PATH)/converters.mk include $(BUILDDEFS_PATH)/converters.mk
# Generate the board's version.h file.
$(shell $(QMK_BIN) generate-version-h $(VERSION_H_FLAGS) -q -o $(INTERMEDIATE_OUTPUT)/src/version.h)
MCU_ORIG := $(MCU) MCU_ORIG := $(MCU)
include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk) include $(wildcard $(PLATFORM_PATH)/*/mcu_selection.mk)
# PLATFORM_KEY should be detected in DD keyboard config via key 'processor' (or rules.mk 'MCU') # PLATFORM_KEY should be detected in info.json via key 'processor' (or rules.mk 'MCU')
ifeq ($(PLATFORM_KEY),) ifeq ($(PLATFORM_KEY),)
$(call CATASTROPHIC_ERROR,Platform not defined) $(call CATASTROPHIC_ERROR,Platform not defined)
endif endif
@@ -323,18 +302,6 @@ endif
# Find all of the config.h files and add them to our CONFIG_H define. # Find all of the config.h files and add them to our CONFIG_H define.
CONFIG_H := CONFIG_H :=
define config_h_community_module_appender
ifneq ("$(wildcard $(1)/config.h)","")
CONFIG_H += $(1)/config.h
endif
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)","") ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
CONFIG_H += $(KEYBOARD_PATH_5)/config.h CONFIG_H += $(KEYBOARD_PATH_5)/config.h
endif endif
@@ -352,14 +319,6 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","")
endif endif
POST_CONFIG_H := POST_CONFIG_H :=
define post_config_h_community_module_appender
ifneq ("$(wildcard $(1)/post_config.h)","")
POST_CONFIG_H += $(1)/post_config.h
endif
endef
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_config_h_community_module_appender,$(module))))
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","") ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h POST_CONFIG_H += $(KEYBOARD_PATH_1)/post_config.h
endif endif
@@ -376,20 +335,38 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_config.h)","")
POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h POST_CONFIG_H += $(KEYBOARD_PATH_5)/post_config.h
endif endif
# Pull in stuff from info.json
INFO_JSON_FILES :=
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/info.json)","")
INFO_JSON_FILES += $(KEYBOARD_PATH_1)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
INFO_JSON_FILES += $(KEYBOARD_PATH_2)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
INFO_JSON_FILES += $(KEYBOARD_PATH_3)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
INFO_JSON_FILES += $(KEYBOARD_PATH_4)/info.json
endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json
endif
CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h CONFIG_H += $(INTERMEDIATE_OUTPUT)/src/info_config.h
KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c KEYBOARD_SRC += $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c
$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(DD_CONFIG_FILES) $(INTERMEDIATE_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_config.h) $(eval CMD=$(QMK_BIN) generate-config-h --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_config.h)
@$(BUILD_CMD) @$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(DD_CONFIG_FILES) $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c) $(eval CMD=$(QMK_BIN) generate-keyboard-c --quiet --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.c)
@$(BUILD_CMD) @$(BUILD_CMD)
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(DD_CONFIG_FILES) $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h) $(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(INTERMEDIATE_OUTPUT)/src/default_keyboard.h)
@$(BUILD_CMD) @$(BUILD_CMD)
@@ -419,10 +396,8 @@ ifneq ($(wildcard $(QMK_USERSPACE)),)
endif endif
# If the equivalent users directory exists in userspace, use that in preference to anything currently in the main repo # If the equivalent users directory exists in userspace, use that in preference to anything currently in the main repo
ifneq ($(QMK_USERSPACE),) ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),)
ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),) USER_PATH := $(QMK_USERSPACE)/$(USER_PATH)
USER_PATH := $(QMK_USERSPACE)/$(USER_PATH)
endif
endif endif
# Pull in user level rules.mk # Pull in user level rules.mk
@@ -442,18 +417,21 @@ ifneq ("$(CONVERTER)","")
endif endif
# Pull in post_rules.mk files from all our subfolders # Pull in post_rules.mk files from all our subfolders
-include $(KEYBOARD_PATH_1)/post_rules.mk ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_rules.mk)","")
-include $(KEYBOARD_PATH_2)/post_rules.mk include $(KEYBOARD_PATH_1)/post_rules.mk
-include $(KEYBOARD_PATH_3)/post_rules.mk endif
-include $(KEYBOARD_PATH_4)/post_rules.mk ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_rules.mk)","")
-include $(KEYBOARD_PATH_5)/post_rules.mk include $(KEYBOARD_PATH_2)/post_rules.mk
endif
define post_rules_mk_community_module_includer ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_rules.mk)","")
ifneq ("$(wildcard $(1)/post_rules.mk)","") include $(KEYBOARD_PATH_3)/post_rules.mk
include $(1)/post_rules.mk endif
endif ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_rules.mk)","")
endef include $(KEYBOARD_PATH_4)/post_rules.mk
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_rules_mk_community_module_includer,$(module)))) endif
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/post_rules.mk)","")
include $(KEYBOARD_PATH_5)/post_rules.mk
endif
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
CONFIG_H += $(KEYMAP_PATH)/config.h CONFIG_H += $(KEYMAP_PATH)/config.h
@@ -527,14 +505,22 @@ ifeq ($(strip $(KEEP_INTERMEDIATES)), yes)
OPT_DEFS += -save-temps=obj OPT_DEFS += -save-temps=obj
endif endif
# TODO: remove this bodge?
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
PROJECT_CONFIG := $(CONFIG_H)
CONFIG_H += $(POST_CONFIG_H)
ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H)
OUTPUTS := $(INTERMEDIATE_OUTPUT) OUTPUTS := $(INTERMEDIATE_OUTPUT)
$(INTERMEDIATE_OUTPUT)_SRC := $(SRC) $(PLATFORM_SRC) $(INTERMEDIATE_OUTPUT)_SRC := $(SRC) $(PLATFORM_SRC)
$(INTERMEDIATE_OUTPUT)_DEFS := \ $(INTERMEDIATE_OUTPUT)_DEFS := $(OPT_DEFS) \
-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h\" \ -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h\" \
-DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \ -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
$(OPT_DEFS) $(PROJECT_DEFS)
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS) $(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(PROJECT_INC)
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(POST_CONFIG_H) $(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(PROJECT_CONFIG)
# Default target. # Default target.
all: build check-size all: build check-size

36
builddefs/build_layout.mk Normal file
View File

@@ -0,0 +1,36 @@
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)))

View File

@@ -7,7 +7,6 @@ endif
OPT = g OPT = g
include paths.mk include paths.mk
include $(BUILDDEFS_PATH)/support.mk
include $(BUILDDEFS_PATH)/message.mk include $(BUILDDEFS_PATH)/message.mk
TARGET=test/$(TEST_OUTPUT) TARGET=test/$(TEST_OUTPUT)
@@ -48,8 +47,7 @@ PLATFORM:=TEST
PLATFORM_KEY:=test PLATFORM_KEY:=test
BOOTLOADER_TYPE:=none BOOTLOADER_TYPE:=none
DEBUG ?= 0 ifeq ($(strip $(DEBUG)), 1)
ifneq ($(strip $(DEBUG)), 0)
CONSOLE_ENABLE = yes CONSOLE_ENABLE = yes
endif endif
@@ -62,7 +60,6 @@ include $(BUILDDEFS_PATH)/common_features.mk
include $(BUILDDEFS_PATH)/generic_features.mk include $(BUILDDEFS_PATH)/generic_features.mk
include $(PLATFORM_PATH)/common.mk include $(PLATFORM_PATH)/common.mk
include $(TMK_PATH)/protocol.mk include $(TMK_PATH)/protocol.mk
include $(QUANTUM_PATH)/battery/tests/rules.mk
include $(QUANTUM_PATH)/debounce/tests/rules.mk include $(QUANTUM_PATH)/debounce/tests/rules.mk
include $(QUANTUM_PATH)/encoder/tests/rules.mk include $(QUANTUM_PATH)/encoder/tests/rules.mk
include $(QUANTUM_PATH)/os_detection/tests/rules.mk include $(QUANTUM_PATH)/os_detection/tests/rules.mk

View File

@@ -28,11 +28,6 @@ QUANTUM_SRC += \
$(QUANTUM_DIR)/sync_timer.c \ $(QUANTUM_DIR)/sync_timer.c \
$(QUANTUM_DIR)/logging/debug.c \ $(QUANTUM_DIR)/logging/debug.c \
$(QUANTUM_DIR)/logging/sendchar.c \ $(QUANTUM_DIR)/logging/sendchar.c \
$(QUANTUM_DIR)/process_keycode/process_default_layer.c \
$(QUANTUM_DIR)/process_keycode/process_oneshot.c \
$(QUANTUM_DIR)/process_keycode/process_quantum.c \
include $(QUANTUM_DIR)/nvm/rules.mk
VPATH += $(QUANTUM_DIR)/logging VPATH += $(QUANTUM_DIR)/logging
# Fall back to lib/printf if there is no platform provided print # Fall back to lib/printf if there is no platform provided print
@@ -125,7 +120,7 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
MOUSE_ENABLE := yes MOUSE_ENABLE := yes
endif endif
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 paw3222 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),) 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) $(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
@@ -134,13 +129,13 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
MOUSE_ENABLE := yes MOUSE_ENABLE := yes
VPATH += $(QUANTUM_DIR)/pointing_device VPATH += $(QUANTUM_DIR)/pointing_device
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c
ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom) ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom)
SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]')) OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]'))
endif endif
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER)) OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER))
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_NAME=$(strip $(POINTING_DEVICE_DRIVER))
ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800) ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800)
SPI_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick) else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick)
@@ -157,8 +152,6 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
SRC += drivers/sensors/cirque_pinnacle.c SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_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)), pimoroni_trackball) else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),) else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),)
@@ -175,82 +168,84 @@ endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c spi wear_leveling legacy_stm32_flash
EEPROM_DRIVER ?= vendor EEPROM_DRIVER ?= vendor
ifneq ($(strip $(EEPROM_DRIVER)),none) ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver) $(call CATASTROPHIC_ERROR,Invalid EEPROM_DRIVER,EEPROM_DRIVER="$(EEPROM_DRIVER)" is not a valid EEPROM driver)
else else
OPT_DEFS += -DEEPROM_ENABLE OPT_DEFS += -DEEPROM_ENABLE
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/eeprom
COMMON_VPATH += $(DRIVER_PATH)/eeprom COMMON_VPATH += $(DRIVER_PATH)/eeprom
COMMON_VPATH += $(PLATFORM_COMMON_DIR) COMMON_VPATH += $(PLATFORM_COMMON_DIR)
ifeq ($(strip $(EEPROM_DRIVER)), custom) ifeq ($(strip $(EEPROM_DRIVER)), custom)
# Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block # Custom EEPROM implementation -- only needs to implement init/erase/read_block/write_block
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_CUSTOM
SRC += eeprom_driver.c SRC += eeprom_driver.c
else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling) else ifeq ($(strip $(EEPROM_DRIVER)), wear_leveling)
# Wear-leveling EEPROM implementation # Wear-leveling EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c SRC += eeprom_driver.c eeprom_wear_leveling.c
else ifeq ($(strip $(EEPROM_DRIVER)), i2c) else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation # External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_i2c.c SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi) else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation # External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
SPI_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_spi.c SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash) else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
else ifeq ($(strip $(EEPROM_DRIVER)), transient) else ifeq ($(strip $(EEPROM_DRIVER)), transient)
# Transient EEPROM implementation -- no data storage but provides runtime area for it # Transient EEPROM implementation -- no data storage but provides runtime area for it
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c SRC += eeprom_driver.c eeprom_transient.c
else ifeq ($(strip $(EEPROM_DRIVER)), vendor) else ifeq ($(strip $(EEPROM_DRIVER)), vendor)
# Vendor-implemented EEPROM # Vendor-implemented EEPROM
OPT_DEFS += -DEEPROM_VENDOR OPT_DEFS += -DEEPROM_VENDOR
ifeq ($(PLATFORM),AVR) ifeq ($(PLATFORM),AVR)
# Automatically provided by avr-libc, nothing required # Automatically provided by avr-libc, nothing required
else ifeq ($(PLATFORM),CHIBIOS) else ifeq ($(PLATFORM),CHIBIOS)
ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),) ifneq ($(filter %_STM32F072xB %_STM32F042x6, $(MCU_SERIES)_$(MCU_LDSCRIPT)),)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated) # STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G0xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 GD32VF103),) else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G4xx WB32F3G71xx WB32FQ95xx GD32VF103),)
# Wear-leveling EEPROM implementation, backed by MCU flash # Wear-leveling EEPROM implementation, backed by MCU flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER ?= embedded_flash WEAR_LEVELING_DRIVER ?= embedded_flash
else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),) else ifneq ($(filter $(MCU_SERIES),STM32L0xx STM32L1xx),)
# True EEPROM on STM32L0xx, L1xx # True EEPROM on STM32L0xx, L1xx
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1 OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_L0_L1
SRC += eeprom_driver.c eeprom_stm32_L0_L1.c SRC += eeprom_driver.c eeprom_stm32_L0_L1.c
else ifneq ($(filter $(MCU_SERIES),RP2040),) else ifneq ($(filter $(MCU_SERIES),RP2040),)
# Wear-leveling EEPROM implementation, backed by RP2040 flash # Wear-leveling EEPROM implementation, backed by RP2040 flash
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_WEAR_LEVELING
SRC += eeprom_driver.c eeprom_wear_leveling.c SRC += eeprom_driver.c eeprom_wear_leveling.c
WEAR_LEVELING_DRIVER ?= rp2040_flash WEAR_LEVELING_DRIVER ?= rp2040_flash
else ifneq ($(filter $(MCU_SERIES),KL2x K20x),) else ifneq ($(filter $(MCU_SERIES),KL2x K20x),)
# Teensy EEPROM implementations # Teensy EEPROM implementations
OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM OPT_DEFS += -DEEPROM_KINETIS_FLEXRAM
SRC += eeprom_kinetis_flexram.c SRC += eeprom_kinetis_flexram.c
else else
# Fall back to transient, i.e. non-persistent # Fall back to transient, i.e. non-persistent
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
SRC += eeprom_driver.c eeprom_transient.c SRC += eeprom_driver.c eeprom_transient.c
endif
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
SRC += eeprom.c
endif endif
else ifeq ($(PLATFORM),ARM_ATSAM)
# arm_atsam EEPROM
OPT_DEFS += -DEEPROM_SAMD
SRC += eeprom_samd.c
else ifeq ($(PLATFORM),TEST)
# Test harness "EEPROM"
OPT_DEFS += -DEEPROM_TEST_HARNESS
SRC += eeprom.c
endif endif
endif endif
endif endif
@@ -271,29 +266,34 @@ ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none)
ifeq ($(strip $(WEAR_LEVELING_DRIVER)), embedded_flash) ifeq ($(strip $(WEAR_LEVELING_DRIVER)), embedded_flash)
OPT_DEFS += -DHAL_USE_EFL OPT_DEFS += -DHAL_USE_EFL
SRC += wear_leveling_efl.c SRC += wear_leveling_efl.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_efl_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), spi_flash) else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), spi_flash)
FLASH_DRIVER := spi FLASH_DRIVER := spi
SRC += wear_leveling_flash_spi.c SRC += wear_leveling_flash_spi.c
POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash) else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash)
SRC += wear_leveling_rp2040_flash.c SRC += wear_leveling_rp2040_flash.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h
else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy) else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy)
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
SRC += legacy_flash_ops.c wear_leveling_legacy.c SRC += legacy_flash_ops.c wear_leveling_legacy.c
POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/wear_leveling/wear_leveling_legacy_config.h
endif endif
endif endif
endif endif
VALID_FLASH_DRIVER_TYPES := spi custom VALID_FLASH_DRIVER_TYPES := spi
FLASH_DRIVER ?= none FLASH_DRIVER ?= none
ifneq ($(strip $(FLASH_DRIVER)), none) ifneq ($(strip $(FLASH_DRIVER)), none)
ifeq ($(filter $(FLASH_DRIVER),$(VALID_FLASH_DRIVER_TYPES)),) ifeq ($(filter $(FLASH_DRIVER),$(VALID_FLASH_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid FLASH_DRIVER,FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid flash driver) $(call CATASTROPHIC_ERROR,Invalid FLASH_DRIVER,FLASH_DRIVER="$(FLASH_DRIVER)" is not a valid flash driver)
else else
OPT_DEFS += -DFLASH_ENABLE -DFLASH_DRIVER -DFLASH_DRIVER_$(strip $(shell echo $(FLASH_DRIVER) | tr '[:lower:]' '[:upper:]')) OPT_DEFS += -DFLASH_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/flash
ifeq ($(strip $(FLASH_DRIVER)),spi) ifeq ($(strip $(FLASH_DRIVER)),spi)
SRC += flash_spi.c
SPI_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes
OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += flash_spi.c
endif endif
endif endif
endif endif
@@ -311,11 +311,10 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h
OPT_DEFS += -DRGBLIGHT_ENABLE OPT_DEFS += -DRGBLIGHT_ENABLE
OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]')) OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c
SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight.c SRC += $(QUANTUM_DIR)/rgblight/rgblight.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight_drivers.c
CIE1931_CURVE := yes CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
endif endif
ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812) ifeq ($(strip $(RGBLIGHT_DRIVER)), ws2812)
@@ -340,7 +339,7 @@ LED_MATRIX_DRIVER := snled27351
endif endif
LED_MATRIX_ENABLE ?= no LED_MATRIX_ENABLE ?= no
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3236 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
@@ -353,7 +352,7 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners
POST_CONFIG_H += $(QUANTUM_DIR)/led_matrix/post_config.h POST_CONFIG_H += $(QUANTUM_DIR)/led_matrix/post_config.h
SRC += $(QUANTUM_DIR)/process_keycode/process_led_matrix.c SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c
LIB8TION_ENABLE := yes LIB8TION_ENABLE := yes
@@ -362,88 +361,73 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3218-mono.c SRC += is31fl3218-simple.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3236)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3236-mono.c
endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3729)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3729-mono.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731-mono.c SRC += is31fl3731-simple.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3733) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3733)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733-mono.c SRC += is31fl3733-simple.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3736-mono.c SRC += is31fl3736-simple.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3737) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3737)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3737-mono.c SRC += is31fl3737-simple.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3741) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3741)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3741-mono.c SRC += is31fl3741-simple.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3742a-mono.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3743a-mono.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3745-mono.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a) ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3746a-mono.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351) ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led COMMON_VPATH += $(DRIVER_PATH)/led
SRC += snled27351-mono.c SRC += snled27351-simple.c
endif endif
ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes)
OPT_DEFS += -DLED_MATRIX_CUSTOM_KB
endif
ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes)
OPT_DEFS += -DLED_MATRIX_CUSTOM_USER
endif
endif endif
# Deprecated driver names - do not use # Deprecated driver names - do not use
@@ -456,7 +440,7 @@ endif
RGB_MATRIX_ENABLE ?= no RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3236 is31fl3729 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
@@ -468,16 +452,12 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners
POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h POST_CONFIG_H += $(QUANTUM_DIR)/rgb_matrix/post_config.h
# TODO: Remove this
SRC += $(QUANTUM_DIR)/process_keycode/process_underglow.c
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb_matrix.c
SRC += $(QUANTUM_DIR)/color.c SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c
LIB8TION_ENABLE := yes LIB8TION_ENABLE := yes
CIE1931_CURVE := yes CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s) ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s)
SPI_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes
@@ -491,18 +471,6 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
SRC += is31fl3218.c SRC += is31fl3218.c
endif endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3236)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3236.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3729)
I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3729.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731) ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731)
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
@@ -534,27 +502,31 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
endif endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a) ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3742a.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a) ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3743a.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745) ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3745.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a) ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a)
OPT_DEFS += -DIS31FLCOMMON
I2C_DRIVER_REQUIRED = yes I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3746a.c SRC += is31flcommon.c
endif endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351) ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351)
@@ -580,6 +552,10 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
endif endif
endif endif
ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
endif
VARIABLE_TRACE ?= no VARIABLE_TRACE ?= no
ifneq ($(strip $(VARIABLE_TRACE)),no) ifneq ($(strip $(VARIABLE_TRACE)),no)
SRC += $(QUANTUM_DIR)/variable_trace.c SRC += $(QUANTUM_DIR)/variable_trace.c
@@ -637,23 +613,26 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
RAW_ENABLE := yes RAW_ENABLE := yes
BOOTMAGIC_ENABLE := yes BOOTMAGIC_ENABLE := yes
TRI_LAYER_ENABLE := yes TRI_LAYER_ENABLE := yes
ifeq ($(strip $(VIA_INSECURE)), yes)
OPT_DEFS += -DVIA_INSECURE
endif
endif endif
ifeq ($(strip $(RAW_ENABLE)), yes) VALID_MAGIC_TYPES := yes
OPT_DEFS += -DRAW_ENABLE BOOTMAGIC_ENABLE ?= no
SRC += raw_hid.c ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
endif ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid BOOTMAGIC_ENABLE,BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic)
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) endif
SEND_STRING_ENABLE := yes ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
OPT_DEFS += -DBOOTMAGIC_LITE
QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/bootmagic_lite.c
endif
endif endif
COMMON_VPATH += $(QUANTUM_DIR)/bootmagic
QUANTUM_SRC += $(QUANTUM_DIR)/bootmagic/magic.c
VALID_CUSTOM_MATRIX_TYPES:= yes lite no VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no CUSTOM_MATRIX ?= no
ifneq ($(strip $(CUSTOM_MATRIX)), yes) ifneq ($(strip $(CUSTOM_MATRIX)), yes)
ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),) ifeq ($(filter $(CUSTOM_MATRIX),$(VALID_CUSTOM_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid CUSTOM_MATRIX,CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type) $(call CATASTROPHIC_ERROR,Invalid CUSTOM_MATRIX,CUSTOM_MATRIX="$(CUSTOM_MATRIX)" is not a valid custom matrix type)
@@ -729,7 +708,6 @@ ifeq ($(strip $(LIB8TION_ENABLE)), yes)
# ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
OPT_DEFS += -DLIB8_ATTINY OPT_DEFS += -DLIB8_ATTINY
endif endif
OPT_DEFS += -DFASTLED_SCALE8_FIXED=1 -DFASTLED_BLEND_FIXED=1
SRC += $(LIB_PATH)/lib8tion/lib8tion.c SRC += $(LIB_PATH)/lib8tion/lib8tion.c
endif endif
@@ -859,12 +837,15 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes)
$(call CATASTROPHIC_ERROR,Invalid JOYSTICK_DRIVER,JOYSTICK_DRIVER="$(JOYSTICK_DRIVER)" is not a valid joystick driver) $(call CATASTROPHIC_ERROR,Invalid JOYSTICK_DRIVER,JOYSTICK_DRIVER="$(JOYSTICK_DRIVER)" is not a valid joystick driver)
endif endif
OPT_DEFS += -DJOYSTICK_ENABLE OPT_DEFS += -DJOYSTICK_ENABLE
OPT_DEFS += -DJOYSTICK_$(strip $(shell echo $(JOYSTICK_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c SRC += $(QUANTUM_DIR)/process_keycode/process_joystick.c
SRC += $(QUANTUM_DIR)/joystick.c SRC += $(QUANTUM_DIR)/joystick.c
ifeq ($(strip $(JOYSTICK_DRIVER)), analog) ifeq ($(strip $(JOYSTICK_DRIVER)), analog)
ANALOG_DRIVER_REQUIRED = yes ANALOG_DRIVER_REQUIRED = yes
OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
endif
ifeq ($(strip $(JOYSTICK_DRIVER)), digital)
OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
endif endif
endif endif
@@ -901,78 +882,31 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_ENABLE OPT_DEFS += -DBLUETOOTH_ENABLE
OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]')) OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes NO_USB_STARTUP_CHECK := yes
CONNECTION_ENABLE := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c SRC += outputselect.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le) ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
SPI_DRIVER_REQUIRED = yes SPI_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c ANALOG_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
endif endif
ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42) ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42)
UART_DRIVER_REQUIRED = yes UART_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/rn42.c SRC += $(DRIVER_PATH)/bluetooth/rn42.c
endif endif
endif endif
ENCODER_ENABLE ?= no
ENCODER_DRIVER ?= quadrature
VALID_ENCODER_DRIVER_TYPES := quadrature custom
ifeq ($(strip $(ENCODER_ENABLE)), yes) ifeq ($(strip $(ENCODER_ENABLE)), yes)
ifeq ($(filter $(ENCODER_DRIVER),$(VALID_ENCODER_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid ENCODER_DRIVER,ENCODER_DRIVER="$(ENCODER_DRIVER)" is not a valid encoder driver)
endif
SRC += $(QUANTUM_DIR)/encoder.c SRC += $(QUANTUM_DIR)/encoder.c
OPT_DEFS += -DENCODER_ENABLE OPT_DEFS += -DENCODER_ENABLE
OPT_DEFS += -DENCODER_DRIVER_$(strip $(shell echo $(ENCODER_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/encoder
COMMON_VPATH += $(DRIVER_PATH)/encoder
ifneq ($(strip $(ENCODER_DRIVER)), custom)
SRC += encoder_$(strip $(ENCODER_DRIVER)).c
endif
ifeq ($(strip $(ENCODER_MAP_ENABLE)), yes) ifeq ($(strip $(ENCODER_MAP_ENABLE)), yes)
OPT_DEFS += -DENCODER_MAP_ENABLE OPT_DEFS += -DENCODER_MAP_ENABLE
endif endif
endif endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
ifeq ($(strip $(DIP_SWITCH_MAP_ENABLE)), yes)
OPT_DEFS += -DDIP_SWITCH_MAP_ENABLE
endif
endif
ifeq ($(strip $(BATTERY_ENABLE)), yes)
BATTERY_DRIVER_REQUIRED := yes
endif
VALID_BATTERY_DRIVER_TYPES := adc custom vendor
BATTERY_DRIVER ?= none
ifeq ($(strip $(BATTERY_DRIVER_REQUIRED)), yes)
ifeq ($(filter $(BATTERY_DRIVER),$(VALID_BATTERY_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid BATTERY_DRIVER,BATTERY_DRIVER="$(BATTERY_DRIVER)" is not a valid battery driver)
endif
OPT_DEFS += -DBATTERY_DRIVER_$(strip $(shell echo $(BATTERY_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/battery
ifneq ($(strip $(BATTERY_DRIVER)), custom)
SRC += battery_$(strip $(BATTERY_DRIVER)).c
endif
# add extra deps
ifeq ($(strip $(BATTERY_DRIVER)), adc)
ANALOG_DRIVER_REQUIRED = yes
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
WS2812_DRIVER ?= bitbang WS2812_DRIVER ?= bitbang
@@ -983,9 +917,7 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/led SRC += ws2812_$(strip $(WS2812_DRIVER)).c
SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS) ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm) ifeq ($(strip $(WS2812_DRIVER)), pwm)
@@ -1020,15 +952,6 @@ ifeq ($(strip $(SPI_DRIVER_REQUIRED)), yes)
endif endif
ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes) ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes)
ifeq ($(strip $(PLATFORM)), CHIBIOS) OPT_DEFS += -DHAL_USE_SERIAL=TRUE
ifneq ($(filter $(MCU_SERIES),RP2040),) QUANTUM_LIB_SRC += uart.c
OPT_DEFS += -DHAL_USE_SIO=TRUE
QUANTUM_LIB_SRC += uart_sio.c
else
OPT_DEFS += -DHAL_USE_SERIAL=TRUE
QUANTUM_LIB_SRC += uart_serial.c
endif
else
QUANTUM_LIB_SRC += uart.c
endif
endif endif

View File

@@ -43,25 +43,25 @@ ifneq ($(USE_CCACHE),no)
CC_PREFIX ?= ccache CC_PREFIX ?= ccache
endif endif
#---------------- Debug Options ----------------
DEBUG_ENABLE ?= no
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
#---------------- C Compiler Options ---------------- #---------------- C Compiler Options ----------------
ifeq ($(strip $(LTO_ENABLE)), yes) ifeq ($(strip $(LTO_ENABLE)), yes)
CDEFS += -flto=auto ifeq ($(PLATFORM),ARM_ATSAM)
$(info Enabling LTO on arm_atsam-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
CDEFS += -flto
CDEFS += -DLTO_ENABLE CDEFS += -DLTO_ENABLE
endif endif
DEBUG_ENABLE ?= yes
ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
DEBUG_ENABLE=no
endif
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CFLAGS += -g$(DEBUG)
endif
CFLAGS += $(CDEFS) CFLAGS += $(CDEFS)
CFLAGS += -O$(OPT) CFLAGS += -O$(OPT)
# add color # add color
@@ -83,6 +83,9 @@ CFLAGS += -fcommon
#---------------- C++ Compiler Options ---------------- #---------------- C++ Compiler Options ----------------
ifeq ($(strip $(DEBUG_ENABLE)),yes)
CXXFLAGS += -g$(DEBUG)
endif
CXXFLAGS += $(CXXDEFS) CXXFLAGS += $(CXXDEFS)
CXXFLAGS += -O$(OPT) CXXFLAGS += -O$(OPT)
# to suppress "warning: only initialized variables can be placed into program memory area" # to suppress "warning: only initialized variables can be placed into program memory area"
@@ -103,10 +106,14 @@ endif
#---------------- Linker Options ---------------- #---------------- Linker Options ----------------
CREATE_MAP ?= yes
ifeq ($(CREATE_MAP),yes)
LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref
endif
ifeq ($(VERBOSE_LD_CMD),yes) ifeq ($(VERBOSE_LD_CMD),yes)
LDFLAGS += -v LDFLAGS += -v
endif endif
#LDFLAGS += -Wl,--relax
LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
LDFLAGS += -lm LDFLAGS += -lm
@@ -119,11 +126,15 @@ ADHLNS_ENABLE ?= no
ifeq ($(ADHLNS_ENABLE),yes) ifeq ($(ADHLNS_ENABLE),yes)
# Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time # Avoid "Options to '-Xassembler' do not match" - only specify assembler options at LTO link time
ifeq ($(strip $(LTO_ENABLE)), yes) ifeq ($(strip $(LTO_ENABLE)), yes)
LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst LDFLAGS += -Wa,-adhlns=$(BUILD_DIR)/$(TARGET).lst
else else
CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) CXXFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100 ifeq ($(strip $(DEBUG_ENABLE)),yes)
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
else
ASFLAGS = -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
endif
endif endif
endif endif
@@ -168,7 +179,7 @@ MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@)
# For a ChibiOS build, ensure that the board files have the hook overrides injected # For a ChibiOS build, ensure that the board files have the hook overrides injected
define BOARDSRC_INJECT_HOOKS define BOARDSRC_INJECT_HOOKS
$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): FILE_SPECIFIC_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h $(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h
endef endef
$(foreach LOBJ, $(BOARDSRC), $(eval $(call BOARDSRC_INJECT_HOOKS,$(LOBJ)))) $(foreach LOBJ, $(BOARDSRC), $(eval $(call BOARDSRC_INJECT_HOOKS,$(LOBJ))))
@@ -289,10 +300,10 @@ $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)
ifneq ($$(VERBOSE_C_INCLUDE),) ifneq ($$(VERBOSE_C_INCLUDE),)
$$(if $$(filter $$(notdir $$(VERBOSE_C_INCLUDE)),$$(notdir $$<)),$$(eval CC_EXEC += -H)) $$(if $$(filter $$(notdir $$(VERBOSE_C_INCLUDE)),$$(notdir $$<)),$$(eval CC_EXEC += -H))
endif endif
$$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) $$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD) @$$(BUILD_CMD)
ifneq ($$(DUMP_C_MACROS),) ifneq ($$(DUMP_C_MACROS),)
$$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$<) $$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$<)
@$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD)) @$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD))
endif endif
@@ -300,13 +311,13 @@ $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)
$1/%.o : %.cpp $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN) $1/%.o : %.cpp $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D) @mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD) @$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) $$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD) @$$(BUILD_CMD)
$1/%.o : %.cc $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN) $1/%.o : %.cc $1/%.d $1/cxxflags.txt $1/compiler.txt | $(BEGIN)
@mkdir -p $$(@D) @mkdir -p $$(@D)
@$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD) @$$(SILENT) || printf "$$(MSG_COMPILING_CXX) $$<" | $$(AWK_CMD)
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) $$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
@$$(BUILD_CMD) @$$(BUILD_CMD)
# Assemble: create object files from assembler source files. # Assemble: create object files from assembler source files.

View File

@@ -1,3 +1,13 @@
# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms
# and should not be replicated for new boards. These will be removed from
# documentation as well as existing keymaps in due course.
ifneq ($(findstring yes, $(CTPC)$(CONVERT_TO_PROTON_C)),)
$(call CATASTROPHIC_ERROR,The `CONVERT_TO_PROTON_C` and `CTPC` options are now deprecated. `CONVERT_TO=proton_c` should be used instead.)
endif
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro
# Remove whitespace from any rule.mk provided vars # Remove whitespace from any rule.mk provided vars
# - env cannot be overwritten but cannot have whitespace anyway # - env cannot be overwritten but cannot have whitespace anyway
CONVERT_TO:=$(strip $(CONVERT_TO)) CONVERT_TO:=$(strip $(CONVERT_TO))
@@ -6,10 +16,6 @@ ifneq ($(CONVERT_TO),)
# stash so we can overwrite env provided vars if needed # stash so we can overwrite env provided vars if needed
ACTIVE_CONVERTER=$(CONVERT_TO) ACTIVE_CONVERTER=$(CONVERT_TO)
ifeq ($(PIN_COMPATIBLE),)
$(call CATASTROPHIC_ERROR,Converting to '$(CONVERT_TO)' not possible!)
endif
# glob to search each platfrorm and/or check for valid converter # glob to search each platfrorm and/or check for valid converter
CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/) CONVERTER := $(wildcard $(PLATFORM_PATH)/*/converters/$(PIN_COMPATIBLE)_to_$(CONVERT_TO)/)
ifeq ($(CONVERTER),) ifeq ($(CONVERTER),)
@@ -20,6 +26,9 @@ ifneq ($(CONVERT_TO),)
PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2) PLATFORM_KEY = $(shell echo $(CONVERTER) | cut -d "/" -f2)
# force setting as value can be from environment
override TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults # Configure any defaults
OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]') OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')
OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\" OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\"

View File

@@ -1,5 +0,0 @@
node_modules
.vitepress/cache
.vitepress/.temp
.vitepress/dist
docs

View File

@@ -1,58 +0,0 @@
import { defineConfig } from "vitepress";
import { tabsMarkdownPlugin } from "vitepress-plugin-tabs";
import sidebar from "../../../docs/_sidebar.json";
// https://vitepress.dev/reference/site-config
export default defineConfig(({ mode }) => {
const prod = mode === "production";
return {
title: "QMK Firmware",
description: "Documentation for QMK Firmware",
srcDir: prod ? "docs" : "../../docs",
outDir: "../../.build/docs",
cleanUrls: true,
markdown: {
config(md) {
md.use(tabsMarkdownPlugin);
},
},
vite: {
resolve: {
preserveSymlinks: true,
},
},
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
logo: {
light: "/qmk-logo-light.svg",
dark: "/qmk-logo-dark.svg",
},
title: 'QMK Firmware',
nav: [{ text: "Home", link: "/" }],
search: {
provider: "local",
},
editLink: {
pattern: 'https://github.com/qmk/qmk_firmware/edit/master/docs/:path'
},
lastUpdated: true,
sidebar: sidebar,
externalLinkIcon: true,
socialLinks: [
{ icon: { svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 29 3 C 28.0625 3 27.164063 3.382813 26.5 4 C 25.835938 4.617188 25.363281 5.433594 25 6.40625 C 24.355469 8.140625 24.085938 10.394531 24.03125 13.03125 C 19.234375 13.179688 14.820313 14.421875 11.28125 16.46875 C 10.214844 15.46875 8.855469 14.96875 7.5 14.96875 C 6.089844 14.96875 4.675781 15.511719 3.59375 16.59375 C 1.425781 18.761719 1.425781 22.238281 3.59375 24.40625 L 3.84375 24.65625 C 3.3125 26.035156 3 27.488281 3 29 C 3 33.527344 5.566406 37.585938 9.5625 40.4375 C 13.558594 43.289063 19.007813 45 25 45 C 30.992188 45 36.441406 43.289063 40.4375 40.4375 C 44.433594 37.585938 47 33.527344 47 29 C 47 27.488281 46.6875 26.035156 46.15625 24.65625 L 46.40625 24.40625 C 48.574219 22.238281 48.574219 18.761719 46.40625 16.59375 C 45.324219 15.511719 43.910156 14.96875 42.5 14.96875 C 41.144531 14.96875 39.785156 15.46875 38.71875 16.46875 C 35.195313 14.433594 30.800781 13.191406 26.03125 13.03125 C 26.09375 10.546875 26.363281 8.46875 26.875 7.09375 C 27.164063 6.316406 27.527344 5.757813 27.875 5.4375 C 28.222656 5.117188 28.539063 5 29 5 C 29.460938 5 29.683594 5.125 30.03125 5.40625 C 30.378906 5.6875 30.785156 6.148438 31.3125 6.6875 C 32.253906 7.652344 33.695313 8.714844 36.09375 8.9375 C 36.539063 11.238281 38.574219 13 41 13 C 43.75 13 46 10.75 46 8 C 46 5.25 43.75 3 41 3 C 38.605469 3 36.574219 4.710938 36.09375 6.96875 C 34.3125 6.796875 33.527344 6.109375 32.75 5.3125 C 32.300781 4.851563 31.886719 4.3125 31.3125 3.84375 C 30.738281 3.375 29.9375 3 29 3 Z M 41 5 C 42.667969 5 44 6.332031 44 8 C 44 9.667969 42.667969 11 41 11 C 39.332031 11 38 9.667969 38 8 C 38 6.332031 39.332031 5 41 5 Z M 25 15 C 30.609375 15 35.675781 16.613281 39.28125 19.1875 C 42.886719 21.761719 45 25.226563 45 29 C 45 32.773438 42.886719 36.238281 39.28125 38.8125 C 35.675781 41.386719 30.609375 43 25 43 C 19.390625 43 14.324219 41.386719 10.71875 38.8125 C 7.113281 36.238281 5 32.773438 5 29 C 5 25.226563 7.113281 21.761719 10.71875 19.1875 C 14.324219 16.613281 19.390625 15 25 15 Z M 7.5 16.9375 C 8.203125 16.9375 8.914063 17.148438 9.53125 17.59375 C 7.527344 19.03125 5.886719 20.769531 4.75 22.71875 C 3.582031 21.296875 3.660156 19.339844 5 18 C 5.714844 17.285156 6.609375 16.9375 7.5 16.9375 Z M 42.5 16.9375 C 43.390625 16.9375 44.285156 17.285156 45 18 C 46.339844 19.339844 46.417969 21.296875 45.25 22.71875 C 44.113281 20.769531 42.472656 19.03125 40.46875 17.59375 C 41.085938 17.148438 41.796875 16.9375 42.5 16.9375 Z M 17 22 C 14.800781 22 13 23.800781 13 26 C 13 28.199219 14.800781 30 17 30 C 19.199219 30 21 28.199219 21 26 C 21 23.800781 19.199219 22 17 22 Z M 33 22 C 30.800781 22 29 23.800781 29 26 C 29 28.199219 30.800781 30 33 30 C 35.199219 30 37 28.199219 37 26 C 37 23.800781 35.199219 22 33 22 Z M 17 24 C 18.117188 24 19 24.882813 19 26 C 19 27.117188 18.117188 28 17 28 C 15.882813 28 15 27.117188 15 26 C 15 24.882813 15.882813 24 17 24 Z M 33 24 C 34.117188 24 35 24.882813 35 26 C 35 27.117188 34.117188 28 33 28 C 31.882813 28 31 27.117188 31 26 C 31 24.882813 31.882813 24 33 24 Z M 34.15625 33.84375 C 34.101563 33.851563 34.050781 33.859375 34 33.875 C 33.683594 33.9375 33.417969 34.144531 33.28125 34.4375 C 33.28125 34.4375 32.757813 35.164063 31.4375 36 C 30.117188 36.835938 28.058594 37.6875 25 37.6875 C 21.941406 37.6875 19.882813 36.835938 18.5625 36 C 17.242188 35.164063 16.71875 34.4375 16.71875 34.4375 C 16.492188 34.082031 16.066406 33.90625 15.65625 34 C 15.332031 34.082031 15.070313 34.316406 14.957031 34.632813 C 14.84375 34.945313 14.894531 35.292969 15.09375 35.5625 C 15.09375 35.5625 15.863281 36.671875 17.46875 37.6875 C 19.074219 38.703125 21.558594 39.6875 25 39.6875 C 28.441406 39.6875 30.925781 38.703125 32.53125 37.6875 C 34.136719 36.671875 34.90625 35.5625 34.90625 35.5625 C 35.207031 35.273438 35.296875 34.824219 35.128906 34.441406 C 34.960938 34.058594 34.574219 33.820313 34.15625 33.84375 Z"/></svg>' }, link: "https://reddit.com/r/olkb" },
{ icon: "discord", link: "https://discord.gg/qmk" },
{ icon: "github", link: "https://github.com/qmk/qmk_firmware" },
],
}
};
});

View File

@@ -1,29 +0,0 @@
<script setup>
import DefaultTheme from 'vitepress/theme'
import { useRouter } from 'vitepress'
import { onBeforeMount } from 'vue';
import aliases from "../../../../docs/_aliases.json";
const router = useRouter()
onBeforeMount(async () => {
// Convert from docsify-style to vitepress-style URLs
let newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#');
// Convert any aliases
let testUrl = new URL(newUrl);
while (testUrl.pathname in aliases) {
testUrl.pathname = aliases[testUrl.pathname];
}
newUrl = testUrl.toString();
// Redirect if required
if (newUrl != window.location.href) {
window.history.replaceState({}, '', newUrl);
await router.go(newUrl);
}
});
</script>
<template>
<DefaultTheme.Layout/>
</template>

View File

@@ -1,19 +0,0 @@
/* Override <kbd> as vitepress doesn't put them with borders */
kbd {
border: 1px solid var(--vp-c-text-1);
border-radius: 5px;
margin: 0.2em;
padding: 0.2em;
}
:root {
--vp-nav-logo-height: 32px;
--vp-layout-max-width: calc(98% + 64px);
--vp-sidebar-width: 300px;
}
.VPDoc.has-aside .content-container {
max-width: unset !important;
}

View File

@@ -1,13 +0,0 @@
import type { Theme } from 'vitepress'
import DefaultTheme from 'vitepress/theme'
import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client'
import QMKLayout from './QMKLayout.vue'
import './custom.css'
export default {
extends: DefaultTheme,
Layout: QMKLayout,
enhanceApp({ app }) {
enhanceAppWithTabs(app)
}
} satisfies Theme

View File

@@ -1,6 +0,0 @@
#!/usr/bin/env bash
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
yarn install
[[ -e docs ]] || ln -sf ../../docs docs
DEBUG='vitepress:*,vite:*' yarn run docs:build

View File

@@ -1,14 +0,0 @@
{
"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"
},
"scripts": {
"docs:dev": "vitepress dev --host 0.0.0.0",
"docs:build": "vitepress build",
"docs:preview": "vitepress preview --host 0.0.0.0"
}
}

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env bash
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
yarn install
DEBUG='vitepress:*,vite:*' yarn run docs:dev

View File

@@ -1,856 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# 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==
dependencies:
"@algolia/autocomplete-plugin-algolia-insights" "1.9.3"
"@algolia/autocomplete-shared" "1.9.3"
"@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==
dependencies:
"@algolia/autocomplete-shared" "1.9.3"
"@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==
dependencies:
"@algolia/autocomplete-shared" "1.9.3"
"@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==
dependencies:
"@algolia/cache-common" "4.23.3"
"@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/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==
dependencies:
"@algolia/cache-common" "4.23.3"
"@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==
dependencies:
"@algolia/client-common" "4.23.3"
"@algolia/client-search" "4.23.3"
"@algolia/transporter" "4.23.3"
"@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==
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@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==
dependencies:
"@algolia/requester-common" "4.23.3"
"@algolia/transporter" "4.23.3"
"@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==
dependencies:
"@algolia/client-common" "4.23.3"
"@algolia/requester-common" "4.23.3"
"@algolia/transporter" "4.23.3"
"@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==
dependencies:
"@algolia/client-common" "4.23.3"
"@algolia/requester-common" "4.23.3"
"@algolia/transporter" "4.23.3"
"@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==
dependencies:
"@algolia/logger-common" "4.23.3"
"@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==
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/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==
dependencies:
"@algolia/requester-common" "4.23.3"
"@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==
dependencies:
"@algolia/requester-common" "4.23.3"
"@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==
dependencies:
"@algolia/cache-common" "4.23.3"
"@algolia/logger-common" "4.23.3"
"@algolia/requester-common" "4.23.3"
"@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==
dependencies:
"@docsearch/react" "3.6.0"
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==
dependencies:
"@algolia/autocomplete-core" "1.9.3"
"@algolia/autocomplete-preset-algolia" "1.9.3"
"@docsearch/css" "3.6.0"
algoliasearch "^4.19.1"
"@esbuild/aix-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
"@esbuild/android-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
"@esbuild/android-arm@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
"@esbuild/android-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
"@esbuild/darwin-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
"@esbuild/darwin-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
"@esbuild/freebsd-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
"@esbuild/freebsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
"@esbuild/linux-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
"@esbuild/linux-arm@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
"@esbuild/linux-ia32@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
"@esbuild/linux-loong64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
"@esbuild/linux-mips64el@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
"@esbuild/linux-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
"@esbuild/linux-riscv64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
"@esbuild/linux-s390x@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
"@esbuild/linux-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
"@esbuild/netbsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
"@esbuild/openbsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
"@esbuild/sunos-x64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
"@esbuild/win32-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
"@esbuild/win32-ia32@0.21.5":
version "0.21.5"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
"@esbuild/win32-x64@0.21.5":
version "0.21.5"
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==
"@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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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==
"@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@1.3.0", "@shikijs/core@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.3.0.tgz#5b93b51ddb8def1e3a1543107f9b5b0540f716f6"
integrity sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==
"@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==
dependencies:
shiki "1.3.0"
"@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/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"
estree-walker "^2.0.2"
source-map-js "^1.2.0"
"@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==
dependencies:
"@vue/compiler-core" "3.4.24"
"@vue/shared" "3.4.24"
"@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==
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"
estree-walker "^2.0.2"
magic-string "^0.30.10"
postcss "^8.4.38"
source-map-js "^1.2.0"
"@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==
dependencies:
"@vue/compiler-dom" "3.4.24"
"@vue/shared" "3.4.24"
"@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==
dependencies:
"@vue/devtools-kit" "^7.1.2"
"@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==
dependencies:
"@vue/devtools-shared" "^7.1.2"
hookable "^5.5.3"
mitt "^3.0.1"
perfect-debounce "^1.0.0"
speakingurl "^14.0.1"
"@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==
dependencies:
rfdc "^1.3.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==
dependencies:
"@vue/shared" "3.4.24"
"@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==
dependencies:
"@vue/reactivity" "3.4.24"
"@vue/shared" "3.4.24"
"@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==
dependencies:
"@vue/runtime-core" "3.4.24"
"@vue/shared" "3.4.24"
csstype "^3.1.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==
dependencies:
"@vue/compiler-ssr" "3.4.24"
"@vue/shared" "3.4.24"
"@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==
"@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==
dependencies:
"@types/web-bluetooth" "^0.0.20"
"@vueuse/metadata" "10.9.0"
"@vueuse/shared" "10.9.0"
vue-demi ">=0.14.7"
"@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==
dependencies:
"@vueuse/core" "10.9.0"
"@vueuse/shared" "10.9.0"
vue-demi ">=0.14.7"
"@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/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==
dependencies:
vue-demi ">=0.14.7"
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==
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"
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==
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==
esbuild@^0.21.3:
version "0.21.5"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
optionalDependencies:
"@esbuild/aix-ppc64" "0.21.5"
"@esbuild/android-arm" "0.21.5"
"@esbuild/android-arm64" "0.21.5"
"@esbuild/android-x64" "0.21.5"
"@esbuild/darwin-arm64" "0.21.5"
"@esbuild/darwin-x64" "0.21.5"
"@esbuild/freebsd-arm64" "0.21.5"
"@esbuild/freebsd-x64" "0.21.5"
"@esbuild/linux-arm" "0.21.5"
"@esbuild/linux-arm64" "0.21.5"
"@esbuild/linux-ia32" "0.21.5"
"@esbuild/linux-loong64" "0.21.5"
"@esbuild/linux-mips64el" "0.21.5"
"@esbuild/linux-ppc64" "0.21.5"
"@esbuild/linux-riscv64" "0.21.5"
"@esbuild/linux-s390x" "0.21.5"
"@esbuild/linux-x64" "0.21.5"
"@esbuild/netbsd-x64" "0.21.5"
"@esbuild/openbsd-x64" "0.21.5"
"@esbuild/sunos-x64" "0.21.5"
"@esbuild/win32-arm64" "0.21.5"
"@esbuild/win32-ia32" "0.21.5"
"@esbuild/win32-x64" "0.21.5"
estree-walker@^2.0.2:
version "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==
dependencies:
tabbable "^6.2.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==
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==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
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==
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==
perfect-debounce@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
picocolors@^1.1.1:
version "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==
dependencies:
nanoid "^3.3.8"
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==
rfdc@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f"
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
rollup@^4.20.0:
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.8"
optionalDependencies:
"@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==
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==
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==
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==
vite@^5.2.9, vite@^5.4.21:
version "5.4.21"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027"
integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.43"
rollup "^4.20.0"
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@^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==
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"
mark.js "8.11.1"
minisearch "^6.3.0"
shiki "^1.3.0"
vite "^5.2.9"
vue "^3.4.23"
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==
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"

View File

@@ -21,12 +21,9 @@ SPACE_CADET_ENABLE ?= yes
GENERIC_FEATURES = \ GENERIC_FEATURES = \
AUTO_SHIFT \ AUTO_SHIFT \
AUTOCORRECT \ AUTOCORRECT \
BATTERY \
BOOTMAGIC \
CAPS_WORD \ CAPS_WORD \
COMBO \ COMBO \
COMMAND \ COMMAND \
CONNECTION \
CRC \ CRC \
DEFERRED_EXEC \ DEFERRED_EXEC \
DIGITIZER \ DIGITIZER \
@@ -36,10 +33,8 @@ GENERIC_FEATURES = \
DYNAMIC_TAPPING_TERM \ DYNAMIC_TAPPING_TERM \
GRAVE_ESC \ GRAVE_ESC \
HAPTIC \ HAPTIC \
KEYCODE_STRING \
KEY_LOCK \ KEY_LOCK \
KEY_OVERRIDE \ KEY_OVERRIDE \
LAYER_LOCK \
LEADER \ LEADER \
MAGIC \ MAGIC \
MOUSEKEY \ MOUSEKEY \
@@ -63,7 +58,6 @@ define HANDLE_GENERIC_FEATURE
SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c) SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/nvm/$$(NVM_DRIVER_LOWER)/nvm_$2.c)
VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/) VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/)
OPT_DEFS += -D$1_ENABLE OPT_DEFS += -D$1_ENABLE
endef endef

View File

@@ -1,64 +0,0 @@
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

View File

@@ -67,6 +67,7 @@ OTHER_OPTION_NAMES = \
PS2_DRIVER \ PS2_DRIVER \
RAW_ENABLE \ RAW_ENABLE \
SWAP_HANDS_ENABLE \ SWAP_HANDS_ENABLE \
RING_BUFFERED_6KRO_REPORT_ENABLE \
WATCHDOG_ENABLE \ WATCHDOG_ENABLE \
ERGOINU \ ERGOINU \
NO_USB_STARTUP_CHECK \ NO_USB_STARTUP_CHECK \

View File

@@ -1,11 +0,0 @@
# Helper to determine if a compiler option is supported
# Args:
# $(1) = option to test, if successful will be output
# $(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; }; \
then echo "$(1)"; else echo "$(2)"; fi)
# Helper to pass comma character to make functions (use with `$(,)` to pass in `$(call ...)` arguments)
, := ,

View File

@@ -1,7 +1,6 @@
TEST_LIST = $(sort $(patsubst %/test.mk,%, $(shell find $(ROOT_DIR)tests -type f -name test.mk))) TEST_LIST = $(sort $(patsubst %/test.mk,%, $(shell find $(ROOT_DIR)tests -type f -name test.mk)))
FULL_TESTS := $(notdir $(TEST_LIST)) FULL_TESTS := $(notdir $(TEST_LIST))
include $(QUANTUM_PATH)/battery/tests/testlist.mk
include $(QUANTUM_PATH)/debounce/tests/testlist.mk include $(QUANTUM_PATH)/debounce/tests/testlist.mk
include $(QUANTUM_PATH)/encoder/tests/testlist.mk include $(QUANTUM_PATH)/encoder/tests/testlist.mk
include $(QUANTUM_PATH)/os_detection/tests/testlist.mk include $(QUANTUM_PATH)/os_detection/tests/testlist.mk

View File

@@ -1,407 +0,0 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ 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 │ , │ . │ É │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "FR_HASH",
"label": "#",
}
"KC_1": {
"key": "FR_1",
"label": "1",
}
"KC_2": {
"key": "FR_2",
"label": "2",
}
"KC_3": {
"key": "FR_3",
"label": "3",
}
"KC_4": {
"key": "FR_4",
"label": "4",
}
"KC_5": {
"key": "FR_5",
"label": "5",
}
"KC_6": {
"key": "FR_6",
"label": "6",
}
"KC_7": {
"key": "FR_7",
"label": "7",
}
"KC_8": {
"key": "FR_8",
"label": "8",
}
"KC_9": {
"key": "FR_9",
"label": "9",
}
"KC_0": {
"key": "FR_0",
"label": "0",
}
"KC_MINS": {
"key": "FR_MINS",
"label": "-",
}
"KC_EQL": {
"key": "FR_EQL",
"label": "=",
}
"KC_Q": {
"key": "FR_Q",
"label": "Q",
}
"KC_W": {
"key": "FR_W",
"label": "W",
}
"KC_E": {
"key": "FR_E",
"label": "E",
}
"KC_R": {
"key": "FR_R",
"label": "R",
}
"KC_T": {
"key": "FR_T",
"label": "T",
}
"KC_Y": {
"key": "FR_Y",
"label": "Y",
}
"KC_U": {
"key": "FR_U",
"label": "U",
}
"KC_I": {
"key": "FR_I",
"label": "I",
}
"KC_O": {
"key": "FR_O",
"label": "O",
}
"KC_P": {
"key": "FR_P",
"label": "P",
}
"KC_LBRC": {
"key": "FR_DCIR",
"label": "^ (dead)",
}
"KC_RBRC": {
"key": "FR_CEDL",
"label": "¸ (dead)",
}
"KC_A": {
"key": "FR_A",
"label": "A",
}
"KC_S": {
"key": "FR_S",
"label": "S",
}
"KC_D": {
"key": "FR_D",
"label": "D",
}
"KC_F": {
"key": "FR_F",
"label": "F",
}
"KC_G": {
"key": "FR_G",
"label": "G",
}
"KC_H": {
"key": "FR_H",
"label": "H",
}
"KC_J": {
"key": "FR_J",
"label": "J",
}
"KC_K": {
"key": "FR_K",
"label": "K",
}
"KC_L": {
"key": "FR_L",
"label": "L",
}
"KC_SCLN": {
"key": "FR_SCLN",
"label": ";",
}
"KC_QUOT": {
"key": "FR_DGRV",
"label": "` (dead)",
}
"KC_NUHS": {
"key": "FR_LABK",
"label": "<",
}
"KC_NUBS": {
"key": "FR_LDAQ",
"label": "«",
}
"KC_Z": {
"key": "FR_Z",
"label": "Z",
}
"KC_X": {
"key": "FR_X",
"label": "X",
}
"KC_C": {
"key": "FR_C",
"label": "C",
}
"KC_V": {
"key": "FR_V",
"label": "V",
}
"KC_B": {
"key": "FR_B",
"label": "B",
}
"KC_N": {
"key": "FR_N",
"label": "N",
}
"KC_M": {
"key": "FR_M",
"label": "M",
}
"KC_COMM": {
"key": "FR_COMM",
"label": ",",
}
"KC_DOT": {
"key": "FR_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "FR_EACU",
"label": "É",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ | │ ! │ " │ / │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ : │ │ > │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ » │ │ │ │ │ │ │ │ ' │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(FR_HASH)": {
"key": "FR_PIPE",
"label": "|",
}
"S(FR_1)": {
"key": "FR_EXLM",
"label": "!",
}
"S(FR_2)": {
"key": "FR_DQUO",
"label": "\"",
}
"S(FR_3)": {
"key": "FR_SLSH",
"label": "/",
}
"S(FR_4)": {
"key": "FR_DLR",
"label": "$",
}
"S(FR_5)": {
"key": "FR_PERC",
"label": "%",
}
"S(FR_6)": {
"key": "FR_QUES",
"label": "?",
}
"S(FR_7)": {
"key": "FR_AMPR",
"label": "&",
}
"S(FR_8)": {
"key": "FR_ASTR",
"label": "*",
}
"S(FR_9)": {
"key": "FR_LPRN",
"label": "(",
}
"S(FR_0)": {
"key": "FR_RPRN",
"label": ")",
}
"S(FR_MINS)": {
"key": "FR_UNDS",
"label": "_",
}
"S(FR_EQL)": {
"key": "FR_PLUS",
"label": "+",
}
"S(FR_CEDL)": {
"key": "FR_DIAE",
"label": "¨ (dead)",
}
"S(FR_SCLN)": {
"key": "FR_COLN",
"label": ":",
}
"S(FR_LABK)": {
"key": "FR_RABK",
"label": ">",
}
"S(FR_LDAQ)": {
"key": "FR_RDAQ",
"label": "»",
}
"S(FR_COMM)": {
"key": "FR_QUOT",
"label": "'",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ \ │ ± │ @ │ £ │ ¢ │ ¤ │ ¬ │ ¦ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ° │ │ │ │ │ │ │ µ │ ¯ │ - │ ´ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(FR_HASH)": {
"key": "FR_BSLS",
"label": "\\",
}
"ALGR(FR_1)": {
"key": "FR_PLMN",
"label": "±",
}
"ALGR(FR_2)": {
"key": "FR_AT",
"label": "@",
}
"ALGR(FR_3)": {
"key": "FR_PND",
"label": "£",
}
"ALGR(FR_4)": {
"key": "FR_CENT",
"label": "¢",
}
"ALGR(FR_5)": {
"key": "FR_CURR",
"label": "¤",
}
"ALGR(FR_6)": {
"key": "FR_NOT",
"label": "¬",
}
"ALGR(FR_7)": {
"key": "FR_BRKP",
"label": "¦",
}
"ALGR(FR_8)": {
"key": "FR_SUP2",
"label": "²",
}
"ALGR(FR_9)": {
"key": "FR_SUP3",
"label": "³",
}
"ALGR(FR_0)": {
"key": "FR_QRTR",
"label": "¼",
}
"ALGR(FR_MINS)": {
"key": "FR_HALF",
"label": "½",
}
"ALGR(FR_EQL)": {
"key": "FR_TQTR",
"label": "¾",
}
"ALGR(FR_O)": {
"key": "FR_SECT",
"label": "§",
}
"ALGR(FR_P)": {
"key": "FR_PARA",
"label": "¶",
}
"ALGR(FR_DCIR)": {
"key": "FR_LBRC",
"label": "[",
}
"ALGR(FR_CEDL)": {
"key": "FR_RBRC",
"label": "]",
}
"ALGR(FR_SCLN)": {
"key": "FR_TILD",
"label": "~",
}
"ALGR(FR_DGRV)": {
"key": "FR_LCBR",
"label": "{",
}
"ALGR(FR_LABK)": {
"key": "FR_RCBR",
"label": "}",
}
"ALGR(FR_LDAQ)": {
"key": "FR_DEG",
"label": "°",
}
"ALGR(FR_M)": {
"key": "FR_MICR",
"label": "µ",
}
"ALGR(FR_COMM)": {
"key": "FR_MACR",
"label": "¯",
}
"ALGR(FR_DOT)": {
"key": "FR_SHYP",
"label": "­ (soft hyphen)",
}
"ALGR(FR_EACU)": {
"key": "FR_ACUT",
"label": "´ (dead)",
}
}
}

View File

@@ -1,580 +0,0 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ \ │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ' │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ 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 │ , │ . │ - │ │
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"KC_GRV": {
"key": "CZ_BSLS",
"label": "\\",
}
"KC_1": {
"key": "CZ_PLUS",
"label": "+",
}
"KC_2": {
"key": "CZ_ECAR",
"label": "ě",
}
"KC_3": {
"key": "CZ_SCAR",
"label": "š",
}
"KC_4": {
"key": "CZ_CCAR",
"label": "č",
}
"KC_5": {
"key": "CZ_RCAR",
"label": "ř",
}
"KC_6": {
"key": "CZ_ZCAR",
"label": "ž",
}
"KC_7": {
"key": "CZ_YACU",
"label": "ý",
}
"KC_8": {
"key": "CZ_AACU",
"label": "á",
}
"KC_9": {
"key": "CZ_IACU",
"label": "í",
}
"KC_0": {
"key": "CZ_EACU",
"label": "é",
}
"KC_MINS": {
"key": "CZ_EQL",
"label": "=",
}
"KC_EQL": {
"key": "CZ_ACUT",
"label": "' (dead)",
}
"KC_Q": {
"key": "CZ_Q",
"label": "Q",
}
"KC_W": {
"key": "CZ_W",
"label": "W",
}
"KC_E": {
"key": "CZ_E",
"label": "E",
}
"KC_R": {
"key": "CZ_R",
"label": "R",
}
"KC_T": {
"key": "CZ_T",
"label": "T",
}
"KC_Y": {
"key": "CZ_Z",
"label": "Z",
}
"KC_U": {
"key": "CZ_U",
"label": "U",
}
"KC_I": {
"key": "CZ_I",
"label": "I",
}
"KC_O": {
"key": "CZ_O",
"label": "O",
}
"KC_P": {
"key": "CZ_P",
"label": "P",
}
"KC_LBRC": {
"key": "CZ_UACU",
"label": "ú",
}
"KC_RBRC": {
"key": "CZ_RPRN",
"label": ")",
}
"KC_NUHS": {
"key": "CZ_DIAE",
"label": "¨ (dead)",
}
"KC_A": {
"key": "CZ_A",
"label": "A",
}
"KC_S": {
"key": "CZ_S",
"label": "S",
}
"KC_D": {
"key": "CZ_D",
"label": "D",
}
"KC_F": {
"key": "CZ_F",
"label": "F",
}
"KC_G": {
"key": "CZ_G",
"label": "G",
}
"KC_H": {
"key": "CZ_H",
"label": "H",
}
"KC_J": {
"key": "CZ_J",
"label": "J",
}
"KC_K": {
"key": "CZ_K",
"label": "K",
}
"KC_L": {
"key": "CZ_L",
"label": "L",
}
"KC_SCLN": {
"key": "CZ_URNG",
"label": "ů",
}
"KC_QUOT": {
"key": "CZ_SECT",
"label": "§",
}
"KC_Z": {
"key": "CZ_Y",
"label": "Y",
}
"KC_X": {
"key": "CZ_X",
"label": "X",
}
"KC_C": {
"key": "CZ_C",
"label": "C",
}
"KC_V": {
"key": "CZ_V",
"label": "V",
}
"KC_B": {
"key": "CZ_B",
"label": "B",
}
"KC_N": {
"key": "CZ_N",
"label": "N",
}
"KC_M": {
"key": "CZ_M",
"label": "M",
}
"KC_COMM": {
"key": "CZ_COMM",
"label": ",",
}
"KC_DOT": {
"key": "CZ_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "CZ_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ | │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ ` │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
* │ │ │ │ │ │ │ │ │ │ │ " │ ! │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
* │ │ │ │ │ │ │ │ │ ? │ : │ _ │ │
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(CZ_BSLS)": {
"key": "CZ_PIPE",
"label": "|",
}
"S(CZ_PLUS)": {
"key": "CZ_1",
"label": "1",
}
"S(CZ_ECAR)": {
"key": "CZ_2",
"label": "2",
}
"S(CZ_SCAR)": {
"key": "CZ_3",
"label": "3",
}
"S(CZ_CCAR)": {
"key": "CZ_4",
"label": "4",
}
"S(CZ_RCAR)": {
"key": "CZ_5",
"label": "5",
}
"S(CZ_ZCAR)": {
"key": "CZ_6",
"label": "6",
}
"S(CZ_YACU)": {
"key": "CZ_7",
"label": "7",
}
"S(CZ_AACU)": {
"key": "CZ_8",
"label": "8",
}
"S(CZ_IACU)": {
"key": "CZ_9",
"label": "9",
}
"S(CZ_EACU)": {
"key": "CZ_0",
"label": "0",
}
"S(CZ_EQL)": {
"key": "CZ_PERC",
"label": "%",
}
"S(CZ_ACUT)": {
"key": "CZ_CARN",
"label": "ˇ (dead)",
}
"S(CZ_UACU)": {
"key": "CZ_SLSH",
"label": "/",
}
"S(CZ_RPRN)": {
"key": "CZ_LPRN",
"label": "(",
}
"S(CZ_DIAE)": {
"key": "CZ_GRV",
"label": "`",
}
"S(CZ_URNG)": {
"key": "CZ_DQUO",
"label": "\"",
}
"S(CZ_SECT)": {
"key": "CZ_EXLM",
"label": "!",
}
"S(CZ_COMM)": {
"key": "CZ_QUES",
"label": "?",
}
"S(CZ_DOT)": {
"key": "CZ_COLN",
"label": ":",
}
"S(CZ_MINS)": {
"key": "CZ_UNDS",
"label": "_",
}
/* Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ │ @ │ # │ $ │ ~ │ ^ │ & │ * │ { │ } │ ° │ ^ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ ė │ ę │ € │ │ │ │ │ │ │ [ │ ] │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
* │ │ ą │ ß │ ∂ │ │ │ │ │ ł │ ; │ ' │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
* │ │ │ │ │ │ │ │ │ < │ > │ │ │
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"A(CZ_ECAR)": {
"key": "CZ_AT",
"label": "@",
}
"A(CZ_SCAR)": {
"key": "CZ_HASH",
"label": "#",
}
"A(CZ_CCAR)": {
"key": "CZ_DLR",
"label": "$",
}
"A(CZ_RCAR)": {
"key": "CZ_TILD",
"label": "~",
}
"A(CZ_ZCAR)": {
"key": "CZ_CIRC",
"label": "^",
}
"A(CZ_YACU)": {
"key": "CZ_AMPR",
"label": "&",
}
"A(CZ_AACU)": {
"key": "CZ_ASTR",
"label": "*",
}
"A(CZ_IACU)": {
"key": "CZ_LCBR",
"label": "{",
}
"A(CZ_EACU)": {
"key": "CZ_RCBR",
"label": "}",
}
"A(CZ_EQL)": {
"key": "CZ_RNGA",
"label": "° (dead)",
}
"A(CZ_ACUT)": {
"key": "CZ_DCIR",
"label": "^ (dead)",
}
"A(CZ_W)": {
"key": "CZ_LEDT",
"label": "ė",
}
"A(CZ_E)": {
"key": "CZ_LEOG",
"label": "ę",
}
"A(CZ_R)": {
"key": "CZ_EURO",
"label": "€",
}
"A(CZ_Z)": {
"key": "CZ_LZDT",
"label": "ż",
}
"A(CZ_UACU)": {
"key": "CZ_LBRC",
"label": "[",
}
"A(CZ_RPRN)": {
"key": "CZ_RBRC",
"label": "]",
}
"A(CZ_A)": {
"key": "CZ_LAOG",
"label": "ą",
}
"A(CZ_S)": {
"key": "CZ_SS",
"label": "ß",
}
"A(CZ_D)": {
"key": "CZ_PDIF",
"label": "∂",
}
"A(CZ_H)": {
"key": "CZ_LSQU",
"label": "",
}
"A(CZ_J)": {
"key": "CZ_RSQU",
"label": "",
}
"A(CZ_L)": {
"key": "CZ_LLST",
"label": "ł",
}
"A(CZ_URNG)": {
"key": "CZ_SCLN",
"label": ";",
}
"A(CZ_SECT)": {
"key": "CZ_QUOT",
"label": "'",
}
"A(CZ_N)": {
"key": "CZ_SLQU",
"label": "",
}
"A(CZ_COMM)": {
"key": "CZ_LABK",
"label": "<",
}
"A(CZ_DOT)": {
"key": "CZ_RABK",
"label": ">",
}
"A(CZ_MINS)": {
"key": "CZ_NDSH",
"label": "",
}
/* Shift+Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ ¬ │ • │ ≠ │ £ │ ◊ │ † │ ¶ │ ÷ │ « │ » │ , │ - │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ Ė │ Ę │ ® │ ™ │ Ż │ │ │ │ │ │ " │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
* │ │ Ą │ ∑ │ ∆ │ │ │ “ │ ” │ │ Ł │ … │ ~ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──────┤
* │ │ │ │ © │ √ │ │ „ │ │ ≤ │ ≥ │ — │ │
* ├─────┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(A(CZ_1))": {
"key": "CZ_NOT",
"label": "¬",
}
"S(A(CZ_2))": {
"key": "CZ_BULT",
"label": "•",
}
"S(A(CZ_3))": {
"key": "CZ_NEQL",
"label": "≠",
}
"S(A(CZ_4))": {
"key": "CZ_PND",
"label": "£",
}
"S(A(CZ_5))": {
"key": "CZ_LOZN",
"label": "◊",
}
"S(A(CZ_6))": {
"key": "CZ_DAGG",
"label": "†",
}
"S(A(CZ_7))": {
"key": "CZ_PARA",
"label": "¶",
}
"S(A(CZ_8))": {
"key": "CZ_DIV",
"label": "÷",
}
"S(A(CZ_9))": {
"key": "CZ_LDAQ",
"label": "«",
}
"S(A(CZ_0))": {
"key": "CZ_RDAQ",
"label": "»",
}
"S(A(CZ_EQL))": {
"key": "CZ_DCOM",
"label": ", (dead)",
}
"S(A(CZ_ACUT))": {
"key": "CZ_DHPN",
"label": "- (dead)",
}
"S(A(CZ_W))": {
"key": "CZ_CEDT",
"label": "Ė",
}
"S(A(CZ_E))": {
"key": "CZ_CEOG",
"label": "Ę",
}
"S(A(CZ_R))": {
"key": "CZ_REGD",
"label": "®",
}
"S(A(CZ_T))": {
"key": "CZ_TM",
"label": "™",
}
"S(A(CZ_Z))": {
"key": "CZ_CZDT",
"label": "Ż",
}
"S(A(CZ_UACU))": {
"key": "CZ_LSAQ",
"label": "",
}
"S(A(CZ_RPRN))": {
"key": "CZ_RSAQ",
"label": "",
}
"S(A(CZ_DIAE))": {
"key": "CZ_DDQT",
"label": "\" (dead)",
}
"S(A(CZ_A))": {
"key": "CZ_CAOG",
"label": "Ą",
}
"S(A(CZ_S))": {
"key": "CZ_NARS",
"label": "∑",
}
"S(A(CZ_D))": {
"key": "CZ_INCR",
"label": "∆",
}
"S(A(CZ_H))": {
"key": "CZ_LDQU",
"label": "“",
}
"S(A(CZ_J))": {
"key": "CZ_RDQU",
"label": "”",
}
"S(A(CZ_L))": {
"key": "CZ_CLST",
"label": "Ł",
}
"S(A(CZ_URNG))": {
"key": "CZ_ELLP",
"label": "…",
}
"S(A(CZ_SECT))": {
"key": "CZ_DTIL",
"label": "~ (dead)",
}
"S(A(CZ_C))": {
"key": "CZ_COPY",
"label": "©",
}
"S(A(CZ_V))": {
"key": "CZ_SQRT",
"label": "√",
}
"S(A(CZ_N))": {
"key": "CZ_DLQU",
"label": "„",
}
"S(A(CZ_COMM))": {
"key": "CZ_LEQL",
"label": "≤",
}
"S(A(CZ_DOT))": {
"key": "CZ_GEQL",
"label": "≥",
}
"S(A(CZ_MINS))": {
"key": "CZ_MDSH",
"label": "—",
}
}
}

View File

@@ -1,580 +0,0 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ + │ ě │ š │ č │ ř │ ž │ ý │ á │ í │ é │ = │ ' │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ ú │ ) │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ů │ § │ ¨ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ \ │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"KC_1": {
"key": "CZ_PLUS",
"label": "+",
}
"KC_2": {
"key": "CZ_ECAR",
"label": "ě",
}
"KC_3": {
"key": "CZ_SCAR",
"label": "š",
}
"KC_4": {
"key": "CZ_CCAR",
"label": "č",
}
"KC_5": {
"key": "CZ_RCAR",
"label": "ř",
}
"KC_6": {
"key": "CZ_ZCAR",
"label": "ž",
}
"KC_7": {
"key": "CZ_YACU",
"label": "ý",
}
"KC_8": {
"key": "CZ_AACU",
"label": "á",
}
"KC_9": {
"key": "CZ_IACU",
"label": "í",
}
"KC_0": {
"key": "CZ_EACU",
"label": "é",
}
"KC_MINS": {
"key": "CZ_EQL",
"label": "=",
}
"KC_EQL": {
"key": "CZ_ACUT",
"label": "' (dead)",
}
"KC_Q": {
"key": "CZ_Q",
"label": "Q",
}
"KC_W": {
"key": "CZ_W",
"label": "W",
}
"KC_E": {
"key": "CZ_E",
"label": "E",
}
"KC_R": {
"key": "CZ_R",
"label": "R",
}
"KC_T": {
"key": "CZ_T",
"label": "T",
}
"KC_Y": {
"key": "CZ_Z",
"label": "Z",
}
"KC_U": {
"key": "CZ_U",
"label": "U",
}
"KC_I": {
"key": "CZ_I",
"label": "I",
}
"KC_O": {
"key": "CZ_O",
"label": "O",
}
"KC_P": {
"key": "CZ_P",
"label": "P",
}
"KC_LBRC": {
"key": "CZ_UACU",
"label": "ú",
}
"KC_RBRC": {
"key": "CZ_RPRN",
"label": ")",
}
"KC_A": {
"key": "CZ_A",
"label": "A",
}
"KC_S": {
"key": "CZ_S",
"label": "S",
}
"KC_D": {
"key": "CZ_D",
"label": "D",
}
"KC_F": {
"key": "CZ_F",
"label": "F",
}
"KC_G": {
"key": "CZ_G",
"label": "G",
}
"KC_H": {
"key": "CZ_H",
"label": "H",
}
"KC_J": {
"key": "CZ_J",
"label": "J",
}
"KC_K": {
"key": "CZ_K",
"label": "K",
}
"KC_L": {
"key": "CZ_L",
"label": "L",
}
"KC_SCLN": {
"key": "CZ_URNG",
"label": "ů",
}
"KC_QUOT": {
"key": "CZ_SECT",
"label": "§",
}
"KC_NUHS": {
"key": "CZ_DIAE",
"label": "¨ (dead)",
}
"KC_NUBS": {
"key": "CZ_BSLS",
"label": "\\",
}
"KC_Z": {
"key": "CZ_Y",
"label": "Y",
}
"KC_X": {
"key": "CZ_X",
"label": "X",
}
"KC_C": {
"key": "CZ_C",
"label": "C",
}
"KC_V": {
"key": "CZ_V",
"label": "V",
}
"KC_B": {
"key": "CZ_B",
"label": "B",
}
"KC_N": {
"key": "CZ_N",
"label": "N",
}
"KC_M": {
"key": "CZ_M",
"label": "M",
}
"KC_COMM": {
"key": "CZ_COMM",
"label": ",",
}
"KC_DOT": {
"key": "CZ_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "CZ_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ % │ ˇ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ │ │ │ │ │ │ │ │ │ / │ ( │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ " │ ! │ ` │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ | │ │ │ │ │ │ │ │ ? │ : │ _ │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(CZ_PLUS)": {
"key": "CZ_1",
"label": "1",
}
"S(CZ_ECAR)": {
"key": "CZ_2",
"label": "2",
}
"S(CZ_SCAR)": {
"key": "CZ_3",
"label": "3",
}
"S(CZ_CCAR)": {
"key": "CZ_4",
"label": "4",
}
"S(CZ_RCAR)": {
"key": "CZ_5",
"label": "5",
}
"S(CZ_ZCAR)": {
"key": "CZ_6",
"label": "6",
}
"S(CZ_YACU)": {
"key": "CZ_7",
"label": "7",
}
"S(CZ_AACU)": {
"key": "CZ_8",
"label": "8",
}
"S(CZ_IACU)": {
"key": "CZ_9",
"label": "9",
}
"S(CZ_EACU)": {
"key": "CZ_0",
"label": "0",
}
"S(CZ_EQL)": {
"key": "CZ_PERC",
"label": "%",
}
"S(CZ_ACUT)": {
"key": "CZ_CARN",
"label": "ˇ (dead)",
}
"S(CZ_UACU)": {
"key": "CZ_SLSH",
"label": "/",
}
"S(CZ_RPRN)": {
"key": "CZ_LPRN",
"label": "(",
}
"S(CZ_URNG)": {
"key": "CZ_DQUO",
"label": "\"",
}
"S(CZ_SECT)": {
"key": "CZ_EXLM",
"label": "!",
}
"S(CZ_DIAE)": {
"key": "CZ_GRV",
"label": "`",
}
"S(CZ_BSLS)": {
"key": "CZ_PIPE",
"label": "|",
}
"S(CZ_COMM)": {
"key": "CZ_QUES",
"label": "?",
}
"S(CZ_DOT)": {
"key": "CZ_COLN",
"label": ":",
}
"S(CZ_MINS)": {
"key": "CZ_UNDS",
"label": "_",
}
/* Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ │ @ │ # │ $ │ ~ │ ^ │ & │ * │ { │ } │ ° │ ^ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ ė │ ę │ € │ │ ż │ │ │ │ │ [ │ ] │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ ą │ ß │ ∂ │ │ │ │ │ ł │ ; │ ' │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ │ │ │ │ │ │ │ │ < │ > │ │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"A(CZ_ECAR)": {
"key": "CZ_AT",
"label": "@",
}
"A(CZ_SCAR)": {
"key": "CZ_HASH",
"label": "#",
}
"A(CZ_CCAR)": {
"key": "CZ_DLR",
"label": "$",
}
"A(CZ_RCAR)": {
"key": "CZ_TILD",
"label": "~",
}
"A(CZ_ZCAR)": {
"key": "CZ_CIRC",
"label": "^",
}
"A(CZ_YACU)": {
"key": "CZ_AMPR",
"label": "&",
}
"A(CZ_AACU)": {
"key": "CZ_ASTR",
"label": "*",
}
"A(CZ_IACU)": {
"key": "CZ_LCBR",
"label": "{",
}
"A(CZ_EACU)": {
"key": "CZ_RCBR",
"label": "}",
}
"A(CZ_EQL)": {
"key": "CZ_RNGA",
"label": "° (dead)",
}
"A(CZ_ACUT)": {
"key": "CZ_DCIR",
"label": "^ (dead)",
}
"A(CZ_W)": {
"key": "CZ_LEDT",
"label": "ė",
}
"A(CZ_E)": {
"key": "CZ_LEOG",
"label": "ę",
}
"A(CZ_R)": {
"key": "CZ_EURO",
"label": "€",
}
"A(CZ_Z)": {
"key": "CZ_LZDT",
"label": "ż",
}
"A(CZ_UACU)": {
"key": "CZ_LBRC",
"label": "[",
}
"A(CZ_RPRN)": {
"key": "CZ_RBRC",
"label": "]",
}
"A(CZ_A)": {
"key": "CZ_LAOG",
"label": "ą",
}
"A(CZ_S)": {
"key": "CZ_SS",
"label": "ß",
}
"A(CZ_D)": {
"key": "CZ_PDIF",
"label": "∂",
}
"A(CZ_H)": {
"key": "CZ_LSQU",
"label": "",
}
"A(CZ_J)": {
"key": "CZ_RSQU",
"label": "",
}
"A(CZ_L)": {
"key": "CZ_LLST",
"label": "ł",
}
"A(CZ_URNG)": {
"key": "CZ_SCLN",
"label": ";",
}
"A(CZ_SECT)": {
"key": "CZ_QUOT",
"label": "'",
}
"A(CZ_N)": {
"key": "CZ_SLQU",
"label": "",
}
"A(CZ_COMM)": {
"key": "CZ_LABK",
"label": "<",
}
"A(CZ_DOT)": {
"key": "CZ_RABK",
"label": ">",
}
"A(CZ_MINS)": {
"key": "CZ_NDSH",
"label": "",
}
/* Shift+Alted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
* │ │ ¬ │ • │ ≠ │ £ │ ◊ │ † │ ¶ │ ÷ │ « │ » │ , │ - │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
* │ │ │ Ė │ Ę │ ® │ ™ │ Ż │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ Ą │ ∑ │ ∆ │ │ │ “ │ ” │ │ Ł │ … │ ~ │ " │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
* │ │ │ │ │ © │ √ │ │ „ │ │ ≤ │ ≥ │ — │ │
* ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
* │ │ │ │ │ │ │ │
* └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
*/
"S(A(CZ_1))": {
"key": "CZ_NOT",
"label": "¬",
}
"S(A(CZ_2))": {
"key": "CZ_BULT",
"label": "•",
}
"S(A(CZ_3))": {
"key": "CZ_NEQL",
"label": "≠",
}
"S(A(CZ_4))": {
"key": "CZ_PND",
"label": "£",
}
"S(A(CZ_5))": {
"key": "CZ_LOZN",
"label": "◊",
}
"S(A(CZ_6))": {
"key": "CZ_DAGG",
"label": "†",
}
"S(A(CZ_7))": {
"key": "CZ_PARA",
"label": "¶",
}
"S(A(CZ_8))": {
"key": "CZ_DIV",
"label": "÷",
}
"S(A(CZ_9))": {
"key": "CZ_LDAQ",
"label": "«",
}
"S(A(CZ_0))": {
"key": "CZ_RDAQ",
"label": "»",
}
"S(A(CZ_EQL))": {
"key": "CZ_DCOM",
"label": ", (dead)",
}
"S(A(CZ_ACUT))": {
"key": "CZ_DHPN",
"label": "- (dead)",
}
"S(A(CZ_W))": {
"key": "CZ_CEDT",
"label": "Ė",
}
"S(A(CZ_E))": {
"key": "CZ_CEOG",
"label": "Ę",
}
"S(A(CZ_R))": {
"key": "CZ_REGD",
"label": "®",
}
"S(A(CZ_T))": {
"key": "CZ_TM",
"label": "™",
}
"S(A(CZ_Z))": {
"key": "CZ_CZDT",
"label": "Ż",
}
"S(A(CZ_UACU))": {
"key": "CZ_LSAQ",
"label": "",
}
"S(A(CZ_RPRN))": {
"key": "CZ_RSAQ",
"label": "",
}
"S(A(CZ_A))": {
"key": "CZ_CAOG",
"label": "Ą",
}
"S(A(CZ_S))": {
"key": "CZ_NARS",
"label": "∑",
}
"S(A(CZ_D))": {
"key": "CZ_INCR",
"label": "∆",
}
"S(A(CZ_H))": {
"key": "CZ_LDQU",
"label": "“",
}
"S(A(CZ_J))": {
"key": "CZ_RDQU",
"label": "”",
}
"S(A(CZ_L))": {
"key": "CZ_CLST",
"label": "Ł",
}
"S(A(CZ_URNG))": {
"key": "CZ_ELLP",
"label": "…",
}
"S(A(CZ_SECT))": {
"key": "CZ_DTIL",
"label": "~ (dead)",
}
"S(A(CZ_DIAE))": {
"key": "CZ_DDQT",
"label": "\" (dead)",
}
"S(A(CZ_C))": {
"key": "CZ_COPY",
"label": "©",
}
"S(A(CZ_V))": {
"key": "CZ_SQRT",
"label": "√",
}
"S(A(CZ_N))": {
"key": "CZ_DLQU",
"label": "„",
}
"S(A(CZ_COMM))": {
"key": "CZ_LEQL",
"label": "≤",
}
"S(A(CZ_DOT))": {
"key": "CZ_GEQL",
"label": "≥",
}
"S(A(CZ_MINS))": {
"key": "CZ_MDSH",
"label": "—",
}
}
}

View File

@@ -1,596 +0,0 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ 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 │ , │ . │ / │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "EU_GRV",
"label": "`",
}
"KC_1": {
"key": "EU_1",
"label": "1",
}
"KC_2": {
"key": "EU_2",
"label": "2",
}
"KC_3": {
"key": "EU_3",
"label": "3",
}
"KC_4": {
"key": "EU_4",
"label": "4",
}
"KC_5": {
"key": "EU_5",
"label": "5",
}
"KC_6": {
"key": "EU_6",
"label": "6",
}
"KC_7": {
"key": "EU_7",
"label": "7",
}
"KC_8": {
"key": "EU_8",
"label": "8",
}
"KC_9": {
"key": "EU_9",
"label": "9",
}
"KC_0": {
"key": "EU_0",
"label": "0",
}
"KC_MINS": {
"key": "EU_MINS",
"label": "-",
}
"KC_EQL": {
"key": "EU_EQL",
"label": "=",
}
"KC_Q": {
"key": "EU_Q",
"label": "Q",
}
"KC_W": {
"key": "EU_W",
"label": "W",
}
"KC_E": {
"key": "EU_E",
"label": "E",
}
"KC_R": {
"key": "EU_R",
"label": "R",
}
"KC_T": {
"key": "EU_T",
"label": "T",
}
"KC_Y": {
"key": "EU_Y",
"label": "Y",
}
"KC_U": {
"key": "EU_U",
"label": "U",
}
"KC_I": {
"key": "EU_I",
"label": "I",
}
"KC_O": {
"key": "EU_O",
"label": "O",
}
"KC_P": {
"key": "EU_P",
"label": "P",
}
"KC_LBRC": {
"key": "EU_LBRC",
"label": "[",
}
"KC_RBRC": {
"key": "EU_RBRC",
"label": "]",
}
"KC_BSLS": {
"key": "EU_BSLS",
"label": "\\",
}
"KC_A": {
"key": "EU_A",
"label": "A",
}
"KC_S": {
"key": "EU_S",
"label": "S",
}
"KC_D": {
"key": "EU_D",
"label": "D",
}
"KC_F": {
"key": "EU_F",
"label": "F",
}
"KC_G": {
"key": "EU_G",
"label": "G",
}
"KC_H": {
"key": "EU_H",
"label": "H",
}
"KC_J": {
"key": "EU_J",
"label": "J",
}
"KC_K": {
"key": "EU_K",
"label": "K",
}
"KC_L": {
"key": "EU_L",
"label": "L",
}
"KC_SCLN": {
"key": "EU_SCLN",
"label": ";",
}
"KC_QUOT": {
"key": "EU_QUOT",
"label": "'",
}
"KC_Z": {
"key": "EU_Z",
"label": "Z",
}
"KC_X": {
"key": "EU_X",
"label": "X",
}
"KC_C": {
"key": "EU_C",
"label": "C",
}
"KC_V": {
"key": "EU_V",
"label": "V",
}
"KC_B": {
"key": "EU_B",
"label": "B",
}
"KC_N": {
"key": "EU_N",
"label": "N",
}
"KC_M": {
"key": "EU_M",
"label": "M",
}
"KC_COMM": {
"key": "EU_COMM",
"label": ",",
}
"KC_DOT": {
"key": "EU_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "EU_SLSH",
"label": "/",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(EU_GRV)": {
"key": "EU_TILD",
"label": "~",
}
"S(EU_1)": {
"key": "EU_EXLM",
"label": "!",
}
"S(EU_2)": {
"key": "EU_AT",
"label": "@",
}
"S(EU_3)": {
"key": "EU_HASH",
"label": "#",
}
"S(EU_4)": {
"key": "EU_DLR",
"label": "$",
}
"S(EU_5)": {
"key": "EU_PERC",
"label": "%",
}
"S(EU_6)": {
"key": "EU_CIRC",
"label": "^",
}
"S(EU_7)": {
"key": "EU_AMPR",
"label": "&",
}
"S(EU_8)": {
"key": "EU_ASTR",
"label": "*",
}
"S(EU_9)": {
"key": "EU_LPRN",
"label": "(",
}
"S(EU_0)": {
"key": "EU_RPRN",
"label": ")",
}
"S(EU_MINS)": {
"key": "EU_UNDS",
"label": "_",
}
"S(EU_EQL)": {
"key": "EU_PLUS",
"label": "+",
}
"S(EU_LBRC)": {
"key": "EU_LCBR",
"label": "{",
}
"S(EU_RBRC)": {
"key": "EU_RCBR",
"label": "}",
}
"S(EU_BSLS)": {
"key": "EU_PIPE",
"label": "|",
}
"S(EU_SCLN)": {
"key": "EU_COLN",
"label": ":",
}
"S(EU_QUOT)": {
"key": "EU_DQUO",
"label": "\"",
}
"S(EU_COMM)": {
"key": "EU_LABK",
"label": "<",
}
"S(EU_DOT)": {
"key": "EU_RABK",
"label": ">",
}
"S(EU_SLSH)": {
"key": "EU_QUES",
"label": "?",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ × │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ à │ á │ ç │ ì │ í │ ñ │ μ │ ò │ ó │ ¿ │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(EU_GRV)": {
"key": "EU_DGRV",
"label": "` (dead)",
}
"ALGR(EU_1)": {
"key": "EU_IEXL",
"label": "¡",
}
"ALGR(EU_2)": {
"key": "EU_FORD",
"label": "ª",
}
"ALGR(EU_3)": {
"key": "EU_MORD",
"label": "º",
}
"ALGR(EU_4)": {
"key": "EU_PND",
"label": "£",
}
"ALGR(EU_5)": {
"key": "EU_EURO",
"label": "€",
}
"ALGR(EU_6)": {
"key": "EU_DCIR",
"label": "^ (dead)",
}
"ALGR(EU_7)": {
"key": "EU_RNGA",
"label": "˚ (dead)",
}
"ALGR(EU_8)": {
"key": "EU_DLQU",
"label": "„",
}
"ALGR(EU_9)": {
"key": "EU_LDQU",
"label": "“",
}
"ALGR(EU_0)": {
"key": "EU_RDQU",
"label": "”",
}
"ALGR(EU_MINS)": {
"key": "EU_NDSH",
"label": "",
}
"ALGR(EU_EQL)": {
"key": "EU_MUL",
"label": "×",
}
"ALGR(EU_Q)": {
"key": "EU_AE",
"label": "æ",
}
"ALGR(EU_W)": {
"key": "EU_ARNG",
"label": "Å",
}
"ALGR(EU_E)": {
"key": "EU_EDIA",
"label": "Ë",
}
"ALGR(EU_R)": {
"key": "EU_YACU",
"label": "Ý",
}
"ALGR(EU_T)": {
"key": "EU_THRN",
"label": "Þ",
}
"ALGR(EU_Y)": {
"key": "EU_YDIA",
"label": "Ÿ",
}
"ALGR(EU_U)": {
"key": "EU_UDIA",
"label": "Ü",
}
"ALGR(EU_I)": {
"key": "EU_IDIA",
"label": "Ï",
}
"ALGR(EU_O)": {
"key": "EU_ODIA",
"label": "Ö",
}
"ALGR(EU_P)": {
"key": "EU_OE",
"label": "Œ",
}
"ALGR(EU_LBRC)": {
"key": "EU_LDAQ",
"label": "«",
}
"ALGR(EU_RBRC)": {
"key": "EU_RDAQ",
"label": "»",
}
"ALGR(EU_BSLS)": {
"key": "EU_NOT",
"label": "¬",
}
"ALGR(EU_A)": {
"key": "EU_ADIA",
"label": "Ä",
}
"ALGR(EU_S)": {
"key": "EU_SS",
"label": "ß",
}
"ALGR(EU_D)": {
"key": "EU_ETH",
"label": "Ð",
}
"ALGR(EU_F)": {
"key": "EU_EGRV",
"label": "È",
}
"ALGR(EU_G)": {
"key": "EU_EACU",
"label": "É",
}
"ALGR(EU_H)": {
"key": "EU_UGRV",
"label": "Ù",
}
"ALGR(EU_J)": {
"key": "EU_UACU",
"label": "Ú",
}
"ALGR(EU_K)": {
"key": "EU_IJ",
"label": "IJ",
}
"ALGR(EU_L)": {
"key": "EU_OSTR",
"label": "Ø",
}
"ALGR(EU_SCLN)": {
"key": "EU_DEG",
"label": "°",
}
"ALGR(EU_QUOT)": {
"key": "EU_ACUT",
"label": "´ (dead)",
}
"ALGR(EU_Z)": {
"key": "EU_AGRV",
"label": "À",
}
"ALGR(EU_X)": {
"key": "EU_AACU",
"label": "Á",
}
"ALGR(EU_C)": {
"key": "EU_CCED",
"label": "Ç",
}
"ALGR(EU_V)": {
"key": "EU_IGRV",
"label": "Ì",
}
"ALGR(EU_B)": {
"key": "EU_IACU",
"label": "Í",
}
"ALGR(EU_N)": {
"key": "EU_NTIL",
"label": "Ñ",
}
"ALGR(EU_M)": {
"key": "EU_DGRK",
"label": "μ (dead Greek key)",
}
"ALGR(EU_COMM)": {
"key": "EU_OGRV",
"label": "Ò",
}
"ALGR(EU_DOT)": {
"key": "EU_OACU",
"label": "Ó",
}
"ALGR(EU_SLSH)": {
"key": "EU_IQUE",
"label": "¿",
}
/* Shift+AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ │ — │ ÷ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ ¦ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
* │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
* │ │ │ │ │ │ │ │ │ │ │ … │ │
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(EU_TILD)": {
"key": "EU_DTIL",
"label": "~ (dead)",
}
"S(ALGR(EU_1))": {
"key": "EU_SUP1",
"label": "¹",
}
"S(ALGR(EU_2))": {
"key": "EU_SUP2",
"label": "²",
}
"S(ALGR(EU_3))": {
"key": "EU_SUP3",
"label": "³",
}
"ALGR(EU_DLR)": {
"key": "EU_YEN",
"label": "¥",
}
"S(EU_EURO)": {
"key": "EU_CENT",
"label": "¢",
}
"S(EU_DCIR)": {
"key": "EU_CARN",
"label": "ˇ (dead)",
}
"S(ALGR(EU_7))": {
"key": "EU_MACR",
"label": "¯ (dead)",
}
"S(EU_DLQU)": {
"key": "EU_SLQU",
"label": "",
}
"S(EU_LDQU)": {
"key": "EU_LSQU",
"label": "",
}
"S(EU_RDQU)": {
"key": "EU_RSQU",
"label": "",
}
"S(EU_NDSH)": {
"key": "EU_MDSH",
"label": "—",
}
"S(EU_MUL)": {
"key": "EU_DIV",
"label": "÷",
}
"S(EU_LDAQ)": {
"key": "EU_LSAQ",
"label": "",
}
"S(EU_RDAQ)": {
"key": "EU_RSAQ",
"label": "",
}
"S(ALGR(EU_BSLS))": {
"key": "EU_BRKP",
"label": "¦",
}
"S(ALGR(EU_S))": {
"key": "EU_SECT",
"label": "§",
}
"S(ALGR(EU_SCLN))": {
"key": "EU_MDDT",
"label": "·",
}
"ALGR(EU_DQUO)": {
"key": "EU_DIAE",
"label": "¨ (dead)",
}
"ALGR(EU_QUES)": {
"key": "EU_ELLP",
"label": "…",
}
}
}

View File

@@ -1,616 +0,0 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ ۱ │ ۲ │ ۳ │ ۴ │ ۵ │ ۶ │ ۷ │ ۸ │ ۹ │ ۰ │ - │ = │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ض │ ص │ ث │ ق │ ف │ غ │ ع │ ه │ خ │ ح │ ج │ چ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ ش │ س │ ی │ ب │ ل │ ا │ ت │ ن │ م │ ک │ گ │ \ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ < │ ظ │ ط │ ز │ ر │ ذ │ د │ پ │ و │ . │ / │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "FA_ZWJ",
"label": "(zero-width joiner)",
}
"KC_1": {
"key": "FA_1A",
"label": "۱",
}
"KC_2": {
"key": "FA_2A",
"label": "۲",
}
"KC_3": {
"key": "FA_3A",
"label": "۳",
}
"KC_4": {
"key": "FA_4A",
"label": "۴",
}
"KC_5": {
"key": "FA_5A",
"label": "۵",
}
"KC_6": {
"key": "FA_6A",
"label": "۶",
}
"KC_7": {
"key": "FA_7A",
"label": "۷",
}
"KC_8": {
"key": "FA_8A",
"label": "۸",
}
"KC_9": {
"key": "FA_9A",
"label": "۹",
}
"KC_0": {
"key": "FA_0A",
"label": "۰",
}
"KC_MINS": {
"key": "FA_MINS",
"label": "-",
}
"KC_EQL": {
"key": "FA_EQL",
"label": "=",
}
"KC_Q": {
"key": "FA_ZAD",
"label": "ض",
}
"KC_W": {
"key": "FA_SAD",
"label": "ص",
}
"KC_E": {
"key": "FA_SE",
"label": "ث",
}
"KC_R": {
"key": "FA_QAF",
"label": "ق",
}
"KC_T": {
"key": "FA_FE",
"label": "ف",
}
"KC_Y": {
"key": "FA_GHYN",
"label": "غ",
}
"KC_U": {
"key": "FA_EYN",
"label": "ع",
}
"KC_I": {
"key": "FA_HE",
"label": "ه",
}
"KC_O": {
"key": "FA_KHE",
"label": "خ",
}
"KC_P": {
"key": "FA_HEJ",
"label": "ح",
}
"KC_LBRC": {
"key": "FA_JIM",
"label": "ج",
}
"KC_RBRC": {
"key": "FA_CHE",
"label": "چ",
}
"KC_A": {
"key": "FA_SHIN",
"label": "ش",
}
"KC_S": {
"key": "FA_SIN",
"label": "س",
}
"KC_D": {
"key": "FA_YE",
"label": "ی",
}
"KC_F": {
"key": "FA_BE",
"label": "ب",
}
"KC_G": {
"key": "FA_LAM",
"label": "ل",
}
"KC_H": {
"key": "FA_ALEF",
"label": "ا",
}
"KC_J": {
"key": "FA_TE",
"label": "ت",
}
"KC_K": {
"key": "FA_NOON",
"label": "ن",
}
"KC_L": {
"key": "FA_MIM",
"label": "م",
}
"KC_SCLN": {
"key": "FA_KAF",
"label": "ک",
}
"KC_QUOT": {
"key": "FA_GAF",
"label": "گ",
}
"KC_BSLS": {
"key": "FA_BSLS",
"label": "\\",
}
"KC_LT": {
"key": "FA_LT",
"label": "<",
}
"KC_Z": {
"key": "FA_ZA",
"label": "ظ",
}
"KC_X": {
"key": "FA_TA",
"label": "ط",
}
"KC_C": {
"key": "FA_ZE",
"label": "ز",
}
"KC_V": {
"key": "FA_RE",
"label": "ر",
}
"KC_B": {
"key": "FA_ZAL",
"label": "ذ",
}
"KC_N": {
"key": "FA_DAL",
"label": "د",
}
"KC_M": {
"key": "FA_PE",
"label": "پ",
}
"KC_COMM": {
"key": "FA_WAW",
"label": "و",
}
"KC_DOT": {
"key": "FA_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "FA_SLSH",
"label": "/",
}
"KC_SPC": {
"key": "FA_SPC",
"label": " ",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ÷ │ ! │ ٬ │ ٫ │ ﷼ │ ٪ │ × │ ، │ * │ ) │ ( │ ـ │ + │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ْ │ ٌ │ ٍ │ ً │ ُ │ ِ │ َ │ ّ │ ] │ [ │ } │ { │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ ؤ │ ئ │ ي │ إ │ أ │ آ │ ة │ » │ « │ : │ ؛ │ | │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ ك │ ٓ │ ژ │ ٰ │ │ ٔ │ ء │ │ │ ؟ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(FA_ZWJ)": {
"key": "FA_DIV",
"label": "÷",
}
"S(FA_1A)": {
"key": "FA_EXLM",
"label": "!",
}
"S(FA_2A)": {
"key": "FA_THS",
"label": "٬",
}
"S(FA_3A)": {
"key": "FA_DECS",
"label": "٫",
}
"S(FA_4A)": {
"key": "FA_RIAL",
"label": "﷼",
}
"S(FA_5A)": {
"key": "FA_PRCA",
"label": "٪",
}
"S(FA_6A)": {
"key": "FA_MUL",
"label": "×",
}
"S(FA_7A)": {
"key": "FA_COMA",
"label": "،",
}
"S(FA_8A)": {
"key": "FA_ASTR",
"label": "*",
}
"S(FA_9A)": {
"key": "FA_RPRN",
"label": ")",
}
"S(FA_0A)": {
"key": "FA_LPRN",
"label": "(",
}
"S(FA_MINS)": {
"key": "FA_TATW",
"label": "ـ",
}
"S(FA_EQL)": {
"key": "FA_PLUS",
"label": "+",
}
"S(FA_ZAD)": {
"key": "FA_SUK",
"label": "ْ",
}
"S(FA_SAD)": {
"key": "FA_DMTN",
"label": "ٌ",
}
"S(FA_SE)": {
"key": "FA_KSTN",
"label": "ٍ",
}
"S(FA_QAF)": {
"key": "FA_FTHN",
"label": "ً",
}
"S(FA_FE)": {
"key": "FA_DMM",
"label": "ُ",
}
"S(FA_GHYN)": {
"key": "FA_KAS",
"label": "ِ",
}
"S(FA_EYN)": {
"key": "FA_FAT",
"label": "َ",
}
"S(FA_HE)": {
"key": "FA_TSDD",
"label": "",
}
"S(FA_KHE)": {
"key": "FA_RBRC",
"label": "]",
}
"S(FA_HEJ)": {
"key": "FA_LBRC",
"label": "[",
}
"S(FA_JIM)": {
"key": "FA_RCBR",
"label": "}",
}
"S(FA_CHE)": {
"key": "FA_LCBR",
"label": "{",
}
"S(FA_SHIN)": {
"key": "FA_HMZV",
"label": "ؤ",
}
"S(FA_SIN)": {
"key": "FA_HMZY",
"label": "ئ",
}
"S(FA_YE)": {
"key": "FA_YEA",
"label": "ي",
}
"S(FA_BE)": {
"key": "FA_HMZU",
"label": "إ",
}
"S(FA_LAM)": {
"key": "FA_HMZO",
"label": "أ",
}
"S(FA_ALEF)": {
"key": "FA_MALF",
"label": "آ",
}
"S(FA_TE)": {
"key": "FA_TEHM",
"label": "ة",
}
"S(FA_NOON)": {
"key": "FA_RQOT",
"label": "»",
}
"S(FA_MIM)": {
"key": "FA_LQOT",
"label": "«",
}
"S(FA_KAF)": {
"key": "FA_COLN",
"label": ":",
}
"S(FA_GAF)": {
"key": "FA_SCLA",
"label": "؛",
}
"S(FA_LT)": {
"key": "FA_GT",
"label": ">",
}
"S(FA_ZA)": {
"key": "FA_KAFA",
"label": "ك",
}
"S(FA_TA)": {
"key": "FA_MADO",
"label": "ٓ",
}
"S(FA_ZE)": {
"key": "FA_JEH",
"label": "ژ",
}
"S(FA_RE)": {
"key": "FA_SUPA",
"label": "ٰ",
}
"S(FA_ZAL)": {
"key": "FA_ZWNJ",
"label": "(zero-width non-joiner)",
}
"S(FA_DAL)": {
"key": "FA_HMZA",
"label": "ٔ",
}
"S(FA_PE)": {
"key": "FA_HMZ",
"label": "ء",
}
"S(FA_SLSH)": {
"key": "FA_QSA",
"label": "؟",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ~ │ ` │ @ │ # │ $ │ % │ ^ │ & │ • │ │ │ _ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ ° │ │ € │ │ │ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ ى │ │ │ ٱ │ │ ﴿ │ ; │ " │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ | │ │ │ │ ٖ │ │ ٕ │ … │ , │ ' │ ? │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(FA_ZWJ)": {
"key": "FA_TILD",
"label": "~",
}
"ALGR(FA_1A)": {
"key": "FA_GRV",
"label": "`",
}
"ALGR(FA_2A)": {
"key": "FA_AT",
"label": "@",
}
"ALGR(FA_3A)": {
"key": "FA_HASH",
"label": "#",
}
"ALGR(FA_4A)": {
"key": "FA_DLR",
"label": "$",
}
"ALGR(FA_5A)": {
"key": "FA_PERC",
"label": "%",
}
"ALGR(FA_6A)": {
"key": "FA_CIRC",
"label": "^",
}
"ALGR(FA_7A)": {
"key": "FA_AMPR",
"label": "&",
}
"ALGR(FA_8A)": {
"key": "FA_BULT",
"label": "•",
}
"ALGR(FA_9A)": {
"key": "FA_LRM",
"label": "(left-to-right mark)",
}
"ALGR(FA_0A)": {
"key": "FA_RLM",
"label": "(right-to-left mark)",
}
"ALGR(FA_MINS)": {
"key": "FA_UNDS",
"label": "_",
}
"ALGR(FA_EQL)": {
"key": "FA_DMNS",
"label": " (dead)",
}
"ALGR(FA_ZAD)": {
"key": "FA_DEG",
"label": "°",
}
"ALGR(FA_SE)": {
"key": "FA_EURO",
"label": "€",
}
"ALGR(FA_HE)": {
"key": "FA_LRO",
"label": "(left-to-right override)",
}
"ALGR(FA_KHE)": {
"key": "FA_RLO",
"label": "(right-to-left override)",
}
"ALGR(FA_HEJ)": {
"key": "FA_PDF",
"label": "(pop directional formatting)",
}
"ALGR(FA_JIM)": {
"key": "FA_LRE",
"label": "(left-to-right embedding)",
}
"ALGR(FA_CHE)": {
"key": "FA_RLE",
"label": "(right-to-left embedding)",
}
"ALGR(FA_YE)": {
"key": "FA_ALFM",
"label": "ى",
}
"ALGR(FA_ALEF)": {
"key": "FA_ALFW",
"label": "ٱ",
}
"ALGR(FA_NOON)": {
"key": "FA_LORP",
"label": "",
}
"ALGR(FA_MIM)": {
"key": "FA_RORP",
"label": "﴿",
}
"ALGR(FA_KAF)": {
"key": "FA_SCLN",
"label": ";",
}
"ALGR(FA_GAF)": {
"key": "FA_DQT",
"label": "\"",
}
"ALGR(FA_BSLS)": {
"key": "FA_MINA",
"label": "-",
}
"ALGR(FA_ZA)": {
"key": "FA_PIPE",
"label": "|",
}
"ALGR(FA_RE)": {
"key": "FA_SUBA",
"label": "ٖ",
}
"ALGR(FA_DAL)": {
"key": "FA_HMZB",
"label": "ء",
}
"ALGR(FA_PE)": {
"key": "FA_ELLP",
"label": "…",
}
"ALGR(FA_WAW)": {
"key": "FA_COMM",
"label": ",",
}
"ALGR(FA_DOT)": {
"key": "FA_QUOT",
"label": "'",
}
"ALGR(FA_SLSH)": {
"key": "FA_QUES",
"label": "?",
}
/* Shift+AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ ¦ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(ALGR(FA_1A))": {
"key": "FA_1",
"label": "1",
}
"S(ALGR(FA_2A))": {
"key": "FA_2",
"label": "2",
}
"S(ALGR(FA_3A))": {
"key": "FA_3",
"label": "3",
}
"S(ALGR(FA_4A))": {
"key": "FA_4",
"label": "4",
}
"S(ALGR(FA_5A))": {
"key": "FA_5",
"label": "5",
}
"S(ALGR(FA_6A))": {
"key": "FA_6",
"label": "6",
}
"S(ALGR(FA_7A))": {
"key": "FA_7",
"label": "7",
}
"S(ALGR(FA_8A))": {
"key": "FA_8",
"label": "8",
}
"S(ALGR(FA_9A))": {
"key": "FA_9",
"label": "9",
}
"S(ALGR(FA_0A))": {
"key": "FA_0",
"label": "0",
}
"S(ALGR(FA_LT))": {
"key": "FA_BRKP",
"label": "¦",
}
"S(ALGR(FA_SPC))": {
"key": "FA_NNBS",
"label": "(narrow non-breaking space)",
}
}
}

View File

@@ -1,343 +0,0 @@
{
"aliases": {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ | │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ ¿ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ 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 │ , │ . │ - │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"KC_GRV": {
"key": "ES_PIPE",
"label": "|",
}
"KC_1": {
"key": "ES_1",
"label": "1",
}
"KC_2": {
"key": "ES_2",
"label": "2",
}
"KC_3": {
"key": "ES_3",
"label": "3",
}
"KC_4": {
"key": "ES_4",
"label": "4",
}
"KC_5": {
"key": "ES_5",
"label": "5",
}
"KC_6": {
"key": "ES_6",
"label": "6",
}
"KC_7": {
"key": "ES_7",
"label": "7",
}
"KC_8": {
"key": "ES_8",
"label": "8",
}
"KC_9": {
"key": "ES_9",
"label": "9",
}
"KC_0": {
"key": "ES_0",
"label": "0",
}
"KC_MINS": {
"key": "ES_QUOT",
"label": "'",
}
"KC_EQL": {
"key": "ES_IQUE",
"label": "¿",
}
"KC_Q": {
"key": "ES_Q",
"label": "Q",
}
"KC_W": {
"key": "ES_W",
"label": "W",
}
"KC_E": {
"key": "ES_E",
"label": "E",
}
"KC_R": {
"key": "ES_R",
"label": "R",
}
"KC_T": {
"key": "ES_T",
"label": "T",
}
"KC_Y": {
"key": "ES_Y",
"label": "Y",
}
"KC_U": {
"key": "ES_U",
"label": "U",
}
"KC_I": {
"key": "ES_I",
"label": "I",
}
"KC_O": {
"key": "ES_O",
"label": "O",
}
"KC_P": {
"key": "ES_P",
"label": "P",
}
"KC_LBRC": {
"key": "ES_ACUT",
"label": "´ (dead)",
}
"KC_RBRC": {
"key": "ES_PLUS",
"label": "+",
}
"KC_A": {
"key": "ES_A",
"label": "A",
}
"KC_S": {
"key": "ES_S",
"label": "S",
}
"KC_D": {
"key": "ES_D",
"label": "D",
}
"KC_F": {
"key": "ES_F",
"label": "F",
}
"KC_G": {
"key": "ES_G",
"label": "G",
}
"KC_H": {
"key": "ES_H",
"label": "H",
}
"KC_J": {
"key": "ES_J",
"label": "J",
}
"KC_K": {
"key": "ES_K",
"label": "K",
}
"KC_L": {
"key": "ES_L",
"label": "L",
}
"KC_SCLN": {
"key": "ES_NTIL",
"label": "Ñ",
}
"KC_QUOT": {
"key": "ES_LCBR",
"label": "{",
}
"KC_NUHS": {
"key": "ES_RCBR",
"label": "}",
}
"KC_NUBS": {
"key": "ES_LABK",
"label": "<",
}
"KC_Z": {
"key": "ES_Z",
"label": "Z",
}
"KC_X": {
"key": "ES_X",
"label": "X",
}
"KC_C": {
"key": "ES_C",
"label": "C",
}
"KC_V": {
"key": "ES_V",
"label": "V",
}
"KC_B": {
"key": "ES_B",
"label": "B",
}
"KC_N": {
"key": "ES_N",
"label": "N",
}
"KC_M": {
"key": "ES_M",
"label": "M",
}
"KC_COMM": {
"key": "ES_COMM",
"label": ",",
}
"KC_DOT": {
"key": "ES_DOT",
"label": ".",
}
"KC_SLSH": {
"key": "ES_MINS",
"label": "-",
}
/* Shifted symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ° │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ ¡ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ * │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ [ │ ] │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ > │ │ │ │ │ │ │ │ ; │ : │ _ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"S(ES_PIPE)": {
"key": "ES_MORD",
"label": "°",
}
"S(ES_1)": {
"key": "ES_EXLM",
"label": "!",
}
"S(ES_2)": {
"key": "ES_DQUO",
"label": "\"",
}
"S(ES_3)": {
"key": "ES_NUMB",
"label": "#",
}
"S(ES_4)": {
"key": "ES_DLR",
"label": "$",
}
"S(ES_5)": {
"key": "ES_PERC",
"label": "%",
}
"S(ES_6)": {
"key": "ES_AMPR",
"label": "&",
}
"S(ES_7)": {
"key": "ES_SLSH",
"label": "/",
}
"S(ES_8)": {
"key": "ES_LPRN",
"label": "(",
}
"S(ES_9)": {
"key": "ES_RPRN",
"label": ")",
}
"S(ES_0)": {
"key": "ES_EQL",
"label": "=",
}
"S(ES_QUOT)": {
"key": "ES_QUES",
"label": "?",
}
"S(ES_IQUE)": {
"key": "ES_IEXL",
"label": "¡",
}
"S(ES_ACUT)": {
"key": "ES_DIAE",
"label": "¨ (dead)",
}
"S(ES_PLUS)": {
"key": "ES_ASTR",
"label": "*",
}
"S(ES_LCBR)": {
"key": "ES_LBRC",
"label": "[",
}
"S(ES_RCBR)": {
"key": "ES_RBRC",
"label": "]",
}
"S(ES_LABK)": {
"key": "ES_RABK",
"label": ">",
}
"S(ES_COMM)": {
"key": "ES_SCLN",
"label": ";",
}
"S(ES_DOT)": {
"key": "ES_COLN",
"label": ":",
}
"S(ES_MINS)": {
"key": "ES_UNDS",
"label": "_",
}
/* AltGr symbols
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
* │ ¬ │ │ │ │ │ │ │ │ │ │ │ \ │ │ │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
* │ │ @ │ │ │ │ │ │ │ │ │ │ │ ~ │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
* │ │ │ │ │ │ │ │ │ │ │ │ ^ │ ` │ │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
* │ │ │ │ │ │ │ │ │
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
"ALGR(ES_PIPE)": {
"key": "ES_NOT",
"label": "¬",
}
"ALGR(ES_QUOT)": {
"key": "ES_BSLS",
"label": "\\",
}
"ALGR(ES_Q)": {
"key": "ES_AT",
"label": "@",
}
"ALGR(ES_PLUS)": {
"key": "ES_TILD",
"label": "~",
}
"ALGR(ES_LCBR)": {
"key": "ES_CIRC",
"label": "^",
}
"ALGR(KC_NUHS)": {
"key": "ES_GRV",
"label": "`",
}
}
}

View File

@@ -3,7 +3,6 @@
"0x7480": { "0x7480": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_ON", "key": "QK_AUDIO_ON",
"label": "Audio On",
"aliases": [ "aliases": [
"AU_ON" "AU_ON"
] ]
@@ -11,7 +10,6 @@
"0x7481": { "0x7481": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_OFF", "key": "QK_AUDIO_OFF",
"label": "Audio Off",
"aliases": [ "aliases": [
"AU_OFF" "AU_OFF"
] ]
@@ -19,7 +17,6 @@
"0x7482": { "0x7482": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_TOGGLE", "key": "QK_AUDIO_TOGGLE",
"label": "Toggle Audio",
"aliases": [ "aliases": [
"AU_TOGG" "AU_TOGG"
] ]
@@ -28,7 +25,6 @@
"0x748A": { "0x748A": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_CLICKY_TOGGLE", "key": "QK_AUDIO_CLICKY_TOGGLE",
"label": "Toggle Audio Clicky",
"aliases": [ "aliases": [
"CK_TOGG" "CK_TOGG"
] ]
@@ -36,7 +32,6 @@
"0x748B": { "0x748B": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_CLICKY_ON", "key": "QK_AUDIO_CLICKY_ON",
"label": "Audio Clicky On",
"aliases": [ "aliases": [
"CK_ON" "CK_ON"
] ]
@@ -44,7 +39,6 @@
"0x748C": { "0x748C": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_CLICKY_OFF", "key": "QK_AUDIO_CLICKY_OFF",
"label": "Audio Clicky Off",
"aliases": [ "aliases": [
"CK_OFF" "CK_OFF"
] ]
@@ -52,7 +46,6 @@
"0x748D": { "0x748D": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_CLICKY_UP", "key": "QK_AUDIO_CLICKY_UP",
"label": "Audio Clicky Up",
"aliases": [ "aliases": [
"CK_UP" "CK_UP"
] ]
@@ -60,7 +53,6 @@
"0x748E": { "0x748E": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_CLICKY_DOWN", "key": "QK_AUDIO_CLICKY_DOWN",
"label": "Audio Clicky Down",
"aliases": [ "aliases": [
"CK_DOWN" "CK_DOWN"
] ]
@@ -68,7 +60,6 @@
"0x748F": { "0x748F": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_CLICKY_RESET", "key": "QK_AUDIO_CLICKY_RESET",
"label": "Audio Clicky Reset",
"aliases": [ "aliases": [
"CK_RST" "CK_RST"
] ]
@@ -77,7 +68,6 @@
"0x7490": { "0x7490": {
"group": "audio", "group": "audio",
"key": "QK_MUSIC_ON", "key": "QK_MUSIC_ON",
"label": "Music On",
"aliases": [ "aliases": [
"MU_ON" "MU_ON"
] ]
@@ -85,7 +75,6 @@
"0x7491": { "0x7491": {
"group": "audio", "group": "audio",
"key": "QK_MUSIC_OFF", "key": "QK_MUSIC_OFF",
"label": "Music Off",
"aliases": [ "aliases": [
"MU_OFF" "MU_OFF"
] ]
@@ -93,7 +82,6 @@
"0x7492": { "0x7492": {
"group": "audio", "group": "audio",
"key": "QK_MUSIC_TOGGLE", "key": "QK_MUSIC_TOGGLE",
"label": "Toggle Music",
"aliases": [ "aliases": [
"MU_TOGG" "MU_TOGG"
] ]
@@ -101,7 +89,6 @@
"0x7493": { "0x7493": {
"group": "audio", "group": "audio",
"key": "QK_MUSIC_MODE_NEXT", "key": "QK_MUSIC_MODE_NEXT",
"label": "Music Next",
"aliases": [ "aliases": [
"MU_NEXT" "MU_NEXT"
] ]
@@ -110,7 +97,6 @@
"0x7494": { "0x7494": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_VOICE_NEXT", "key": "QK_AUDIO_VOICE_NEXT",
"label": "Audio Voice Next",
"aliases": [ "aliases": [
"AU_NEXT" "AU_NEXT"
] ]
@@ -118,7 +104,6 @@
"0x7495": { "0x7495": {
"group": "audio", "group": "audio",
"key": "QK_AUDIO_VOICE_PREVIOUS", "key": "QK_AUDIO_VOICE_PREVIOUS",
"label": "Audio Voice Previous",
"aliases": [ "aliases": [
"AU_PREV" "AU_PREV"
] ]

View File

@@ -3,7 +3,7 @@
"0x0000": { "0x0000": {
"group": "internal", "group": "internal",
"key": "KC_NO", "key": "KC_NO",
"label": "N/A", "label": "",
"aliases": [ "aliases": [
"XXXXXXX" "XXXXXXX"
] ]
@@ -11,7 +11,7 @@
"0x0001": { "0x0001": {
"group": "internal", "group": "internal",
"key": "KC_TRANSPARENT", "key": "KC_TRANSPARENT",
"label": "Transparent", "label": "",
"aliases": [ "aliases": [
"_______", "_______",
"KC_TRNS" "KC_TRNS"
@@ -634,7 +634,7 @@
"0x0065": { "0x0065": {
"group": "basic", "group": "basic",
"key": "KC_APPLICATION", "key": "KC_APPLICATION",
"label": "App", "label": "Application",
"aliases": [ "aliases": [
"KC_APP" "KC_APP"
] ]
@@ -642,7 +642,7 @@
"0x0066": { "0x0066": {
"group": "basic", "group": "basic",
"key": "KC_KB_POWER", "key": "KC_KB_POWER",
"label": "Power" "label": "Application"
}, },
"0x0067": { "0x0067": {
"group": "basic", "group": "basic",
@@ -1068,7 +1068,7 @@
"0x00A5": { "0x00A5": {
"group": "system", "group": "system",
"key": "KC_SYSTEM_POWER", "key": "KC_SYSTEM_POWER",
"label": "Power", "label": "System Power Down",
"aliases": [ "aliases": [
"KC_PWR" "KC_PWR"
] ]
@@ -1076,7 +1076,7 @@
"0x00A6": { "0x00A6": {
"group": "system", "group": "system",
"key": "KC_SYSTEM_SLEEP", "key": "KC_SYSTEM_SLEEP",
"label": "Sleep", "label": "System Sleep",
"aliases": [ "aliases": [
"KC_SLEP" "KC_SLEP"
] ]
@@ -1084,7 +1084,7 @@
"0x00A7": { "0x00A7": {
"group": "system", "group": "system",
"key": "KC_SYSTEM_WAKE", "key": "KC_SYSTEM_WAKE",
"label": "Wake", "label": "System Wake",
"aliases": [ "aliases": [
"KC_WAKE" "KC_WAKE"
] ]
@@ -1140,7 +1140,7 @@
"0x00AE": { "0x00AE": {
"group": "media", "group": "media",
"key": "KC_MEDIA_PLAY_PAUSE", "key": "KC_MEDIA_PLAY_PAUSE",
"label": "Play/Pause", "label": "Mute",
"aliases": [ "aliases": [
"KC_MPLY" "KC_MPLY"
] ]
@@ -1148,7 +1148,7 @@
"0x00AF": { "0x00AF": {
"group": "media", "group": "media",
"key": "KC_MEDIA_SELECT", "key": "KC_MEDIA_SELECT",
"label": "Media", "label": "Launch Player",
"aliases": [ "aliases": [
"KC_MSEL" "KC_MSEL"
] ]
@@ -1164,12 +1164,12 @@
"0x00B1": { "0x00B1": {
"group": "media", "group": "media",
"key": "KC_MAIL", "key": "KC_MAIL",
"label": "Mail", "label": "Launch Mail"
}, },
"0x00B2": { "0x00B2": {
"group": "media", "group": "media",
"key": "KC_CALCULATOR", "key": "KC_CALCULATOR",
"label": "Calculator", "label": "Launch Calculator",
"aliases": [ "aliases": [
"KC_CALC" "KC_CALC"
] ]
@@ -1177,7 +1177,7 @@
"0x00B3": { "0x00B3": {
"group": "media", "group": "media",
"key": "KC_MY_COMPUTER", "key": "KC_MY_COMPUTER",
"label": "My Computer", "label": "Launch My Computer",
"aliases": [ "aliases": [
"KC_MYCM" "KC_MYCM"
] ]
@@ -1185,7 +1185,7 @@
"0x00B4": { "0x00B4": {
"group": "media", "group": "media",
"key": "KC_WWW_SEARCH", "key": "KC_WWW_SEARCH",
"label": "Search", "label": "Browser Search",
"aliases": [ "aliases": [
"KC_WSCH" "KC_WSCH"
] ]
@@ -1193,7 +1193,7 @@
"0x00B5": { "0x00B5": {
"group": "media", "group": "media",
"key": "KC_WWW_HOME", "key": "KC_WWW_HOME",
"label": "Home", "label": "Browser Home",
"aliases": [ "aliases": [
"KC_WHOM" "KC_WHOM"
] ]
@@ -1201,7 +1201,7 @@
"0x00B6": { "0x00B6": {
"group": "media", "group": "media",
"key": "KC_WWW_BACK", "key": "KC_WWW_BACK",
"label": "Back", "label": "Browser Back",
"aliases": [ "aliases": [
"KC_WBAK" "KC_WBAK"
] ]
@@ -1209,7 +1209,7 @@
"0x00B7": { "0x00B7": {
"group": "media", "group": "media",
"key": "KC_WWW_FORWARD", "key": "KC_WWW_FORWARD",
"label": "Forward", "label": "Browser Forward",
"aliases": [ "aliases": [
"KC_WFWD" "KC_WFWD"
] ]
@@ -1217,7 +1217,7 @@
"0x00B8": { "0x00B8": {
"group": "media", "group": "media",
"key": "KC_WWW_STOP", "key": "KC_WWW_STOP",
"label": "Stop", "label": "Browser Stop",
"aliases": [ "aliases": [
"KC_WSTP" "KC_WSTP"
] ]
@@ -1225,7 +1225,7 @@
"0x00B9": { "0x00B9": {
"group": "media", "group": "media",
"key": "KC_WWW_REFRESH", "key": "KC_WWW_REFRESH",
"label": "Refresh", "label": "Browser Refresh",
"aliases": [ "aliases": [
"KC_WREF" "KC_WREF"
] ]
@@ -1233,7 +1233,7 @@
"0x00BA": { "0x00BA": {
"group": "media", "group": "media",
"key": "KC_WWW_FAVORITES", "key": "KC_WWW_FAVORITES",
"label": "Favorites", "label": "Browser Favorites",
"aliases": [ "aliases": [
"KC_WFAV" "KC_WFAV"
] ]
@@ -1241,7 +1241,7 @@
"0x00BB": { "0x00BB": {
"group": "media", "group": "media",
"key": "KC_MEDIA_FAST_FORWARD", "key": "KC_MEDIA_FAST_FORWARD",
"label": "Fast Forward", "label": "Next Track",
"aliases": [ "aliases": [
"KC_MFFD" "KC_MFFD"
] ]
@@ -1249,7 +1249,7 @@
"0x00BC": { "0x00BC": {
"group": "media", "group": "media",
"key": "KC_MEDIA_REWIND", "key": "KC_MEDIA_REWIND",
"label": "Rewind", "label": "Previous Track",
"aliases": [ "aliases": [
"KC_MRWD" "KC_MRWD"
] ]
@@ -1273,7 +1273,7 @@
"0x00BF": { "0x00BF": {
"group": "media", "group": "media",
"key": "KC_CONTROL_PANEL", "key": "KC_CONTROL_PANEL",
"label": "Control Panel", "label": "Open Control Panel",
"aliases": [ "aliases": [
"KC_CPNL" "KC_CPNL"
] ]
@@ -1281,7 +1281,7 @@
"0x00C0": { "0x00C0": {
"group": "media", "group": "media",
"key": "KC_ASSISTANT", "key": "KC_ASSISTANT",
"label": "Assistant", "label": "Launch Assistant",
"aliases": [ "aliases": [
"KC_ASST" "KC_ASST"
] ]

View File

@@ -3,7 +3,6 @@
"0x7400": { "0x7400": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_0", "key": "QK_JOYSTICK_BUTTON_0",
"label": "Button 0",
"aliases": [ "aliases": [
"JS_0" "JS_0"
] ]
@@ -11,7 +10,6 @@
"0x7401": { "0x7401": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_1", "key": "QK_JOYSTICK_BUTTON_1",
"label": "Button 1",
"aliases": [ "aliases": [
"JS_1" "JS_1"
] ]
@@ -19,7 +17,6 @@
"0x7402": { "0x7402": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_2", "key": "QK_JOYSTICK_BUTTON_2",
"label": "Button 2",
"aliases": [ "aliases": [
"JS_2" "JS_2"
] ]
@@ -27,7 +24,6 @@
"0x7403": { "0x7403": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_3", "key": "QK_JOYSTICK_BUTTON_3",
"label": "Button 3",
"aliases": [ "aliases": [
"JS_3" "JS_3"
] ]
@@ -35,7 +31,6 @@
"0x7404": { "0x7404": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_4", "key": "QK_JOYSTICK_BUTTON_4",
"label": "Button 4",
"aliases": [ "aliases": [
"JS_4" "JS_4"
] ]
@@ -43,7 +38,6 @@
"0x7405": { "0x7405": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_5", "key": "QK_JOYSTICK_BUTTON_5",
"label": "Button 5",
"aliases": [ "aliases": [
"JS_5" "JS_5"
] ]
@@ -51,7 +45,6 @@
"0x7406": { "0x7406": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_6", "key": "QK_JOYSTICK_BUTTON_6",
"label": "Button 6",
"aliases": [ "aliases": [
"JS_6" "JS_6"
] ]
@@ -59,7 +52,6 @@
"0x7407": { "0x7407": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_7", "key": "QK_JOYSTICK_BUTTON_7",
"label": "Button 7",
"aliases": [ "aliases": [
"JS_7" "JS_7"
] ]
@@ -67,7 +59,6 @@
"0x7408": { "0x7408": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_8", "key": "QK_JOYSTICK_BUTTON_8",
"label": "Button 8",
"aliases": [ "aliases": [
"JS_8" "JS_8"
] ]
@@ -75,7 +66,6 @@
"0x7409": { "0x7409": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_9", "key": "QK_JOYSTICK_BUTTON_9",
"label": "Button 9",
"aliases": [ "aliases": [
"JS_9" "JS_9"
] ]
@@ -83,7 +73,6 @@
"0x740A": { "0x740A": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_10", "key": "QK_JOYSTICK_BUTTON_10",
"label": "Button 10",
"aliases": [ "aliases": [
"JS_10" "JS_10"
] ]
@@ -91,7 +80,6 @@
"0x740B": { "0x740B": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_11", "key": "QK_JOYSTICK_BUTTON_11",
"label": "Button 11",
"aliases": [ "aliases": [
"JS_11" "JS_11"
] ]
@@ -99,7 +87,6 @@
"0x740C": { "0x740C": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_12", "key": "QK_JOYSTICK_BUTTON_12",
"label": "Button 12",
"aliases": [ "aliases": [
"JS_12" "JS_12"
] ]
@@ -107,7 +94,6 @@
"0x740D": { "0x740D": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_13", "key": "QK_JOYSTICK_BUTTON_13",
"label": "Button 13",
"aliases": [ "aliases": [
"JS_13" "JS_13"
] ]
@@ -115,7 +101,6 @@
"0x740E": { "0x740E": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_14", "key": "QK_JOYSTICK_BUTTON_14",
"label": "Button 14",
"aliases": [ "aliases": [
"JS_14" "JS_14"
] ]
@@ -123,7 +108,6 @@
"0x740F": { "0x740F": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_15", "key": "QK_JOYSTICK_BUTTON_15",
"label": "Button 15",
"aliases": [ "aliases": [
"JS_15" "JS_15"
] ]
@@ -131,7 +115,6 @@
"0x7410": { "0x7410": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_16", "key": "QK_JOYSTICK_BUTTON_16",
"label": "Button 16",
"aliases": [ "aliases": [
"JS_16" "JS_16"
] ]
@@ -139,7 +122,6 @@
"0x7411": { "0x7411": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_17", "key": "QK_JOYSTICK_BUTTON_17",
"label": "Button 17",
"aliases": [ "aliases": [
"JS_17" "JS_17"
] ]
@@ -147,7 +129,6 @@
"0x7412": { "0x7412": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_18", "key": "QK_JOYSTICK_BUTTON_18",
"label": "Button 18",
"aliases": [ "aliases": [
"JS_18" "JS_18"
] ]
@@ -155,7 +136,6 @@
"0x7413": { "0x7413": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_19", "key": "QK_JOYSTICK_BUTTON_19",
"label": "Button 19",
"aliases": [ "aliases": [
"JS_19" "JS_19"
] ]
@@ -163,7 +143,6 @@
"0x7414": { "0x7414": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_20", "key": "QK_JOYSTICK_BUTTON_20",
"label": "Button 20",
"aliases": [ "aliases": [
"JS_20" "JS_20"
] ]
@@ -171,7 +150,6 @@
"0x7415": { "0x7415": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_21", "key": "QK_JOYSTICK_BUTTON_21",
"label": "Button 21",
"aliases": [ "aliases": [
"JS_21" "JS_21"
] ]
@@ -179,7 +157,6 @@
"0x7416": { "0x7416": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_22", "key": "QK_JOYSTICK_BUTTON_22",
"label": "Button 22",
"aliases": [ "aliases": [
"JS_22" "JS_22"
] ]
@@ -187,7 +164,6 @@
"0x7417": { "0x7417": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_23", "key": "QK_JOYSTICK_BUTTON_23",
"label": "Button 23",
"aliases": [ "aliases": [
"JS_23" "JS_23"
] ]
@@ -195,7 +171,6 @@
"0x7418": { "0x7418": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_24", "key": "QK_JOYSTICK_BUTTON_24",
"label": "Button 24",
"aliases": [ "aliases": [
"JS_24" "JS_24"
] ]
@@ -203,7 +178,6 @@
"0x7419": { "0x7419": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_25", "key": "QK_JOYSTICK_BUTTON_25",
"label": "Button 25",
"aliases": [ "aliases": [
"JS_25" "JS_25"
] ]
@@ -211,7 +185,6 @@
"0x741A": { "0x741A": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_26", "key": "QK_JOYSTICK_BUTTON_26",
"label": "Button 26",
"aliases": [ "aliases": [
"JS_26" "JS_26"
] ]
@@ -219,7 +192,6 @@
"0x741B": { "0x741B": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_27", "key": "QK_JOYSTICK_BUTTON_27",
"label": "Button 27",
"aliases": [ "aliases": [
"JS_27" "JS_27"
] ]
@@ -227,7 +199,6 @@
"0x741C": { "0x741C": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_28", "key": "QK_JOYSTICK_BUTTON_28",
"label": "Button 28",
"aliases": [ "aliases": [
"JS_28" "JS_28"
] ]
@@ -235,7 +206,6 @@
"0x741D": { "0x741D": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_29", "key": "QK_JOYSTICK_BUTTON_29",
"label": "Button 29",
"aliases": [ "aliases": [
"JS_29" "JS_29"
] ]
@@ -243,7 +213,6 @@
"0x741E": { "0x741E": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_30", "key": "QK_JOYSTICK_BUTTON_30",
"label": "Button 30",
"aliases": [ "aliases": [
"JS_30" "JS_30"
] ]
@@ -251,7 +220,6 @@
"0x741F": { "0x741F": {
"group": "joystick", "group": "joystick",
"key": "QK_JOYSTICK_BUTTON_31", "key": "QK_JOYSTICK_BUTTON_31",
"label": "Button 31",
"aliases": [ "aliases": [
"JS_31" "JS_31"
] ]

View File

@@ -3,7 +3,6 @@
"0x7800": { "0x7800": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_ON", "key": "QK_BACKLIGHT_ON",
"label": "Backlight On",
"aliases": [ "aliases": [
"BL_ON" "BL_ON"
] ]
@@ -11,7 +10,6 @@
"0x7801": { "0x7801": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_OFF", "key": "QK_BACKLIGHT_OFF",
"label": "Backlight Off",
"aliases": [ "aliases": [
"BL_OFF" "BL_OFF"
] ]
@@ -19,7 +17,6 @@
"0x7802": { "0x7802": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_TOGGLE", "key": "QK_BACKLIGHT_TOGGLE",
"label": "Toggle Backlight",
"aliases": [ "aliases": [
"BL_TOGG" "BL_TOGG"
] ]
@@ -27,7 +24,6 @@
"0x7803": { "0x7803": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_DOWN", "key": "QK_BACKLIGHT_DOWN",
"label": "Backlight Down",
"aliases": [ "aliases": [
"BL_DOWN" "BL_DOWN"
] ]
@@ -35,7 +31,6 @@
"0x7804": { "0x7804": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_UP", "key": "QK_BACKLIGHT_UP",
"label": "Backlight Up",
"aliases": [ "aliases": [
"BL_UP" "BL_UP"
] ]
@@ -43,7 +38,6 @@
"0x7805": { "0x7805": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_STEP", "key": "QK_BACKLIGHT_STEP",
"label": "Backlight Step",
"aliases": [ "aliases": [
"BL_STEP" "BL_STEP"
] ]
@@ -51,7 +45,6 @@
"0x7806": { "0x7806": {
"group": "backlight", "group": "backlight",
"key": "QK_BACKLIGHT_TOGGLE_BREATHING", "key": "QK_BACKLIGHT_TOGGLE_BREATHING",
"label": "Toggle Breathing",
"aliases": [ "aliases": [
"BL_BRTG" "BL_BRTG"
] ]

View File

@@ -1,9 +1,9 @@
{ {
"keycodes": { "keycodes": {
"0x7700": { "0x7700": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_0", "key": "QK_MACRO_0",
"label": "Macro 0",
"aliases": [ "aliases": [
"MC_0" "MC_0"
] ]
@@ -11,7 +11,6 @@
"0x7701": { "0x7701": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_1", "key": "QK_MACRO_1",
"label": "Macro 1",
"aliases": [ "aliases": [
"MC_1" "MC_1"
] ]
@@ -19,7 +18,6 @@
"0x7702": { "0x7702": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_2", "key": "QK_MACRO_2",
"label": "Macro 2",
"aliases": [ "aliases": [
"MC_2" "MC_2"
] ]
@@ -27,7 +25,6 @@
"0x7703": { "0x7703": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_3", "key": "QK_MACRO_3",
"label": "Macro 3",
"aliases": [ "aliases": [
"MC_3" "MC_3"
] ]
@@ -35,7 +32,6 @@
"0x7704": { "0x7704": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_4", "key": "QK_MACRO_4",
"label": "Macro 4",
"aliases": [ "aliases": [
"MC_4" "MC_4"
] ]
@@ -43,7 +39,6 @@
"0x7705": { "0x7705": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_5", "key": "QK_MACRO_5",
"label": "Macro 5",
"aliases": [ "aliases": [
"MC_5" "MC_5"
] ]
@@ -51,7 +46,6 @@
"0x7706": { "0x7706": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_6", "key": "QK_MACRO_6",
"label": "Macro 6",
"aliases": [ "aliases": [
"MC_6" "MC_6"
] ]
@@ -59,7 +53,6 @@
"0x7707": { "0x7707": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_7", "key": "QK_MACRO_7",
"label": "Macro 7",
"aliases": [ "aliases": [
"MC_7" "MC_7"
] ]
@@ -67,7 +60,6 @@
"0x7708": { "0x7708": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_8", "key": "QK_MACRO_8",
"label": "Macro 8",
"aliases": [ "aliases": [
"MC_8" "MC_8"
] ]
@@ -75,7 +67,6 @@
"0x7709": { "0x7709": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_9", "key": "QK_MACRO_9",
"label": "Macro 9",
"aliases": [ "aliases": [
"MC_9" "MC_9"
] ]
@@ -83,7 +74,6 @@
"0x770A": { "0x770A": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_10", "key": "QK_MACRO_10",
"label": "Macro 10",
"aliases": [ "aliases": [
"MC_10" "MC_10"
] ]
@@ -91,7 +81,6 @@
"0x770B": { "0x770B": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_11", "key": "QK_MACRO_11",
"label": "Macro 11",
"aliases": [ "aliases": [
"MC_11" "MC_11"
] ]
@@ -99,7 +88,6 @@
"0x770C": { "0x770C": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_12", "key": "QK_MACRO_12",
"label": "Macro 12",
"aliases": [ "aliases": [
"MC_12" "MC_12"
] ]
@@ -107,7 +95,6 @@
"0x770D": { "0x770D": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_13", "key": "QK_MACRO_13",
"label": "Macro 13",
"aliases": [ "aliases": [
"MC_13" "MC_13"
] ]
@@ -115,7 +102,6 @@
"0x770E": { "0x770E": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_14", "key": "QK_MACRO_14",
"label": "Macro 14",
"aliases": [ "aliases": [
"MC_14" "MC_14"
] ]
@@ -123,7 +109,6 @@
"0x770F": { "0x770F": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_15", "key": "QK_MACRO_15",
"label": "Macro 15",
"aliases": [ "aliases": [
"MC_15" "MC_15"
] ]
@@ -131,7 +116,6 @@
"0x7710": { "0x7710": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_16", "key": "QK_MACRO_16",
"label": "Macro 16",
"aliases": [ "aliases": [
"MC_16" "MC_16"
] ]
@@ -139,7 +123,6 @@
"0x7711": { "0x7711": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_17", "key": "QK_MACRO_17",
"label": "Macro 17",
"aliases": [ "aliases": [
"MC_17" "MC_17"
] ]
@@ -147,7 +130,6 @@
"0x7712": { "0x7712": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_18", "key": "QK_MACRO_18",
"label": "Macro 18",
"aliases": [ "aliases": [
"MC_18" "MC_18"
] ]
@@ -155,7 +137,6 @@
"0x7713": { "0x7713": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_19", "key": "QK_MACRO_19",
"label": "Macro 19",
"aliases": [ "aliases": [
"MC_19" "MC_19"
] ]
@@ -163,7 +144,6 @@
"0x7714": { "0x7714": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_20", "key": "QK_MACRO_20",
"label": "Macro 20",
"aliases": [ "aliases": [
"MC_20" "MC_20"
] ]
@@ -171,7 +151,6 @@
"0x7715": { "0x7715": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_21", "key": "QK_MACRO_21",
"label": "Macro 21",
"aliases": [ "aliases": [
"MC_21" "MC_21"
] ]
@@ -179,7 +158,6 @@
"0x7716": { "0x7716": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_22", "key": "QK_MACRO_22",
"label": "Macro 22",
"aliases": [ "aliases": [
"MC_22" "MC_22"
] ]
@@ -187,7 +165,6 @@
"0x7717": { "0x7717": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_23", "key": "QK_MACRO_23",
"label": "Macro 23",
"aliases": [ "aliases": [
"MC_23" "MC_23"
] ]
@@ -195,7 +172,6 @@
"0x7718": { "0x7718": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_24", "key": "QK_MACRO_24",
"label": "Macro 24",
"aliases": [ "aliases": [
"MC_24" "MC_24"
] ]
@@ -203,7 +179,6 @@
"0x7719": { "0x7719": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_25", "key": "QK_MACRO_25",
"label": "Macro 25",
"aliases": [ "aliases": [
"MC_25" "MC_25"
] ]
@@ -211,7 +186,6 @@
"0x771A": { "0x771A": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_26", "key": "QK_MACRO_26",
"label": "Macro 26",
"aliases": [ "aliases": [
"MC_26" "MC_26"
] ]
@@ -219,7 +193,6 @@
"0x771B": { "0x771B": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_27", "key": "QK_MACRO_27",
"label": "Macro 27",
"aliases": [ "aliases": [
"MC_27" "MC_27"
] ]
@@ -227,7 +200,6 @@
"0x771C": { "0x771C": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_28", "key": "QK_MACRO_28",
"label": "Macro 28",
"aliases": [ "aliases": [
"MC_28" "MC_28"
] ]
@@ -235,7 +207,6 @@
"0x771D": { "0x771D": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_29", "key": "QK_MACRO_29",
"label": "Macro 29",
"aliases": [ "aliases": [
"MC_29" "MC_29"
] ]
@@ -243,7 +214,6 @@
"0x771E": { "0x771E": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_30", "key": "QK_MACRO_30",
"label": "Macro 30",
"aliases": [ "aliases": [
"MC_30" "MC_30"
] ]
@@ -251,7 +221,6 @@
"0x771F": { "0x771F": {
"group": "macro", "group": "macro",
"key": "QK_MACRO_31", "key": "QK_MACRO_31",
"label": "Macro 31",
"aliases": [ "aliases": [
"MC_31" "MC_31"
] ]

View File

@@ -84,7 +84,7 @@
"group": "midi", "group": "midi",
"key": "QK_MIDI_NOTE_G_SHARP_0", "key": "QK_MIDI_NOTE_G_SHARP_0",
"aliases": [ "aliases": [
"MI_Gs", "MI_Gs"
"MI_Ab" "MI_Ab"
] ]
}, },
@@ -99,7 +99,7 @@
"group": "midi", "group": "midi",
"key": "QK_MIDI_NOTE_A_SHARP_0", "key": "QK_MIDI_NOTE_A_SHARP_0",
"aliases": [ "aliases": [
"MI_As", "MI_As"
"MI_Bb" "MI_Bb"
] ]
}, },

View File

@@ -3,7 +3,6 @@
"0x7440": { "0x7440": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_1", "key": "QK_PROGRAMMABLE_BUTTON_1",
"label": "Button 1",
"aliases": [ "aliases": [
"PB_1" "PB_1"
] ]
@@ -11,7 +10,6 @@
"0x7441": { "0x7441": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_2", "key": "QK_PROGRAMMABLE_BUTTON_2",
"label": "Button 2",
"aliases": [ "aliases": [
"PB_2" "PB_2"
] ]
@@ -19,7 +17,6 @@
"0x7442": { "0x7442": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_3", "key": "QK_PROGRAMMABLE_BUTTON_3",
"label": "Button 3",
"aliases": [ "aliases": [
"PB_3" "PB_3"
] ]
@@ -27,7 +24,6 @@
"0x7443": { "0x7443": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_4", "key": "QK_PROGRAMMABLE_BUTTON_4",
"label": "Button 4",
"aliases": [ "aliases": [
"PB_4" "PB_4"
] ]
@@ -35,7 +31,6 @@
"0x7444": { "0x7444": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_5", "key": "QK_PROGRAMMABLE_BUTTON_5",
"label": "Button 5",
"aliases": [ "aliases": [
"PB_5" "PB_5"
] ]
@@ -43,7 +38,6 @@
"0x7445": { "0x7445": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_6", "key": "QK_PROGRAMMABLE_BUTTON_6",
"label": "Button 6",
"aliases": [ "aliases": [
"PB_6" "PB_6"
] ]
@@ -51,7 +45,6 @@
"0x7446": { "0x7446": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_7", "key": "QK_PROGRAMMABLE_BUTTON_7",
"label": "Button 7",
"aliases": [ "aliases": [
"PB_7" "PB_7"
] ]
@@ -59,7 +52,6 @@
"0x7447": { "0x7447": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_8", "key": "QK_PROGRAMMABLE_BUTTON_8",
"label": "Button 8",
"aliases": [ "aliases": [
"PB_8" "PB_8"
] ]
@@ -67,7 +59,6 @@
"0x7448": { "0x7448": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_9", "key": "QK_PROGRAMMABLE_BUTTON_9",
"label": "Button 9",
"aliases": [ "aliases": [
"PB_9" "PB_9"
] ]
@@ -75,7 +66,6 @@
"0x7449": { "0x7449": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_10", "key": "QK_PROGRAMMABLE_BUTTON_10",
"label": "Button 10",
"aliases": [ "aliases": [
"PB_10" "PB_10"
] ]
@@ -83,7 +73,6 @@
"0x744A": { "0x744A": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_11", "key": "QK_PROGRAMMABLE_BUTTON_11",
"label": "Button 11",
"aliases": [ "aliases": [
"PB_11" "PB_11"
] ]
@@ -91,7 +80,6 @@
"0x744B": { "0x744B": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_12", "key": "QK_PROGRAMMABLE_BUTTON_12",
"label": "Button 12",
"aliases": [ "aliases": [
"PB_12" "PB_12"
] ]
@@ -99,7 +87,6 @@
"0x744C": { "0x744C": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_13", "key": "QK_PROGRAMMABLE_BUTTON_13",
"label": "Button 13",
"aliases": [ "aliases": [
"PB_13" "PB_13"
] ]
@@ -107,7 +94,6 @@
"0x744D": { "0x744D": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_14", "key": "QK_PROGRAMMABLE_BUTTON_14",
"label": "Button 14",
"aliases": [ "aliases": [
"PB_14" "PB_14"
] ]
@@ -115,7 +101,6 @@
"0x744E": { "0x744E": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_15", "key": "QK_PROGRAMMABLE_BUTTON_15",
"label": "Button 15",
"aliases": [ "aliases": [
"PB_15" "PB_15"
] ]
@@ -123,7 +108,6 @@
"0x744F": { "0x744F": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_16", "key": "QK_PROGRAMMABLE_BUTTON_16",
"label": "Button 16",
"aliases": [ "aliases": [
"PB_16" "PB_16"
] ]
@@ -131,7 +115,6 @@
"0x7450": { "0x7450": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_17", "key": "QK_PROGRAMMABLE_BUTTON_17",
"label": "Button 17",
"aliases": [ "aliases": [
"PB_17" "PB_17"
] ]
@@ -139,7 +122,6 @@
"0x7451": { "0x7451": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_18", "key": "QK_PROGRAMMABLE_BUTTON_18",
"label": "Button 18",
"aliases": [ "aliases": [
"PB_18" "PB_18"
] ]
@@ -147,7 +129,6 @@
"0x7452": { "0x7452": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_19", "key": "QK_PROGRAMMABLE_BUTTON_19",
"label": "Button 19",
"aliases": [ "aliases": [
"PB_19" "PB_19"
] ]
@@ -155,7 +136,6 @@
"0x7453": { "0x7453": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_20", "key": "QK_PROGRAMMABLE_BUTTON_20",
"label": "Button 20",
"aliases": [ "aliases": [
"PB_20" "PB_20"
] ]
@@ -163,7 +143,6 @@
"0x7454": { "0x7454": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_21", "key": "QK_PROGRAMMABLE_BUTTON_21",
"label": "Button 21",
"aliases": [ "aliases": [
"PB_21" "PB_21"
] ]
@@ -171,7 +150,6 @@
"0x7455": { "0x7455": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_22", "key": "QK_PROGRAMMABLE_BUTTON_22",
"label": "Button 22",
"aliases": [ "aliases": [
"PB_22" "PB_22"
] ]
@@ -179,7 +157,6 @@
"0x7456": { "0x7456": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_23", "key": "QK_PROGRAMMABLE_BUTTON_23",
"label": "Button 23",
"aliases": [ "aliases": [
"PB_23" "PB_23"
] ]
@@ -187,7 +164,6 @@
"0x7457": { "0x7457": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_24", "key": "QK_PROGRAMMABLE_BUTTON_24",
"label": "Button 24",
"aliases": [ "aliases": [
"PB_24" "PB_24"
] ]
@@ -195,7 +171,6 @@
"0x7458": { "0x7458": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_25", "key": "QK_PROGRAMMABLE_BUTTON_25",
"label": "Button 25",
"aliases": [ "aliases": [
"PB_25" "PB_25"
] ]
@@ -203,7 +178,6 @@
"0x7459": { "0x7459": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_26", "key": "QK_PROGRAMMABLE_BUTTON_26",
"label": "Button 26",
"aliases": [ "aliases": [
"PB_26" "PB_26"
] ]
@@ -211,7 +185,6 @@
"0x745A": { "0x745A": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_27", "key": "QK_PROGRAMMABLE_BUTTON_27",
"label": "Button 27",
"aliases": [ "aliases": [
"PB_27" "PB_27"
] ]
@@ -219,7 +192,6 @@
"0x745B": { "0x745B": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_28", "key": "QK_PROGRAMMABLE_BUTTON_28",
"label": "Button 28",
"aliases": [ "aliases": [
"PB_28" "PB_28"
] ]
@@ -227,7 +199,6 @@
"0x745C": { "0x745C": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_29", "key": "QK_PROGRAMMABLE_BUTTON_29",
"label": "Button 29",
"aliases": [ "aliases": [
"PB_29" "PB_29"
] ]
@@ -235,7 +206,6 @@
"0x745D": { "0x745D": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_30", "key": "QK_PROGRAMMABLE_BUTTON_30",
"label": "Button 30",
"aliases": [ "aliases": [
"PB_30" "PB_30"
] ]
@@ -243,7 +213,6 @@
"0x745E": { "0x745E": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_31", "key": "QK_PROGRAMMABLE_BUTTON_31",
"label": "Button 31",
"aliases": [ "aliases": [
"PB_31" "PB_31"
] ]
@@ -251,7 +220,6 @@
"0x745F": { "0x745F": {
"group": "programmable_button", "group": "programmable_button",
"key": "QK_PROGRAMMABLE_BUTTON_32", "key": "QK_PROGRAMMABLE_BUTTON_32",
"label": "Button 32",
"aliases": [ "aliases": [
"PB_32" "PB_32"
] ]

View File

@@ -3,7 +3,6 @@
"0x7C00": { "0x7C00": {
"group": "quantum", "group": "quantum",
"key": "QK_BOOTLOADER", "key": "QK_BOOTLOADER",
"label": "Bootloader",
"aliases": [ "aliases": [
"QK_BOOT" "QK_BOOT"
] ]
@@ -11,7 +10,6 @@
"0x7C01": { "0x7C01": {
"group": "quantum", "group": "quantum",
"key": "QK_REBOOT", "key": "QK_REBOOT",
"label": "Reboot",
"aliases": [ "aliases": [
"QK_RBT" "QK_RBT"
] ]
@@ -19,7 +17,6 @@
"0x7C02": { "0x7C02": {
"group": "quantum", "group": "quantum",
"key": "QK_DEBUG_TOGGLE", "key": "QK_DEBUG_TOGGLE",
"label": "Toggle Debug",
"aliases": [ "aliases": [
"DB_TOGG" "DB_TOGG"
] ]
@@ -27,21 +24,18 @@
"0x7C03": { "0x7C03": {
"group": "quantum", "group": "quantum",
"key": "QK_CLEAR_EEPROM", "key": "QK_CLEAR_EEPROM",
"label": "Clear EEPROM",
"aliases": [ "aliases": [
"EE_CLR" "EE_CLR"
] ]
}, },
"0x7C04": { "0x7C04": {
"group": "quantum", "group": "quantum",
"key": "QK_MAKE", "key": "QK_MAKE"
"label": "Make"
}, },
"0x7C10": { "0x7C10": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTO_SHIFT_DOWN", "key": "QK_AUTO_SHIFT_DOWN",
"label": "Auto Shift Down",
"aliases": [ "aliases": [
"AS_DOWN" "AS_DOWN"
] ]
@@ -49,7 +43,6 @@
"0x7C11": { "0x7C11": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTO_SHIFT_UP", "key": "QK_AUTO_SHIFT_UP",
"label": "Auto Shift Up",
"aliases": [ "aliases": [
"AS_UP" "AS_UP"
] ]
@@ -57,7 +50,6 @@
"0x7C12": { "0x7C12": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTO_SHIFT_REPORT", "key": "QK_AUTO_SHIFT_REPORT",
"label": "Auto Shift Report",
"aliases": [ "aliases": [
"AS_RPT" "AS_RPT"
] ]
@@ -65,7 +57,6 @@
"0x7C13": { "0x7C13": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTO_SHIFT_ON", "key": "QK_AUTO_SHIFT_ON",
"label": "Auto Shift On",
"aliases": [ "aliases": [
"AS_ON" "AS_ON"
] ]
@@ -73,7 +64,6 @@
"0x7C14": { "0x7C14": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTO_SHIFT_OFF", "key": "QK_AUTO_SHIFT_OFF",
"label": "Auto Shift Off",
"aliases": [ "aliases": [
"AS_OFF" "AS_OFF"
] ]
@@ -81,7 +71,6 @@
"0x7C15": { "0x7C15": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTO_SHIFT_TOGGLE", "key": "QK_AUTO_SHIFT_TOGGLE",
"label": "Toggle Auto Shift",
"aliases": [ "aliases": [
"AS_TOGG" "AS_TOGG"
] ]
@@ -90,7 +79,6 @@
"0x7C16": { "0x7C16": {
"group": "quantum", "group": "quantum",
"key": "QK_GRAVE_ESCAPE", "key": "QK_GRAVE_ESCAPE",
"label": "Grave Esc",
"aliases": [ "aliases": [
"QK_GESC" "QK_GESC"
] ]
@@ -107,7 +95,6 @@
"0x7C18": { "0x7C18": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN", "key": "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN",
"label": "LCtl/(",
"aliases": [ "aliases": [
"SC_LCPO" "SC_LCPO"
] ]
@@ -115,7 +102,6 @@
"0x7C19": { "0x7C19": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE", "key": "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE",
"label": "RCtl/)",
"aliases": [ "aliases": [
"SC_RCPC" "SC_RCPC"
] ]
@@ -123,7 +109,6 @@
"0x7C1A": { "0x7C1A": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN", "key": "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN",
"label": "LSft/)",
"aliases": [ "aliases": [
"SC_LSPO" "SC_LSPO"
] ]
@@ -131,7 +116,6 @@
"0x7C1B": { "0x7C1B": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE", "key": "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE",
"label": "RSft/)",
"aliases": [ "aliases": [
"SC_RSPC" "SC_RSPC"
] ]
@@ -139,7 +123,6 @@
"0x7C1C": { "0x7C1C": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN", "key": "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN",
"label": "LAlt/(",
"aliases": [ "aliases": [
"SC_LAPO" "SC_LAPO"
] ]
@@ -147,7 +130,6 @@
"0x7C1D": { "0x7C1D": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE", "key": "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE",
"label": "RAlt/)",
"aliases": [ "aliases": [
"SC_RAPC" "SC_RAPC"
] ]
@@ -155,7 +137,6 @@
"0x7C1E": { "0x7C1E": {
"group": "quantum", "group": "quantum",
"key": "QK_SPACE_CADET_RIGHT_SHIFT_ENTER", "key": "QK_SPACE_CADET_RIGHT_SHIFT_ENTER",
"label": "RSft/Ent",
"aliases": [ "aliases": [
"SC_SENT" "SC_SENT"
] ]
@@ -186,7 +167,6 @@
"0x7C30": { "0x7C30": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_NEXT", "key": "QK_UNICODE_MODE_NEXT",
"label": "Unicode Mode Next",
"aliases": [ "aliases": [
"UC_NEXT" "UC_NEXT"
] ]
@@ -194,7 +174,6 @@
"0x7C31": { "0x7C31": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_PREVIOUS", "key": "QK_UNICODE_MODE_PREVIOUS",
"label": "Unicode Mode Previous",
"aliases": [ "aliases": [
"UC_PREV" "UC_PREV"
] ]
@@ -202,7 +181,6 @@
"0x7C32": { "0x7C32": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_MACOS", "key": "QK_UNICODE_MODE_MACOS",
"label": "Unicode Mode macOS",
"aliases": [ "aliases": [
"UC_MAC" "UC_MAC"
] ]
@@ -210,7 +188,6 @@
"0x7C33": { "0x7C33": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_LINUX", "key": "QK_UNICODE_MODE_LINUX",
"label": "Unicode Mode Linux",
"aliases": [ "aliases": [
"UC_LINX" "UC_LINX"
] ]
@@ -218,7 +195,6 @@
"0x7C34": { "0x7C34": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_WINDOWS", "key": "QK_UNICODE_MODE_WINDOWS",
"label": "Unicode Mode Windows",
"aliases": [ "aliases": [
"UC_WIN" "UC_WIN"
] ]
@@ -226,7 +202,6 @@
"0x7C35": { "0x7C35": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_BSD", "key": "QK_UNICODE_MODE_BSD",
"label": "Unicode Mode BSD",
"aliases": [ "aliases": [
"UC_BSD" "UC_BSD"
] ]
@@ -234,7 +209,6 @@
"0x7C36": { "0x7C36": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_WINCOMPOSE", "key": "QK_UNICODE_MODE_WINCOMPOSE",
"label": "Unicode Mode WinCompose",
"aliases": [ "aliases": [
"UC_WINC" "UC_WINC"
] ]
@@ -242,7 +216,6 @@
"0x7C37": { "0x7C37": {
"group": "quantum", "group": "quantum",
"key": "QK_UNICODE_MODE_EMACS", "key": "QK_UNICODE_MODE_EMACS",
"label": "Unicode Mode emacs",
"aliases": [ "aliases": [
"UC_EMAC" "UC_EMAC"
] ]
@@ -251,7 +224,6 @@
"0x7C40": { "0x7C40": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_ON", "key": "QK_HAPTIC_ON",
"label": "Haptic On",
"aliases": [ "aliases": [
"HF_ON" "HF_ON"
] ]
@@ -259,7 +231,6 @@
"0x7C41": { "0x7C41": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_OFF", "key": "QK_HAPTIC_OFF",
"label": "Haptic Off",
"aliases": [ "aliases": [
"HF_OFF" "HF_OFF"
] ]
@@ -267,7 +238,6 @@
"0x7C42": { "0x7C42": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_TOGGLE", "key": "QK_HAPTIC_TOGGLE",
"label": "Toggle Haptic",
"aliases": [ "aliases": [
"HF_TOGG" "HF_TOGG"
] ]
@@ -275,7 +245,6 @@
"0x7C43": { "0x7C43": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_RESET", "key": "QK_HAPTIC_RESET",
"label": "Haptic Reset",
"aliases": [ "aliases": [
"HF_RST" "HF_RST"
] ]
@@ -283,7 +252,6 @@
"0x7C44": { "0x7C44": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_FEEDBACK_TOGGLE", "key": "QK_HAPTIC_FEEDBACK_TOGGLE",
"label": "Toggle Haptic Feedback",
"aliases": [ "aliases": [
"HF_FDBK" "HF_FDBK"
] ]
@@ -291,7 +259,6 @@
"0x7C45": { "0x7C45": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_BUZZ_TOGGLE", "key": "QK_HAPTIC_BUZZ_TOGGLE",
"label": "Toggle Haptic Buzz",
"aliases": [ "aliases": [
"HF_BUZZ" "HF_BUZZ"
] ]
@@ -299,7 +266,6 @@
"0x7C46": { "0x7C46": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_MODE_NEXT", "key": "QK_HAPTIC_MODE_NEXT",
"label": "Haptic Mode Next",
"aliases": [ "aliases": [
"HF_NEXT" "HF_NEXT"
] ]
@@ -307,7 +273,6 @@
"0x7C47": { "0x7C47": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_MODE_PREVIOUS", "key": "QK_HAPTIC_MODE_PREVIOUS",
"label": "Haptic Mode Previous",
"aliases": [ "aliases": [
"HF_PREV" "HF_PREV"
] ]
@@ -315,7 +280,6 @@
"0x7C48": { "0x7C48": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_CONTINUOUS_TOGGLE", "key": "QK_HAPTIC_CONTINUOUS_TOGGLE",
"label": "Toggle Haptic Continuous",
"aliases": [ "aliases": [
"HF_CONT" "HF_CONT"
] ]
@@ -323,7 +287,6 @@
"0x7C49": { "0x7C49": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_CONTINUOUS_UP", "key": "QK_HAPTIC_CONTINUOUS_UP",
"label": "Haptic Continuous Up",
"aliases": [ "aliases": [
"HF_CONU" "HF_CONU"
] ]
@@ -331,7 +294,6 @@
"0x7C4A": { "0x7C4A": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_CONTINUOUS_DOWN", "key": "QK_HAPTIC_CONTINUOUS_DOWN",
"label": "Haptic Continuous Down",
"aliases": [ "aliases": [
"HF_COND" "HF_COND"
] ]
@@ -339,7 +301,6 @@
"0x7C4B": { "0x7C4B": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_DWELL_UP", "key": "QK_HAPTIC_DWELL_UP",
"label": "Haptic Dwell Up",
"aliases": [ "aliases": [
"HF_DWLU" "HF_DWLU"
] ]
@@ -347,7 +308,6 @@
"0x7C4C": { "0x7C4C": {
"group": "quantum", "group": "quantum",
"key": "QK_HAPTIC_DWELL_DOWN", "key": "QK_HAPTIC_DWELL_DOWN",
"label": "Haptic Dwell Down",
"aliases": [ "aliases": [
"HF_DWLD" "HF_DWLD"
] ]
@@ -356,7 +316,6 @@
"0x7C50": { "0x7C50": {
"group": "quantum", "group": "quantum",
"key": "QK_COMBO_ON", "key": "QK_COMBO_ON",
"label": "Combo On",
"aliases": [ "aliases": [
"CM_ON" "CM_ON"
] ]
@@ -364,7 +323,6 @@
"0x7C51": { "0x7C51": {
"group": "quantum", "group": "quantum",
"key": "QK_COMBO_OFF", "key": "QK_COMBO_OFF",
"label": "Combo Off",
"aliases": [ "aliases": [
"CM_OFF" "CM_OFF"
] ]
@@ -372,7 +330,6 @@
"0x7C52": { "0x7C52": {
"group": "quantum", "group": "quantum",
"key": "QK_COMBO_TOGGLE", "key": "QK_COMBO_TOGGLE",
"label": "Toggle Combo",
"aliases": [ "aliases": [
"CM_TOGG" "CM_TOGG"
] ]
@@ -381,7 +338,6 @@
"0x7C53": { "0x7C53": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_MACRO_RECORD_START_1", "key": "QK_DYNAMIC_MACRO_RECORD_START_1",
"label": "Dynamic Macro Record 1",
"aliases": [ "aliases": [
"DM_REC1" "DM_REC1"
] ]
@@ -389,7 +345,6 @@
"0x7C54": { "0x7C54": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_MACRO_RECORD_START_2", "key": "QK_DYNAMIC_MACRO_RECORD_START_2",
"label": "Dynamic Macro Record 2",
"aliases": [ "aliases": [
"DM_REC2" "DM_REC2"
] ]
@@ -397,7 +352,6 @@
"0x7C55": { "0x7C55": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_MACRO_RECORD_STOP", "key": "QK_DYNAMIC_MACRO_RECORD_STOP",
"label": "Dynamic Macro Stop Recording",
"aliases": [ "aliases": [
"DM_RSTP" "DM_RSTP"
] ]
@@ -405,7 +359,6 @@
"0x7C56": { "0x7C56": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_MACRO_PLAY_1", "key": "QK_DYNAMIC_MACRO_PLAY_1",
"label": "Dynamic Macro Play 1",
"aliases": [ "aliases": [
"DM_PLY1" "DM_PLY1"
] ]
@@ -413,7 +366,6 @@
"0x7C57": { "0x7C57": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_MACRO_PLAY_2", "key": "QK_DYNAMIC_MACRO_PLAY_2",
"label": "Dynamic Macro Play 2",
"aliases": [ "aliases": [
"DM_PLY2" "DM_PLY2"
] ]
@@ -422,7 +374,6 @@
"0x7C58": { "0x7C58": {
"group": "quantum", "group": "quantum",
"key": "QK_LEADER", "key": "QK_LEADER",
"label": "Leader",
"aliases": [ "aliases": [
"QK_LEAD" "QK_LEAD"
] ]
@@ -430,14 +381,12 @@
"0x7C59": { "0x7C59": {
"group": "quantum", "group": "quantum",
"key": "QK_LOCK", "key": "QK_LOCK"
"label": "Lock"
}, },
"0x7C5A": { "0x7C5A": {
"group": "quantum", "group": "quantum",
"key": "QK_ONE_SHOT_ON", "key": "QK_ONE_SHOT_ON",
"label": "One Shot On",
"aliases": [ "aliases": [
"OS_ON" "OS_ON"
] ]
@@ -445,7 +394,6 @@
"0x7C5B": { "0x7C5B": {
"group": "quantum", "group": "quantum",
"key": "QK_ONE_SHOT_OFF", "key": "QK_ONE_SHOT_OFF",
"label": "One Shot Off",
"aliases": [ "aliases": [
"OS_OFF" "OS_OFF"
] ]
@@ -453,7 +401,6 @@
"0x7C5C": { "0x7C5C": {
"group": "quantum", "group": "quantum",
"key": "QK_ONE_SHOT_TOGGLE", "key": "QK_ONE_SHOT_TOGGLE",
"label": "Toggle One Shot",
"aliases": [ "aliases": [
"OS_TOGG" "OS_TOGG"
] ]
@@ -462,7 +409,6 @@
"0x7C5D": { "0x7C5D": {
"group": "quantum", "group": "quantum",
"key": "QK_KEY_OVERRIDE_TOGGLE", "key": "QK_KEY_OVERRIDE_TOGGLE",
"label": "Toggle Key Overrides",
"aliases": [ "aliases": [
"KO_TOGG" "KO_TOGG"
] ]
@@ -470,7 +416,6 @@
"0x7C5E": { "0x7C5E": {
"group": "quantum", "group": "quantum",
"key": "QK_KEY_OVERRIDE_ON", "key": "QK_KEY_OVERRIDE_ON",
"label": "Key Overrides On",
"aliases": [ "aliases": [
"KO_ON" "KO_ON"
] ]
@@ -478,7 +423,6 @@
"0x7C5F": { "0x7C5F": {
"group": "quantum", "group": "quantum",
"key": "QK_KEY_OVERRIDE_OFF", "key": "QK_KEY_OVERRIDE_OFF",
"label": "Key Overrides Off",
"aliases": [ "aliases": [
"KO_OFF" "KO_OFF"
] ]
@@ -487,7 +431,6 @@
"0x7C60": { "0x7C60": {
"group": "quantum", "group": "quantum",
"key": "QK_SECURE_LOCK", "key": "QK_SECURE_LOCK",
"label": "Lock",
"aliases": [ "aliases": [
"SE_LOCK" "SE_LOCK"
] ]
@@ -495,7 +438,6 @@
"0x7C61": { "0x7C61": {
"group": "quantum", "group": "quantum",
"key": "QK_SECURE_UNLOCK", "key": "QK_SECURE_UNLOCK",
"label": "Unlock",
"aliases": [ "aliases": [
"SE_UNLK" "SE_UNLK"
] ]
@@ -503,7 +445,6 @@
"0x7C62": { "0x7C62": {
"group": "quantum", "group": "quantum",
"key": "QK_SECURE_TOGGLE", "key": "QK_SECURE_TOGGLE",
"label": "Toggle Lock",
"aliases": [ "aliases": [
"SE_TOGG" "SE_TOGG"
] ]
@@ -511,7 +452,6 @@
"0x7C63": { "0x7C63": {
"group": "quantum", "group": "quantum",
"key": "QK_SECURE_REQUEST", "key": "QK_SECURE_REQUEST",
"label": "Request Unlock",
"aliases": [ "aliases": [
"SE_REQ" "SE_REQ"
] ]
@@ -520,7 +460,6 @@
"0x7C70": { "0x7C70": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_TAPPING_TERM_PRINT", "key": "QK_DYNAMIC_TAPPING_TERM_PRINT",
"label": "Print Dynamic Tapping Term",
"aliases": [ "aliases": [
"DT_PRNT" "DT_PRNT"
] ]
@@ -528,7 +467,6 @@
"0x7C71": { "0x7C71": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_TAPPING_TERM_UP", "key": "QK_DYNAMIC_TAPPING_TERM_UP",
"label": "Dynamic Tapping Term Up",
"aliases": [ "aliases": [
"DT_UP" "DT_UP"
] ]
@@ -536,7 +474,6 @@
"0x7C72": { "0x7C72": {
"group": "quantum", "group": "quantum",
"key": "QK_DYNAMIC_TAPPING_TERM_DOWN", "key": "QK_DYNAMIC_TAPPING_TERM_DOWN",
"label": "Dynamic Tapping Term Down",
"aliases": [ "aliases": [
"DT_DOWN" "DT_DOWN"
] ]
@@ -545,7 +482,6 @@
"0x7C73": { "0x7C73": {
"group": "quantum", "group": "quantum",
"key": "QK_CAPS_WORD_TOGGLE", "key": "QK_CAPS_WORD_TOGGLE",
"label": "Toggle Caps Word",
"aliases": [ "aliases": [
"CW_TOGG" "CW_TOGG"
] ]
@@ -554,7 +490,6 @@
"0x7C74": { "0x7C74": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTOCORRECT_ON", "key": "QK_AUTOCORRECT_ON",
"label": "Autocorrect On",
"aliases": [ "aliases": [
"AC_ON" "AC_ON"
] ]
@@ -562,7 +497,6 @@
"0x7C75": { "0x7C75": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTOCORRECT_OFF", "key": "QK_AUTOCORRECT_OFF",
"label": "Autocorrect Off",
"aliases": [ "aliases": [
"AC_OFF" "AC_OFF"
] ]
@@ -570,7 +504,6 @@
"0x7C76": { "0x7C76": {
"group": "quantum", "group": "quantum",
"key": "QK_AUTOCORRECT_TOGGLE", "key": "QK_AUTOCORRECT_TOGGLE",
"label": "Toggle Autocorrect",
"aliases": [ "aliases": [
"AC_TOGG" "AC_TOGG"
] ]

View File

@@ -3,7 +3,7 @@
"0x00C1": { "0x00C1": {
"group": "media", "group": "media",
"key": "KC_MISSION_CONTROL", "key": "KC_MISSION_CONTROL",
"label": "Mission Control", "label": "Open Mission Control",
"aliases": [ "aliases": [
"KC_MCTL" "KC_MCTL"
] ]
@@ -11,7 +11,7 @@
"0x00C2": { "0x00C2": {
"group": "media", "group": "media",
"key": "KC_LAUNCHPAD", "key": "KC_LAUNCHPAD",
"label": "Launchpad", "label": "Open Launchpad",
"aliases": [ "aliases": [
"KC_LPAD" "KC_LPAD"
] ]

View File

@@ -3,162 +3,130 @@
"0x7E00": { "0x7E00": {
"group": "kb", "group": "kb",
"key": "QK_KB_0", "key": "QK_KB_0",
"label": "Keyboard 0"
}, },
"0x7E01": { "0x7E01": {
"group": "kb", "group": "kb",
"key": "QK_KB_1", "key": "QK_KB_1",
"label": "Keyboard 1"
}, },
"0x7E02": { "0x7E02": {
"group": "kb", "group": "kb",
"key": "QK_KB_2", "key": "QK_KB_2",
"label": "Keyboard 2"
}, },
"0x7E03": { "0x7E03": {
"group": "kb", "group": "kb",
"key": "QK_KB_3", "key": "QK_KB_3",
"label": "Keyboard 3"
}, },
"0x7E04": { "0x7E04": {
"group": "kb", "group": "kb",
"key": "QK_KB_4", "key": "QK_KB_4",
"label": "Keyboard 4"
}, },
"0x7E05": { "0x7E05": {
"group": "kb", "group": "kb",
"key": "QK_KB_5", "key": "QK_KB_5",
"label": "Keyboard 5"
}, },
"0x7E06": { "0x7E06": {
"group": "kb", "group": "kb",
"key": "QK_KB_6", "key": "QK_KB_6",
"label": "Keyboard 6"
}, },
"0x7E07": { "0x7E07": {
"group": "kb", "group": "kb",
"key": "QK_KB_7", "key": "QK_KB_7",
"label": "Keyboard 7"
}, },
"0x7E08": { "0x7E08": {
"group": "kb", "group": "kb",
"key": "QK_KB_8", "key": "QK_KB_8",
"label": "Keyboard 8"
}, },
"0x7E09": { "0x7E09": {
"group": "kb", "group": "kb",
"key": "QK_KB_9", "key": "QK_KB_9",
"label": "Keyboard 9"
}, },
"0x7E0A": { "0x7E0A": {
"group": "kb", "group": "kb",
"key": "QK_KB_10", "key": "QK_KB_10",
"label": "Keyboard 10"
}, },
"0x7E0B": { "0x7E0B": {
"group": "kb", "group": "kb",
"key": "QK_KB_11", "key": "QK_KB_11",
"label": "Keyboard 11"
}, },
"0x7E0C": { "0x7E0C": {
"group": "kb", "group": "kb",
"key": "QK_KB_12", "key": "QK_KB_12",
"label": "Keyboard 12"
}, },
"0x7E0D": { "0x7E0D": {
"group": "kb", "group": "kb",
"key": "QK_KB_13", "key": "QK_KB_13",
"label": "Keyboard 13"
}, },
"0x7E0E": { "0x7E0E": {
"group": "kb", "group": "kb",
"key": "QK_KB_14", "key": "QK_KB_14",
"label": "Keyboard 14"
}, },
"0x7E0F": { "0x7E0F": {
"group": "kb", "group": "kb",
"key": "QK_KB_15", "key": "QK_KB_15",
"label": "Keyboard 15"
}, },
"0x7E10": { "0x7E10": {
"group": "kb", "group": "kb",
"key": "QK_KB_16", "key": "QK_KB_16",
"label": "Keyboard 16"
}, },
"0x7E11": { "0x7E11": {
"group": "kb", "group": "kb",
"key": "QK_KB_17", "key": "QK_KB_17",
"label": "Keyboard 17"
}, },
"0x7E12": { "0x7E12": {
"group": "kb", "group": "kb",
"key": "QK_KB_18", "key": "QK_KB_18",
"label": "Keyboard 18"
}, },
"0x7E13": { "0x7E13": {
"group": "kb", "group": "kb",
"key": "QK_KB_19", "key": "QK_KB_19",
"label": "Keyboard 19"
}, },
"0x7E14": { "0x7E14": {
"group": "kb", "group": "kb",
"key": "QK_KB_20", "key": "QK_KB_20",
"label": "Keyboard 20"
}, },
"0x7E15": { "0x7E15": {
"group": "kb", "group": "kb",
"key": "QK_KB_21", "key": "QK_KB_21",
"label": "Keyboard 21"
}, },
"0x7E16": { "0x7E16": {
"group": "kb", "group": "kb",
"key": "QK_KB_22", "key": "QK_KB_22",
"label": "Keyboard 22"
}, },
"0x7E17": { "0x7E17": {
"group": "kb", "group": "kb",
"key": "QK_KB_23", "key": "QK_KB_23",
"label": "Keyboard 23"
}, },
"0x7E18": { "0x7E18": {
"group": "kb", "group": "kb",
"key": "QK_KB_24", "key": "QK_KB_24",
"label": "Keyboard 24"
}, },
"0x7E19": { "0x7E19": {
"group": "kb", "group": "kb",
"key": "QK_KB_25", "key": "QK_KB_25",
"label": "Keyboard 25"
}, },
"0x7E1A": { "0x7E1A": {
"group": "kb", "group": "kb",
"key": "QK_KB_26", "key": "QK_KB_26",
"label": "Keyboard 26"
}, },
"0x7E1B": { "0x7E1B": {
"group": "kb", "group": "kb",
"key": "QK_KB_27", "key": "QK_KB_27",
"label": "Keyboard 27"
}, },
"0x7E1C": { "0x7E1C": {
"group": "kb", "group": "kb",
"key": "QK_KB_28", "key": "QK_KB_28",
"label": "Keyboard 28"
}, },
"0x7E1D": { "0x7E1D": {
"group": "kb", "group": "kb",
"key": "QK_KB_29", "key": "QK_KB_29",
"label": "Keyboard 29"
}, },
"0x7E1E": { "0x7E1E": {
"group": "kb", "group": "kb",
"key": "QK_KB_30", "key": "QK_KB_30",
"label": "Keyboard 30"
}, },
"0x7E1F": { "0x7E1F": {
"group": "kb", "group": "kb",
"key": "QK_KB_31", "key": "QK_KB_31",
"label": "Keyboard 31" },
}
} }
} }

View File

@@ -5,7 +5,6 @@
"0x7000": { "0x7000": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK", "key": "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK",
"label": "Swap LCtl⇄Caps",
"aliases": [ "aliases": [
"CL_SWAP" "CL_SWAP"
] ]
@@ -13,7 +12,6 @@
"0x7001": { "0x7001": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK", "key": "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK",
"label": "Unswap LCtl⇄Caps",
"aliases": [ "aliases": [
"CL_NORM" "CL_NORM"
] ]
@@ -21,7 +19,6 @@
"0x7002": { "0x7002": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK", "key": "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK",
"label": "Toggle LCtl⇄Caps",
"aliases": [ "aliases": [
"CL_TOGG" "CL_TOGG"
] ]
@@ -29,7 +26,6 @@
"0x7003": { "0x7003": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF", "key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF",
"label": "Caps≠LCtl",
"aliases": [ "aliases": [
"CL_CAPS" "CL_CAPS"
] ]
@@ -37,7 +33,6 @@
"0x7004": { "0x7004": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON", "key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON",
"label": "Caps=LCtl",
"aliases": [ "aliases": [
"CL_CTRL" "CL_CTRL"
] ]
@@ -45,7 +40,6 @@
"0x7005": { "0x7005": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_LALT_LGUI", "key": "QK_MAGIC_SWAP_LALT_LGUI",
"label": "Swap LAlt⇄LGUI",
"aliases": [ "aliases": [
"AG_LSWP" "AG_LSWP"
] ]
@@ -53,7 +47,6 @@
"0x7006": { "0x7006": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_LALT_LGUI", "key": "QK_MAGIC_UNSWAP_LALT_LGUI",
"label": "Unswap LAlt⇄LGUI",
"aliases": [ "aliases": [
"AG_LNRM" "AG_LNRM"
] ]
@@ -61,7 +54,6 @@
"0x7007": { "0x7007": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_RALT_RGUI", "key": "QK_MAGIC_SWAP_RALT_RGUI",
"label": "Swap RAlt⇄RGUI",
"aliases": [ "aliases": [
"AG_RSWP" "AG_RSWP"
] ]
@@ -69,7 +61,6 @@
"0x7008": { "0x7008": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_RALT_RGUI", "key": "QK_MAGIC_UNSWAP_RALT_RGUI",
"label": "Unswap RAlt⇄RGUI",
"aliases": [ "aliases": [
"AG_RNRM" "AG_RNRM"
] ]
@@ -77,7 +68,6 @@
"0x7009": { "0x7009": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_GUI_ON", "key": "QK_MAGIC_GUI_ON",
"label": "GUI On",
"aliases": [ "aliases": [
"GU_ON" "GU_ON"
] ]
@@ -85,7 +75,6 @@
"0x700A": { "0x700A": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_GUI_OFF", "key": "QK_MAGIC_GUI_OFF",
"label": "GUI Off",
"aliases": [ "aliases": [
"GU_OFF" "GU_OFF"
] ]
@@ -93,7 +82,6 @@
"0x700B": { "0x700B": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_GUI", "key": "QK_MAGIC_TOGGLE_GUI",
"label": "Toggle GUI",
"aliases": [ "aliases": [
"GU_TOGG" "GU_TOGG"
] ]
@@ -101,7 +89,6 @@
"0x700C": { "0x700C": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_GRAVE_ESC", "key": "QK_MAGIC_SWAP_GRAVE_ESC",
"label": "Swap `⇄Esc",
"aliases": [ "aliases": [
"GE_SWAP" "GE_SWAP"
] ]
@@ -109,7 +96,6 @@
"0x700D": { "0x700D": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_GRAVE_ESC", "key": "QK_MAGIC_UNSWAP_GRAVE_ESC",
"label": "Unswap `⇄Esc",
"aliases": [ "aliases": [
"GE_NORM" "GE_NORM"
] ]
@@ -117,7 +103,6 @@
"0x700E": { "0x700E": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE", "key": "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE",
"label": "Swap \\⇄Bspc",
"aliases": [ "aliases": [
"BS_SWAP" "BS_SWAP"
] ]
@@ -125,7 +110,6 @@
"0x700F": { "0x700F": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE", "key": "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE",
"label": "Unswap \\⇄Bspc",
"aliases": [ "aliases": [
"BS_NORM" "BS_NORM"
] ]
@@ -133,7 +117,6 @@
"0x7010": { "0x7010": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE", "key": "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE",
"label": "Toggle \\⇄Bspc",
"aliases": [ "aliases": [
"BS_TOGG" "BS_TOGG"
] ]
@@ -141,7 +124,6 @@
"0x7011": { "0x7011": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_NKRO_ON", "key": "QK_MAGIC_NKRO_ON",
"label": "NKRO On",
"aliases": [ "aliases": [
"NK_ON" "NK_ON"
] ]
@@ -149,7 +131,6 @@
"0x7012": { "0x7012": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_NKRO_OFF", "key": "QK_MAGIC_NKRO_OFF",
"label": "NKRO Off",
"aliases": [ "aliases": [
"NK_OFF" "NK_OFF"
] ]
@@ -157,7 +138,6 @@
"0x7013": { "0x7013": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_NKRO", "key": "QK_MAGIC_TOGGLE_NKRO",
"label": "Toggle NKRO",
"aliases": [ "aliases": [
"NK_TOGG" "NK_TOGG"
] ]
@@ -165,7 +145,6 @@
"0x7014": { "0x7014": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_ALT_GUI", "key": "QK_MAGIC_SWAP_ALT_GUI",
"label": "Swap Alt⇄GUI",
"aliases": [ "aliases": [
"AG_SWAP" "AG_SWAP"
] ]
@@ -173,7 +152,6 @@
"0x7015": { "0x7015": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_ALT_GUI", "key": "QK_MAGIC_UNSWAP_ALT_GUI",
"label": "Unswap Alt⇄GUI",
"aliases": [ "aliases": [
"AG_NORM" "AG_NORM"
] ]
@@ -181,7 +159,6 @@
"0x7016": { "0x7016": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_ALT_GUI", "key": "QK_MAGIC_TOGGLE_ALT_GUI",
"label": "Toggle Alt⇄GUI",
"aliases": [ "aliases": [
"AG_TOGG" "AG_TOGG"
] ]
@@ -189,7 +166,6 @@
"0x7017": { "0x7017": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_LCTL_LGUI", "key": "QK_MAGIC_SWAP_LCTL_LGUI",
"label": "Swap LCtl⇄LGUI",
"aliases": [ "aliases": [
"CG_LSWP" "CG_LSWP"
] ]
@@ -197,7 +173,6 @@
"0x7018": { "0x7018": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_LCTL_LGUI", "key": "QK_MAGIC_UNSWAP_LCTL_LGUI",
"label": "Unswap LCtl⇄LGUI",
"aliases": [ "aliases": [
"CG_LNRM" "CG_LNRM"
] ]
@@ -205,7 +180,6 @@
"0x7019": { "0x7019": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_RCTL_RGUI", "key": "QK_MAGIC_SWAP_RCTL_RGUI",
"label": "Swap RCtl⇄RGUI",
"aliases": [ "aliases": [
"CG_RSWP" "CG_RSWP"
] ]
@@ -213,7 +187,6 @@
"0x701A": { "0x701A": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_RCTL_RGUI", "key": "QK_MAGIC_UNSWAP_RCTL_RGUI",
"label": "Unswap RCtl⇄RGUI",
"aliases": [ "aliases": [
"CG_RNRM" "CG_RNRM"
] ]
@@ -221,7 +194,6 @@
"0x701B": { "0x701B": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_CTL_GUI", "key": "QK_MAGIC_SWAP_CTL_GUI",
"label": "Swap Ctl⇄GUI",
"aliases": [ "aliases": [
"CG_SWAP" "CG_SWAP"
] ]
@@ -229,7 +201,6 @@
"0x701C": { "0x701C": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_CTL_GUI", "key": "QK_MAGIC_UNSWAP_CTL_GUI",
"label": "Unswap Ctl⇄GUI",
"aliases": [ "aliases": [
"CG_NORM" "CG_NORM"
] ]
@@ -237,7 +208,6 @@
"0x701D": { "0x701D": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_CTL_GUI", "key": "QK_MAGIC_TOGGLE_CTL_GUI",
"label": "Toggle Ctl⇄GUI",
"aliases": [ "aliases": [
"CG_TOGG" "CG_TOGG"
] ]
@@ -245,7 +215,6 @@
"0x701E": { "0x701E": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_EE_HANDS_LEFT", "key": "QK_MAGIC_EE_HANDS_LEFT",
"label": "EE Hands Left",
"aliases": [ "aliases": [
"EH_LEFT" "EH_LEFT"
] ]
@@ -253,7 +222,6 @@
"0x701F": { "0x701F": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_EE_HANDS_RIGHT", "key": "QK_MAGIC_EE_HANDS_RIGHT",
"label": "EE Hands Right",
"aliases": [ "aliases": [
"EH_RGHT" "EH_RGHT"
] ]
@@ -261,7 +229,6 @@
"0x7020": { "0x7020": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK", "key": "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK",
"label": "Swap Esc⇄Caps",
"aliases": [ "aliases": [
"EC_SWAP" "EC_SWAP"
] ]
@@ -269,7 +236,6 @@
"0x7021": { "0x7021": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK", "key": "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK",
"label": "Unswap Esc⇄Caps",
"aliases": [ "aliases": [
"EC_NORM" "EC_NORM"
] ]
@@ -277,7 +243,6 @@
"0x7022": { "0x7022": {
"group": "magic", "group": "magic",
"key": "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK", "key": "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK",
"label": "Toggle Esc⇄Caps",
"aliases": [ "aliases": [
"EC_TOGG" "EC_TOGG"
] ]

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,6 @@
"0x7C77": { "0x7C77": {
"group": "quantum", "group": "quantum",
"key": "QK_TRI_LAYER_LOWER", "key": "QK_TRI_LAYER_LOWER",
"label": "Lower",
"aliases": [ "aliases": [
"TL_LOWR" "TL_LOWR"
] ]
@@ -11,7 +10,6 @@
"0x7C78": { "0x7C78": {
"group": "quantum", "group": "quantum",
"key": "QK_TRI_LAYER_UPPER", "key": "QK_TRI_LAYER_UPPER",
"label": "Upper",
"aliases": [ "aliases": [
"TL_UPPR" "TL_UPPR"
] ]

View File

@@ -5,7 +5,6 @@
"0x7200": { "0x7200": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_ON", "key": "QK_SEQUENCER_ON",
"label": "Sequencer On",
"aliases": [ "aliases": [
"SQ_ON" "SQ_ON"
] ]
@@ -13,7 +12,6 @@
"0x7201": { "0x7201": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_OFF", "key": "QK_SEQUENCER_OFF",
"label": "Sequencer Off",
"aliases": [ "aliases": [
"SQ_OFF" "SQ_OFF"
] ]
@@ -21,7 +19,6 @@
"0x7202": { "0x7202": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_TOGGLE", "key": "QK_SEQUENCER_TOGGLE",
"label": "Toggle Sequencer",
"aliases": [ "aliases": [
"SQ_TOGG" "SQ_TOGG"
] ]
@@ -29,7 +26,6 @@
"0x7203": { "0x7203": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_TEMPO_DOWN", "key": "QK_SEQUENCER_TEMPO_DOWN",
"label": "Tempo Down",
"aliases": [ "aliases": [
"SQ_TMPD" "SQ_TMPD"
] ]
@@ -37,7 +33,6 @@
"0x7204": { "0x7204": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_TEMPO_UP", "key": "QK_SEQUENCER_TEMPO_UP",
"label": "Tempo Up",
"aliases": [ "aliases": [
"SQ_TMPU" "SQ_TMPU"
] ]
@@ -45,7 +40,6 @@
"0x7205": { "0x7205": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_RESOLUTION_DOWN", "key": "QK_SEQUENCER_RESOLUTION_DOWN",
"label": "Resolution Down",
"aliases": [ "aliases": [
"SQ_RESD" "SQ_RESD"
] ]
@@ -53,7 +47,6 @@
"0x7206": { "0x7206": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_RESOLUTION_UP", "key": "QK_SEQUENCER_RESOLUTION_UP",
"label": "Resolution Up",
"aliases": [ "aliases": [
"SQ_RESU" "SQ_RESU"
] ]
@@ -61,7 +54,6 @@
"0x7207": { "0x7207": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_STEPS_ALL", "key": "QK_SEQUENCER_STEPS_ALL",
"label": "All Steps",
"aliases": [ "aliases": [
"SQ_SALL" "SQ_SALL"
] ]
@@ -69,7 +61,6 @@
"0x7208": { "0x7208": {
"group": "sequencer", "group": "sequencer",
"key": "QK_SEQUENCER_STEPS_CLEAR", "key": "QK_SEQUENCER_STEPS_CLEAR",
"label": "Clear Steps",
"aliases": [ "aliases": [
"SQ_SCLR" "SQ_SCLR"
] ]

View File

@@ -3,7 +3,6 @@
"0x56F0": { "0x56F0": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_TOGGLE", "key": "QK_SWAP_HANDS_TOGGLE",
"label": "Toggle Swap Hands",
"aliases": [ "aliases": [
"SH_TOGG" "SH_TOGG"
] ]
@@ -11,7 +10,6 @@
"0x56F1": { "0x56F1": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_TAP_TOGGLE", "key": "QK_SWAP_HANDS_TAP_TOGGLE",
"label": "Swap Hands Tap Toggle",
"aliases": [ "aliases": [
"SH_TT" "SH_TT"
] ]
@@ -19,7 +17,6 @@
"0x56F2": { "0x56F2": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_MOMENTARY_ON", "key": "QK_SWAP_HANDS_MOMENTARY_ON",
"label": "Swap Hands Momentary On",
"aliases": [ "aliases": [
"SH_MON" "SH_MON"
] ]
@@ -27,7 +24,6 @@
"0x56F3": { "0x56F3": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_MOMENTARY_OFF", "key": "QK_SWAP_HANDS_MOMENTARY_OFF",
"label": "Swap Hands Momentary Off",
"aliases": [ "aliases": [
"SH_MOFF" "SH_MOFF"
] ]
@@ -35,7 +31,6 @@
"0x56F4": { "0x56F4": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_OFF", "key": "QK_SWAP_HANDS_OFF",
"label": "Unswap Hands",
"aliases": [ "aliases": [
"SH_OFF" "SH_OFF"
] ]
@@ -43,7 +38,6 @@
"0x56F5": { "0x56F5": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_ON", "key": "QK_SWAP_HANDS_ON",
"label": "Swap Hands",
"aliases": [ "aliases": [
"SH_ON" "SH_ON"
] ]
@@ -51,7 +45,6 @@
"0x56F6": { "0x56F6": {
"group": "swap_hands", "group": "swap_hands",
"key": "QK_SWAP_HANDS_ONE_SHOT", "key": "QK_SWAP_HANDS_ONE_SHOT",
"label": "Swap Hands One Shot",
"aliases": [ "aliases": [
"SH_OS" "SH_OS"
] ]

View File

@@ -3,162 +3,130 @@
"0x7E40": { "0x7E40": {
"group": "user", "group": "user",
"key": "QK_USER_0", "key": "QK_USER_0",
"label": "User 0"
}, },
"0x7E41": { "0x7E41": {
"group": "user", "group": "user",
"key": "QK_USER_1", "key": "QK_USER_1",
"label": "User 1"
}, },
"0x7E42": { "0x7E42": {
"group": "user", "group": "user",
"key": "QK_USER_2", "key": "QK_USER_2",
"label": "User 2"
}, },
"0x7E43": { "0x7E43": {
"group": "user", "group": "user",
"key": "QK_USER_3", "key": "QK_USER_3",
"label": "User 3"
}, },
"0x7E44": { "0x7E44": {
"group": "user", "group": "user",
"key": "QK_USER_4", "key": "QK_USER_4",
"label": "User 4"
}, },
"0x7E45": { "0x7E45": {
"group": "user", "group": "user",
"key": "QK_USER_5", "key": "QK_USER_5",
"label": "User 5"
}, },
"0x7E46": { "0x7E46": {
"group": "user", "group": "user",
"key": "QK_USER_6", "key": "QK_USER_6",
"label": "User 6"
}, },
"0x7E47": { "0x7E47": {
"group": "user", "group": "user",
"key": "QK_USER_7", "key": "QK_USER_7",
"label": "User 7"
}, },
"0x7E48": { "0x7E48": {
"group": "user", "group": "user",
"key": "QK_USER_8", "key": "QK_USER_8",
"label": "User 8"
}, },
"0x7E49": { "0x7E49": {
"group": "user", "group": "user",
"key": "QK_USER_9", "key": "QK_USER_9",
"label": "User 9"
}, },
"0x7E4A": { "0x7E4A": {
"group": "user", "group": "user",
"key": "QK_USER_10", "key": "QK_USER_10",
"label": "User 10"
}, },
"0x7E4B": { "0x7E4B": {
"group": "user", "group": "user",
"key": "QK_USER_11", "key": "QK_USER_11",
"label": "User 11"
}, },
"0x7E4C": { "0x7E4C": {
"group": "user", "group": "user",
"key": "QK_USER_12", "key": "QK_USER_12",
"label": "User 12"
}, },
"0x7E4D": { "0x7E4D": {
"group": "user", "group": "user",
"key": "QK_USER_13", "key": "QK_USER_13",
"label": "User 13"
}, },
"0x7E4E": { "0x7E4E": {
"group": "user", "group": "user",
"key": "QK_USER_14", "key": "QK_USER_14",
"label": "User 14"
}, },
"0x7E4F": { "0x7E4F": {
"group": "user", "group": "user",
"key": "QK_USER_15", "key": "QK_USER_15",
"label": "User 15"
}, },
"0x7E50": { "0x7E50": {
"group": "user", "group": "user",
"key": "QK_USER_16", "key": "QK_USER_16",
"label": "User 16"
}, },
"0x7E51": { "0x7E51": {
"group": "user", "group": "user",
"key": "QK_USER_17", "key": "QK_USER_17",
"label": "User 17"
}, },
"0x7E52": { "0x7E52": {
"group": "user", "group": "user",
"key": "QK_USER_18", "key": "QK_USER_18",
"label": "User 18"
}, },
"0x7E53": { "0x7E53": {
"group": "user", "group": "user",
"key": "QK_USER_19", "key": "QK_USER_19",
"label": "User 19"
}, },
"0x7E54": { "0x7E54": {
"group": "user", "group": "user",
"key": "QK_USER_20", "key": "QK_USER_20",
"label": "User 20"
}, },
"0x7E55": { "0x7E55": {
"group": "user", "group": "user",
"key": "QK_USER_21", "key": "QK_USER_21",
"label": "User 21"
}, },
"0x7E56": { "0x7E56": {
"group": "user", "group": "user",
"key": "QK_USER_22", "key": "QK_USER_22",
"label": "User 22"
}, },
"0x7E57": { "0x7E57": {
"group": "user", "group": "user",
"key": "QK_USER_23", "key": "QK_USER_23",
"label": "User 23"
}, },
"0x7E58": { "0x7E58": {
"group": "user", "group": "user",
"key": "QK_USER_24", "key": "QK_USER_24",
"label": "User 24"
}, },
"0x7E59": { "0x7E59": {
"group": "user", "group": "user",
"key": "QK_USER_25", "key": "QK_USER_25",
"label": "User 25"
}, },
"0x7E5A": { "0x7E5A": {
"group": "user", "group": "user",
"key": "QK_USER_26", "key": "QK_USER_26",
"label": "User 26"
}, },
"0x7E5B": { "0x7E5B": {
"group": "user", "group": "user",
"key": "QK_USER_27", "key": "QK_USER_27",
"label": "User 27"
}, },
"0x7E5C": { "0x7E5C": {
"group": "user", "group": "user",
"key": "QK_USER_28", "key": "QK_USER_28",
"label": "User 28"
}, },
"0x7E5D": { "0x7E5D": {
"group": "user", "group": "user",
"key": "QK_USER_29", "key": "QK_USER_29",
"label": "User 29"
}, },
"0x7E5E": { "0x7E5E": {
"group": "user", "group": "user",
"key": "QK_USER_30", "key": "QK_USER_30",
"label": "User 30"
}, },
"0x7E5F": { "0x7E5F": {
"group": "user", "group": "user",
"key": "QK_USER_31", "key": "QK_USER_31",
"label": "User 31" },
}
} }
} }

View File

@@ -3,7 +3,6 @@
"0x7C79": { "0x7C79": {
"group": "quantum", "group": "quantum",
"key": "QK_REPEAT_KEY", "key": "QK_REPEAT_KEY",
"label": "Repeat",
"aliases": [ "aliases": [
"QK_REP" "QK_REP"
] ]
@@ -11,7 +10,6 @@
"0x7C7A": { "0x7C7A": {
"group": "quantum", "group": "quantum",
"key": "QK_ALT_REPEAT_KEY", "key": "QK_ALT_REPEAT_KEY",
"label": "Repeat Alternate",
"aliases": [ "aliases": [
"QK_AREP" "QK_AREP"
] ]

View File

@@ -1,272 +0,0 @@
{
"keycodes": {
"0x7810": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_ON",
"label": "LED Matrix On",
"aliases": [
"LM_ON"
]
},
"0x7811": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_OFF",
"label": "LED Matrix Off",
"aliases": [
"LM_OFF"
]
},
"0x7812": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_TOGGLE",
"label": "Toggle LED Matrix",
"aliases": [
"LM_TOGG"
]
},
"0x7813": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_MODE_NEXT",
"label": "LED Matrix Next",
"aliases": [
"LM_NEXT"
]
},
"0x7814": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_MODE_PREVIOUS",
"label": "LED Matrix Previous",
"aliases": [
"LM_PREV"
]
},
"0x7815": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_BRIGHTNESS_UP",
"label": "LED Matrix Brightness Up",
"aliases": [
"LM_BRIU"
]
},
"0x7816": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_BRIGHTNESS_DOWN",
"label": "LED Matrix Brightness Down",
"aliases": [
"LM_BRID"
]
},
"0x7817": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_SPEED_UP",
"label": "LED Matrix Speed Up",
"aliases": [
"LM_SPDU"
]
},
"0x7818": {
"group": "led_matrix",
"key": "QK_LED_MATRIX_SPEED_DOWN",
"label": "LED Matrix Speed Down",
"aliases": [
"LM_SPDD"
]
},
"0x7820": {
"group": "underglow",
"key": "QK_UNDERGLOW_TOGGLE",
"label": "Toggle RGB Underglow",
"aliases": [
"UG_TOGG"
]
},
"0x7821": {
"group": "underglow",
"key": "QK_UNDERGLOW_MODE_NEXT",
"label": "RGB Underglow Next",
"aliases": [
"!reset!",
"UG_NEXT"
]
},
"0x7822": {
"group": "underglow",
"key": "QK_UNDERGLOW_MODE_PREVIOUS",
"label": "RGB Underglow Previous",
"aliases": [
"!reset!",
"UG_PREV"
]
},
"0x7823": {
"group": "underglow",
"key": "QK_UNDERGLOW_HUE_UP",
"label": "RGB Underglow Hue Up",
"aliases": [
"UG_HUEU"
]
},
"0x7824": {
"group": "underglow",
"key": "QK_UNDERGLOW_HUE_DOWN",
"label": "RGB Underglow Hue Down",
"aliases": [
"UG_HUED"
]
},
"0x7825": {
"group": "underglow",
"key": "QK_UNDERGLOW_SATURATION_UP",
"label": "RGB Underglow Saturation Up",
"aliases": [
"UG_SATU"
]
},
"0x7826": {
"group": "underglow",
"key": "QK_UNDERGLOW_SATURATION_DOWN",
"label": "RGB Underglow Saturation Down",
"aliases": [
"UG_SATD"
]
},
"0x7827": {
"group": "underglow",
"key": "QK_UNDERGLOW_VALUE_UP",
"label": "RGB Underglow Value Up",
"aliases": [
"UG_VALU"
]
},
"0x7828": {
"group": "underglow",
"key": "QK_UNDERGLOW_VALUE_DOWN",
"label": "RGB Underglow Value Down",
"aliases": [
"UG_VALD"
]
},
"0x7829": {
"group": "underglow",
"key": "QK_UNDERGLOW_SPEED_UP",
"label": "RGB Underglow Speed Up",
"aliases": [
"UG_SPDU"
]
},
"0x782A": {
"group": "underglow",
"key": "QK_UNDERGLOW_SPEED_DOWN",
"label": "RGB Underglow Speed Down",
"aliases": [
"UG_SPDD"
]
},
"0x7840": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_ON",
"label": "RGB Matrix On",
"aliases": [
"RM_ON"
]
},
"0x7841": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_OFF",
"label": "RGB Matrix Off"
"aliases": [
"RM_OFF"
]
},
"0x7842": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_TOGGLE",
"label": "Toggle RGB Matrix",
"aliases": [
"RM_TOGG"
]
},
"0x7843": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_MODE_NEXT",
"label": "RGB Matrix Next",
"aliases": [
"RM_NEXT"
]
},
"0x7844": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_MODE_PREVIOUS",
"label": "RGB Matrix Previous",
"aliases": [
"RM_PREV"
]
},
"0x7845": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_HUE_UP",
"label": "RGB Matrix Hue Up",
"aliases": [
"RM_HUEU"
]
},
"0x7846": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_HUE_DOWN",
"label": "RGB Matrix Hue Down",
"aliases": [
"RM_HUED"
]
},
"0x7847": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_SATURATION_UP",
"label": "RGB Matrix Saturation Up",
"aliases": [
"RM_SATU"
]
},
"0x7848": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_SATURATION_DOWN",
"label": "RGB Matrix Saturation Down",
"aliases": [
"RM_SATD"
]
},
"0x7849": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_VALUE_UP",
"label": "RGB Matrix Value Up",
"aliases": [
"RM_VALU"
]
},
"0x784A": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_VALUE_DOWN",
"label": "RGB Matrix Value Down",
"aliases": [
"RM_VALD"
]
},
"0x784B": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_SPEED_UP",
"label": "RGB Matrix Speed Up",
"aliases": [
"RM_SPDU"
]
},
"0x784C": {
"group": "rgb_matrix",
"key": "QK_RGB_MATRIX_SPEED_DOWN",
"label": "RGB Matrix Speed Down",
"aliases": [
"RM_SPDD"
]
}
}
}

View File

@@ -1,175 +0,0 @@
{
"keycodes": {
"0x00CD": {
"group": "mouse",
"key": "QK_MOUSE_CURSOR_UP",
"label": "Mouse Up",
"aliases": [
"!reset!",
"MS_UP"
]
},
"0x00CE": {
"group": "mouse",
"key": "QK_MOUSE_CURSOR_DOWN",
"label": "Mouse Down",
"aliases": [
"!reset!",
"MS_DOWN"
]
},
"0x00CF": {
"group": "mouse",
"key": "QK_MOUSE_CURSOR_LEFT",
"label": "Mouse Left",
"aliases": [
"!reset!",
"MS_LEFT"
]
},
"0x00D0": {
"group": "mouse",
"key": "QK_MOUSE_CURSOR_RIGHT",
"label": "Mouse Right",
"aliases": [
"!reset!",
"MS_RGHT"
]
},
"0x00D1": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_1",
"label": "Mouse Button 1",
"aliases": [
"!reset!",
"MS_BTN1"
]
},
"0x00D2": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_2",
"label": "Mouse Button 2",
"aliases": [
"!reset!",
"MS_BTN2"
]
},
"0x00D3": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_3",
"label": "Mouse Button 3",
"aliases": [
"!reset!",
"MS_BTN3"
]
},
"0x00D4": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_4",
"label": "Mouse Button 4",
"aliases": [
"!reset!",
"MS_BTN4"
]
},
"0x00D5": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_5",
"label": "Mouse Button 5",
"aliases": [
"!reset!",
"MS_BTN5"
]
},
"0x00D6": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_6",
"label": "Mouse Button 6",
"aliases": [
"!reset!",
"MS_BTN6"
]
},
"0x00D7": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_7",
"label": "Mouse Button 7",
"aliases": [
"!reset!",
"MS_BTN7"
]
},
"0x00D8": {
"group": "mouse",
"key": "QK_MOUSE_BUTTON_8",
"label": "Mouse Button 8",
"aliases": [
"!reset!",
"MS_BTN8"
]
},
"0x00D9": {
"group": "mouse",
"key": "QK_MOUSE_WHEEL_UP",
"label": "Mouse Wheel Up",
"aliases": [
"!reset!",
"MS_WHLU"
]
},
"0x00DA": {
"group": "mouse",
"key": "QK_MOUSE_WHEEL_DOWN",
"label": "Mouse Wheel Down",
"aliases": [
"!reset!",
"MS_WHLD"
]
},
"0x00DB": {
"group": "mouse",
"key": "QK_MOUSE_WHEEL_LEFT",
"label": "Mouse Wheel Left",
"aliases": [
"!reset!",
"MS_WHLL"
]
},
"0x00DC": {
"group": "mouse",
"key": "QK_MOUSE_WHEEL_RIGHT",
"label": "Mouse Wheel Right",
"aliases": [
"!reset!",
"MS_WHLR"
]
},
"0x00DD": {
"group": "mouse",
"key": "QK_MOUSE_ACCELERATION_0",
"label": "Acceleration 0",
"aliases": [
"!reset!",
"MS_ACL0"
]
},
"0x00DE": {
"group": "mouse",
"key": "QK_MOUSE_ACCELERATION_1",
"label": "Acceleration 1",
"aliases": [
"!reset!",
"MS_ACL1"
]
},
"0x00DF": {
"group": "mouse",
"key": "QK_MOUSE_ACCELERATION_2",
"label": "Acceleration 2",
"aliases": [
"!reset!",
"MS_ACL2"
]
}
}
}

View File

@@ -1,7 +0,0 @@
{
"ranges": {
"0x52E0/0x001F": {
"define": "QK_PERSISTENT_DEF_LAYER"
}
}
}

View File

@@ -1,130 +0,0 @@
{
"ranges": {
"0x7780/0x003F": {
"define": "QK_CONNECTION"
}
}
"keycodes": {
"0x7780": {
"group": "connection",
"key": "QK_OUTPUT_AUTO",
"label": "Output Auto",
"aliases": [
"OU_AUTO"
]
},
"0x7781": {
"group": "connection",
"key": "QK_OUTPUT_NEXT",
"label": "Next Output",
"aliases": [
"OU_NEXT"
]
},
"0x7782": {
"group": "connection",
"key": "QK_OUTPUT_PREV",
"label": "Previous Output",
"aliases": [
"OU_PREV"
]
},
"0x7783": {
"group": "connection",
"key": "QK_OUTPUT_NONE",
"label": "None",
"aliases": [
"OU_NONE"
]
},
"0x7784": {
"group": "connection",
"key": "QK_OUTPUT_USB",
"label": "USB",
"aliases": [
"OU_USB"
]
},
"0x7785": {
"group": "connection",
"key": "QK_OUTPUT_2P4GHZ",
"label": "2.4GHz",
"aliases": [
"OU_2P4G"
]
},
"0x7786": {
"group": "connection",
"key": "QK_OUTPUT_BLUETOOTH",
"label": "Bluetooth",
"aliases": [
"OU_BT"
]
},
"0x7790": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_NEXT",
"label": "Bluetooth Profile Next",
"aliases": [
"BT_NEXT"
]
},
"0x7791": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE_PREV",
"label": "Bluetooth Profile Previous",
"aliases": [
"BT_PREV"
]
},
"0x7792": {
"group": "connection",
"key": "QK_BLUETOOTH_UNPAIR",
"label": "Unpair",
"aliases": [
"BT_UNPR"
]
}
"0x7793": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE1",
"label": "Bluetooth Profile 1",
"aliases": [
"BT_PRF1"
]
},
"0x7794": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE2",
"label": "Bluetooth Profile 2",
"aliases": [
"BT_PRF2"
]
},
"0x7795": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE3",
"label": "Bluetooth Profile 3",
"aliases": [
"BT_PRF3"
]
},
"0x7796": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE4",
"label": "Bluetooth Profile 4",
"aliases": [
"BT_PRF4"
]
},
"0x7797": {
"group": "connection",
"key": "QK_BLUETOOTH_PROFILE5",
"label": "Bluetooth Profile 5",
"aliases": [
"BT_PRF5"
]
},
}
}

View File

@@ -1,15 +0,0 @@
{
"keycodes": {
"0x7C20": "!delete!", // old QK_OUTPUT_AUTO
"0x7C21": "!delete!", // old QK_OUTPUT_USB
"0x7C22": "!delete!", // old QK_OUTPUT_BLUETOOTH
"0x7C7B": {
"group": "quantum",
"key": "QK_LAYER_LOCK",
"label": "Layer Lock",
"aliases": [
"QK_LLCK"
]
}
}
}

View File

@@ -1,7 +0,0 @@
{
"ranges": {
"0x77C0/0x003F": {
"define": "QK_COMMUNITY_MODULE"
}
}
}

View File

@@ -1,37 +0,0 @@
{
"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"
]
}
}
}

View File

@@ -1,25 +0,0 @@
{
keyboard_pre_init: {
ret_type: void
args: void
}
keyboard_post_init: {
ret_type: void
args: void
}
pre_process_record: {
ret_type: bool
args: uint16_t keycode, keyrecord_t *record
call_params: keycode, record
}
process_record: {
ret_type: bool
args: uint16_t keycode, keyrecord_t *record
call_params: keycode, record
}
post_process_record: {
ret_type: void
args: uint16_t keycode, keyrecord_t *record
call_params: keycode, record
}
}

View File

@@ -1,26 +0,0 @@
{
housekeeping_task: {
ret_type: void
args: void
}
suspend_power_down: {
ret_type: void
args: void
}
suspend_wakeup_init: {
ret_type: void
args: void
}
shutdown: {
ret_type: bool
args: bool jump_to_bootloader
call_params: jump_to_bootloader
}
process_detected_host_os: {
ret_type: bool
args: os_variant_t os
call_params: os
guard: defined(OS_DETECTION_ENABLE)
header: os_detection.h
}
}

View File

@@ -1,55 +0,0 @@
{
pointing_device_init: {
ret_type: void
args: void
guard: defined(POINTING_DEVICE_ENABLE)
}
pointing_device_task: {
ret_type: report_mouse_t
args: report_mouse_t mouse_report
call_params: mouse_report
guard: defined(POINTING_DEVICE_ENABLE)
header: report.h
}
rgb_matrix_indicators: {
ret_type: bool
args: void
guard: defined(RGB_MATRIX_ENABLE)
header: rgb_matrix.h
}
rgb_matrix_indicators_advanced: {
ret_type: bool
args: uint8_t led_min, uint8_t led_max
call_params: led_min, led_max
guard: defined(RGB_MATRIX_ENABLE)
header: rgb_matrix.h
}
led_matrix_indicators: {
ret_type: bool
args: void
guard: defined(LED_MATRIX_ENABLE)
header: led_matrix.h
}
led_matrix_indicators_advanced: {
ret_type: bool
args: uint8_t led_min, uint8_t led_max
call_params: led_min, led_max
guard: defined(LED_MATRIX_ENABLE)
header: led_matrix.h
}
default_layer_state_set: {
ret_type: layer_state_t
args: layer_state_t state
call_params: state
guard: !defined(NO_ACTION_LAYER)
header: action_layer.h
}
layer_state_set: {
ret_type: layer_state_t
args: layer_state_t state
call_params: state
guard: !defined(NO_ACTION_LAYER)
header: action_layer.h
}
}

View File

@@ -1,3 +0,0 @@
{
// This version exists to signify addition of LED/RGB effect support.
}

View File

@@ -1,3 +0,0 @@
{
// This version exists to signify addition of split data sync support.
}

View File

@@ -45,11 +45,6 @@
"bootloader": "rp2040", "bootloader": "rp2040",
"processor": "RP2040" "processor": "RP2040"
}, },
"imera": {
"processor": "RP2040",
"bootloader": "rp2040",
"board": "QMK_PM2040"
},
"kb2040": { "kb2040": {
"board": "QMK_PM2040", "board": "QMK_PM2040",
"bootloader": "rp2040", "bootloader": "rp2040",
@@ -84,11 +79,6 @@
"board": "STEMCELL", "board": "STEMCELL",
"bootloader": "tinyuf2", "bootloader": "tinyuf2",
"processor": "STM32F411" "processor": "STM32F411"
},
"svlinky": {
"board": "QMK_PM2040",
"bootloader": "rp2040",
"processor": "RP2040"
} }
} }
} }

View File

@@ -3,7 +3,7 @@
{ {
// Format: // Format:
// <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]} // <config.h key>: {"info_key": <info.json key>, ["value_type": <value_type>], ["to_json": <true/false>], ["to_c": <true/false>]}
// value_type: one of "array", "array.int", "bool, "flag", "int", "hex", "list", "mapping", "str", "raw" // value_type: one of "array", "array.int", "bool", "int", "hex", "list", "mapping", "str", "raw"
// to_json: Default `true`. Set to `false` to exclude this mapping from info.json // to_json: Default `true`. Set to `false` to exclude this mapping from info.json
// to_c: Default `true`. Set to `false` to exclude this mapping from config.h // to_c: Default `true`. Set to `false` to exclude this mapping from config.h
// warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places // warn_duplicate: Default `true`. Set to `false` to turn off warning when a value exists in both places
@@ -17,16 +17,12 @@
"APA102_DI_PIN": {"info_key": "apa102.data_pin"}, "APA102_DI_PIN": {"info_key": "apa102.data_pin"},
// Audio // Audio
"AUDIO_DEFAULT_ON": {"info_key": "audio.default.on", "value_type": "bool"}, "AUDIO_VOICES": {"info_key": "audio.voices", "value_type": "bool"},
"AUDIO_DEFAULT_CLICKY_ON": {"info_key": "audio.default.clicky", "value_type": "bool"}, "SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "bool"},
"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"},
"SENDSTRING_BELL": {"info_key": "audio.macro_beep", "value_type": "flag"},
// Backlight // Backlight
"BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "flag"}, "BACKLIGHT_BREATHING": {"info_key": "backlight.breathing", "value_type": "bool"},
"BACKLIGHT_CAPS_LOCK": {"info_key": "backlight.as_caps_lock", "value_type": "flag"}, "BACKLIGHT_CAPS_LOCK": {"info_key": "backlight.as_caps_lock", "value_type": "bool"},
"BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"}, "BACKLIGHT_LEVELS": {"info_key": "backlight.levels", "value_type": "int"},
"BACKLIGHT_LIMIT_VAL": {"info_key": "backlight.max_brightness", "value_type": "int"}, "BACKLIGHT_LIMIT_VAL": {"info_key": "backlight.max_brightness", "value_type": "int"},
"BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"}, "BACKLIGHT_ON_STATE": {"info_key": "backlight.on_state", "value_type": "int"},
@@ -38,24 +34,16 @@
"BACKLIGHT_DEFAULT_LEVEL": {"info_key": "backlight.default.brightness", "value_type": "int"}, "BACKLIGHT_DEFAULT_LEVEL": {"info_key": "backlight.default.brightness", "value_type": "int"},
// Bootmagic // Bootmagic
"BOOTMAGIC_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"}, "BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"},
"BOOTMAGIC_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"}, "BOOTMAGIC_LITE_COLUMN_RIGHT": {"info_key": "split.bootmagic.matrix.1", "value_type": "int"},
"BOOTMAGIC_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"}, "BOOTMAGIC_LITE_ROW": {"info_key": "bootmagic.matrix.0", "value_type": "int"},
"BOOTMAGIC_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"}, "BOOTMAGIC_LITE_ROW_RIGHT": {"info_key": "split.bootmagic.matrix.0", "value_type": "int"},
// Battery
"BATTERY_SAMPLE_INTERVAL": {"info_key": "battery.sample_interval", "value_type": "int"},
"BATTERY_ADC_PIN": {"info_key": "battery.adc.pin"},
"BATTERY_ADC_REF_VOLTAGE_MV": {"info_key": "battery.adc.reference_voltage", "value_type": "int"},
"BATTERY_ADC_VOLTAGE_DIVIDER_R1": {"info_key": "battery.adc.divider_r1", "value_type": "int"},
"BATTERY_ADC_VOLTAGE_DIVIDER_R2": {"info_key": "battery.adc.divider_r2", "value_type": "int"},
"BATTERY_ADC_RESOLUTION": {"info_key": "battery.adc.resolution", "value_type": "int"},
// Caps Word // Caps Word
"BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "flag"}, "BOTH_SHIFTS_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.both_shifts_turns_on", "value_type": "bool"},
"CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"}, "CAPS_WORD_IDLE_TIMEOUT": {"info_key": "caps_word.idle_timeout", "value_type": "int"},
"CAPS_WORD_INVERT_ON_SHIFT": {"info_key": "caps_word.invert_on_shift", "value_type": "flag"}, "CAPS_WORD_INVERT_ON_SHIFT": {"info_key": "caps_word.invert_on_shift", "value_type": "bool"},
"DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "flag"}, "DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"},
// Combos // Combos
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"}, "COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
@@ -72,12 +60,6 @@
"WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false}, "WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
"WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false}, "WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
// host
"NKRO_DEFAULT_ON": {"info_key": "host.default.nkro", "value_type": "bool"},
// Layer locking
"LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"},
// Indicators // Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"}, "LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"}, "LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
@@ -86,24 +68,18 @@
"LED_KANA_PIN": {"info_key": "indicators.kana"}, "LED_KANA_PIN": {"info_key": "indicators.kana"},
"LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"}, "LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"},
// Joystick
"JOYSTICK_AXIS_COUNT": {"info_key": "joystick.axis_count", "value_type": "int"},
"JOYSTICK_AXIS_RESOLUTION": {"info_key": "joystick.axis_resolution", "value_type": "int"},
"JOYSTICK_BUTTON_COUNT": {"info_key": "joystick.button_count", "value_type": "int"},
// Leader Key // Leader Key
"LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "flag"}, "LEADER_PER_KEY_TIMING": {"info_key": "leader_key.timing", "value_type": "bool"},
"LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "flag"}, "LEADER_KEY_STRICT_KEY_PROCESSING": {"info_key": "leader_key.strict_processing", "value_type": "bool"},
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"}, "LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},
// LED Matrix // LED Matrix
"LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "led_matrix.sleep", "value_type": "bool"},
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, "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": "bool"},
"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_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}, "LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false},
"LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"}, "LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"},
"LED_MATRIX_SLEEP": {"info_key": "led_matrix.sleep", "value_type": "flag"},
"LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"}, "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"},
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
"LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"}, "LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
@@ -112,11 +88,10 @@
"LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"}, "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_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_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 Switch
"LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "flag"}, "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "bool"},
"LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "flag"}, "LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "bool"},
// LUFA Bootloader // LUFA Bootloader
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"}, "QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
@@ -127,10 +102,9 @@
// Matrix // Matrix
"DEBOUNCE": {"info_key": "debounce", "value_type": "int"}, "DEBOUNCE": {"info_key": "debounce", "value_type": "int"},
"DIODE_DIRECTION": {"info_key": "diode_direction"}, "DIODE_DIRECTION": {"info_key": "diode_direction"},
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "flag"}, "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"},
"MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"}, "MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"},
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"}, "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
"MATRIX_MASKED": {"info_key": "matrix_pins.masked", "value_type": "flag"},
// Mouse Keys // Mouse Keys
"MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"}, "MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"},
@@ -148,15 +122,14 @@
"PS2_DATA_PIN": {"info_key": "ps2.data_pin"}, "PS2_DATA_PIN": {"info_key": "ps2.data_pin"},
// RGB Matrix // RGB Matrix
"RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "rgb_matrix.sleep", "value_type": "bool"},
"RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, "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_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_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "bool"},
"RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"}, "RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"},
"RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false}, "RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false},
"RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"}, "RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"},
"RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"}, "RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"},
"RGB_MATRIX_SLEEP": {"info_key": "rgb_matrix.sleep", "value_type": "flag"},
"RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"},
"RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"},
"RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"}, "RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
@@ -167,27 +140,27 @@
"RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"}, "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_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_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"},
"RGB_MATRIX_DEFAULT_FLAGS": {"info_key": "rgb_matrix.default.flags", "value_type": "int"},
// RGBLight // RGBLight
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
"RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"}, "RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"},
"RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"}, "RGBLIGHT_HUE_STEP": {"info_key": "rgblight.hue_steps", "value_type": "int"},
"RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "flag"}, "RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"},
"RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "flag"}, "RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"},
"RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "flag"}, "RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"},
"RGBLIGHT_LED_COUNT": {"info_key": "rgblight.led_count", "value_type": "int"},
"RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"}, "RGBLIGHT_LED_MAP": {"info_key": "rgblight.led_map", "value_type": "array.int"},
"RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"}, "RGBLIGHT_LIMIT_VAL": {"info_key": "rgblight.max_brightness", "value_type": "int"},
"RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"}, "RGBLIGHT_MAX_LAYERS": {"info_key": "rgblight.layers.max", "value_type": "int"},
"RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"}, "RGBLIGHT_SAT_STEP": {"info_key": "rgblight.saturation_steps", "value_type": "int"},
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "flag"}, "RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "flag"}, "RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"}, "RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
"RGBLIGHT_DEFAULT_ON": {"info_key": "rgblight.default.on", "value_type": "bool"}, "RGBLIGHT_DEFAULT_ON": {"info_key": "rgblight.default.on", "value_type": "bool"},
"RGBLIGHT_DEFAULT_HUE": {"info_key": "rgblight.default.hue", "value_type": "int"}, "RGBLIGHT_DEFAULT_HUE": {"info_key": "rgblight.default.hue", "value_type": "int"},
"RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"}, "RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"},
"RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"}, "RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"},
"RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"}, "RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"},
// Secure // Secure
"SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"}, "SECURE_IDLE_TIMEOUT": {"info_key": "secure.idle_timeout", "value_type": "int"},
@@ -195,43 +168,41 @@
"SECURE_UNLOCK_TIMEOUT": {"info_key": "secure.unlock_timeout", "value_type": "int"}, "SECURE_UNLOCK_TIMEOUT": {"info_key": "secure.unlock_timeout", "value_type": "int"},
// Split Keyboard // Split Keyboard
"SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"}, "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"},
"SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed", "value_type": "int"}, "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
"SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false}, "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_HAND_PIN": {"info_key": "split.handedness.pin"},
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"},
"SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"}, "SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"},
"SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"}, "SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"},
"SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "flag"}, "SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"},
"SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"}, "SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"},
"SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "flag"}, "SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "bool"},
"SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "flag"}, "SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "bool"},
"SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "flag"}, "SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "bool"},
"SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "flag"}, "SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "bool"},
"SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "flag"}, "SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "bool"},
"SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "flag"}, "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "bool"},
"SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "flag"}, "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "bool"},
"SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "flag"}, "SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "bool"},
"SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "flag"}, "SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "bool"},
"SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"}, "SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "bool"},
// Tapping // Tapping
"CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"}, "HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"},
"FLOW_TAP_TERM": {"info_key": "tapping.flow_tap_term", "value_type": "int"}, "HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "bool"},
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"}, "PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "bool"},
"HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"}, "PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "bool"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"}, "RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "bool"},
"PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "flag"}, "RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "bool"},
"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"},
"TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"}, "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"}, "TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"},
"TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"}, "TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"},
"TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "flag"}, "TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "bool"},
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"}, "TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
// USB // USB
"FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "bool"},
"USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"}, "USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"},
"USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"}, "USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
"USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"}, "USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},
@@ -240,26 +211,22 @@
"WS2812_DI_PIN": {"info_key": "ws2812.pin"}, "WS2812_DI_PIN": {"info_key": "ws2812.pin"},
"WS2812_I2C_ADDRESS": {"info_key": "ws2812.i2c_address", "value_type": "hex"}, "WS2812_I2C_ADDRESS": {"info_key": "ws2812.i2c_address", "value_type": "hex"},
"WS2812_I2C_TIMEOUT": {"info_key": "ws2812.i2c_timeout", "value_type": "int"}, "WS2812_I2C_TIMEOUT": {"info_key": "ws2812.i2c_timeout", "value_type": "int"},
"WS2812_RGBW": {"info_key": "ws2812.rgbw", "value_type": "flag"},
"LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"}, "LAYOUTS": {"info_key": "layout_aliases", "value_type": "mapping"},
// Items we want flagged in lint // Items we want flagged in lint
"DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"}, "DEBOUNCING_DELAY": {"info_key": "_invalid.debouncing_delay", "invalid": true, "replace_with": "DEBOUNCE"},
"DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true}, "DESCRIPTION": {"info_key": "_invalid.usb_description", "invalid": true},
"IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_invalid.ignore_mod_tap_interrupt", "value_type": "flag", "invalid": true}, "IGNORE_MOD_TAP_INTERRUPT": {"info_key": "_invalid.ignore_mod_tap_interrupt", "value_type": "bool", "invalid": true},
"IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true}, "IGNORE_MOD_TAP_INTERRUPT_PER_KEY": {"info_key": "_invalid.ignore_mod_tap_interrupt_per_key", "invalid": true}
"LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.led_matrix_sleep", "invalid": true, "replace_with": "LED_MATRIX_SLEEP"},
"NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true}, "NO_ACTION_FUNCTION": {"info_key": "_invalid.no_action_function", "invalid": true},
"NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true}, "NO_ACTION_MACRO": {"info_key": "_invalid.no_action_macro", "invalid": true},
"PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true}, "PREVENT_STUCK_MODIFIERS": {"info_key": "_invalid.prevent_stuck_mods", "invalid": true},
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true}, "QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true},
"RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"}, "RGB_DI_PIN": {"info_key": "rgblight.pin", "invalid": true, "replace_with": "WS2812_DI_PIN or APA102_DI_PIN"},
"RGBW": {"info_key": "rgblight.rgbw", "invalid": true, "replace_with": "WS2812_RGBW"}, "RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "bool", "invalid": true},
"RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "_invalid.rgb_matrix_sleep", "invalid": true, "replace_with": "RGB_MATRIX_SLEEP"}, "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool", "deprecated": true},
"RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "flag", "invalid": true}, "TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool", "deprecated": true},
"TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "flag", "deprecated": true},
"TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "flag", "deprecated": true},
"UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true}, "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true},
"COMBO_COUNT": {"info_key": "_invalid.combo.count", "invalid": true}, "COMBO_COUNT": {"info_key": "_invalid.combo.count", "invalid": true},
@@ -269,7 +236,6 @@
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, "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"}, "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"}, "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 // Items we want flagged in lint
"VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true}, "VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true},

View File

@@ -1,79 +0,0 @@
{
"bootmagic": {
"matrix": [0, 0]
},
"backlight": {
"default": {
"on": true
},
"breathing_period": 6,
"levels": 3,
"on_state": 1
},
"debounce": 5,
"dynamic_keymap": {
"layer_count": 4
},
"features": {
"command": false,
"console": false
},
"indicators": {
"on_state": 1
},
"led_matrix": {
"default": {
"animation": "solid",
"on": true,
"val": 255,
"speed": 128,
"flags": 255
},
"led_flush_limit": 16,
"max_brightness": 255,
"sleep": false,
"speed_steps": 16,
"val_steps": 16
},
"rgblight": {
"default": {
"animation": "static_light",
"on": true,
"hue": 0,
"sat": 255,
"val": 255,
"speed": 0
},
"brightness_steps": 17,
"hue_steps": 8,
"max_brightness": 255,
"saturation_steps": 17,
"sleep": false
},
"rgb_matrix": {
"default": {
"animation": "cycle_left_right",
"on": true,
"hue": 0,
"sat": 255,
"val": 255,
"speed": 128,
"flags": 255
},
"hue_steps": 8,
"led_flush_limit": 16,
"max_brightness": 255,
"sat_steps": 16,
"sleep": false,
"speed_steps": 16,
"val_steps": 16
},
"split": {
"serial": {
"driver": "bitbang"
}
},
"ws2812": {
"driver": "bitbang"
}
}

View File

@@ -11,9 +11,7 @@
// invalid: Default `false`. Set to `true` to generate errors when a value exists // invalid: Default `false`. Set to `true` to generate errors when a value exists
// replace_with: use with a key marked deprecated or invalid to designate a replacement // replace_with: use with a key marked deprecated or invalid to designate a replacement
"AUDIO_DRIVER": {"info_key": "audio.driver"},
"BACKLIGHT_DRIVER": {"info_key": "backlight.driver"}, "BACKLIGHT_DRIVER": {"info_key": "backlight.driver"},
"BATTERY_DRIVER": {"info_key": "battery.driver"},
"BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"}, "BLUETOOTH_DRIVER": {"info_key": "bluetooth.driver"},
"BOARD": {"info_key": "board"}, "BOARD": {"info_key": "board"},
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false}, "BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
@@ -23,11 +21,7 @@
"DEBOUNCE_TYPE": {"info_key": "build.debounce_type"}, "DEBOUNCE_TYPE": {"info_key": "build.debounce_type"},
"EEPROM_DRIVER": {"info_key": "eeprom.driver"}, "EEPROM_DRIVER": {"info_key": "eeprom.driver"},
"ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"}, "ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},
"ENCODER_DRIVER": {"info_key": "encoder.driver"},
"FIRMWARE_FORMAT": {"info_key": "build.firmware_format"}, "FIRMWARE_FORMAT": {"info_key": "build.firmware_format"},
"HAPTIC_DRIVER": {"info_key": "haptic.driver"},
"JOYSTICK_DRIVER": {"info_key": "joystick.driver"},
"JOYSTICK_ENABLE": {"info_key": "joystick.enabled", "value_type": "bool"},
"KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"}, "KEYBOARD_SHARED_EP": {"info_key": "usb.shared_endpoint.keyboard", "value_type": "bool"},
"LAYOUTS": {"info_key": "community_layouts", "value_type": "list"}, "LAYOUTS": {"info_key": "community_layouts", "value_type": "list"},
"LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"}, "LED_MATRIX_DRIVER": {"info_key": "led_matrix.driver"},
@@ -44,18 +38,16 @@
"RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"}, "RGB_MATRIX_DRIVER": {"info_key": "rgb_matrix.driver"},
"RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"}, "RGBLIGHT_DRIVER": {"info_key": "rgblight.driver"},
"SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"}, "SECURE_ENABLE": {"info_key": "secure.enabled", "value_type": "bool"},
"SERIAL_DRIVER": {"info_key": "split.serial.driver"},
"SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"}, "SPLIT_KEYBOARD": {"info_key": "split.enabled", "value_type": "bool"},
"SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false}, "SPLIT_TRANSPORT": {"info_key": "split.transport.protocol", "to_c": false},
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"}, "STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"}, "STENO_PROTOCOL": {"info_key": "stenography.protocol"},
"USB_WAIT_FOR_ENUMERATION": {"info_key": "usb.wait_for_enumeration", "value_type": "bool"}, "WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
"WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"}, "WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"},
"WS2812_DRIVER": {"info_key": "ws2812.driver"}, "WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint // Items we want flagged in lint
"CTPC": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"}, "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"CONVERT_TO_PROTON_C": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"}, "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"DEFAULT_FOLDER": {"info_key": "_invalid.default_folder", "invalid": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true} "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"$id": "qmk.api.keyboard.v1", "$id": "qmk.api.keyboard.v1",
"allOf": [ "allOf": [
{"$ref": "./keyboard.jsonschema#"}, {"$ref": "qmk.keyboard.v1"},
{ {
"properties": { "properties": {
"keymaps": { "keymaps": {
@@ -10,8 +10,8 @@
"url": {"type": "string"} "url": {"type": "string"}
} }
}, },
"parse_errors": {"$ref": "./definitions.jsonschema#/string_array"}, "parse_errors": {"$ref": "qmk.definitions.v1#/string_array"},
"parse_warnings": {"$ref": "./definitions.jsonschema#/string_array"}, "parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"},
"processor_type": {"type": "string"}, "processor_type": {"type": "string"},
"protocol": {"type": "string"}, "protocol": {"type": "string"},
"keyboard_folder": {"type": "string"}, "keyboard_folder": {"type": "string"},

View File

@@ -1,18 +0,0 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"$id": "qmk.community_module.v1",
"title": "Community Module Information",
"type": "object",
"required": ["module_name", "maintainer"],
"properties": {
"module_name": {"$ref": "./definitions.jsonschema#/text_identifier"},
"maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"},
"license": {"type": "string"},
"url": {
"type": "string",
"format": "uri"
},
"keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
"features": {"$ref": "./keyboard.jsonschema#/definitions/features_config"}
}
}

View File

@@ -16,6 +16,12 @@
"type": "object", "type": "object",
"additionalProperties": {"type": "boolean"} "additionalProperties": {"type": "boolean"}
}, },
"build_target": {
"oneOf": [
{"$ref": "#/keyboard_keymap_tuple"},
{"$ref": "#/json_file_path"}
]
},
"filename": { "filename": {
"type": "string", "type": "string",
"minLength": 1, "minLength": 1,
@@ -34,8 +40,7 @@
"pattern": "^[0-9a-z_/\\-]+\\.json$" "pattern": "^[0-9a-z_/\\-]+\\.json$"
}, },
"key_unit": { "key_unit": {
"type": "number", "type": "number"
"minimum": 0
}, },
"keyboard": { "keyboard": {
"type": "string", "type": "string",
@@ -47,19 +52,6 @@
{"$ref": "#/keyboard"}, {"$ref": "#/keyboard"},
{"$ref": "#/filename"} {"$ref": "#/filename"}
], ],
"minItems": 2,
"maxItems": 2,
"unevaluatedItems": false
},
"keyboard_keymap_env": {
"type": "array",
"prefixItems": [
{"$ref": "#/keyboard"},
{"$ref": "#/filename"},
{"$ref": "#/kvp_object"}
],
"minItems": 3,
"maxItems": 3,
"unevaluatedItems": false "unevaluatedItems": false
}, },
"keycode": { "keycode": {
@@ -94,10 +86,6 @@
"maxLength": 7, "maxLength": 7,
"pattern": "^[A-Z][A-Zs_0-9]*$" "pattern": "^[A-Z][A-Zs_0-9]*$"
}, },
"kvp_object": {
"type": "object",
"additionalProperties": {"type": "string"}
},
"layout_macro": { "layout_macro": {
"oneOf": [ "oneOf": [
{ {

View File

@@ -0,0 +1 @@
false

View File

@@ -6,10 +6,6 @@
"encoder_config": { "encoder_config": {
"type": "object", "type": "object",
"properties": { "properties": {
"driver": {
"type": "string",
"enum": ["custom", "quadrature"]
},
"rotary": { "rotary": {
"type": "array", "type": "array",
"items": { "items": {
@@ -17,9 +13,9 @@
"additionalProperties": false, "additionalProperties": false,
"required": ["pin_a", "pin_b"], "required": ["pin_a", "pin_b"],
"properties": { "properties": {
"pin_a": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pin_b": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"} "resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
} }
} }
@@ -28,29 +24,26 @@
"dip_switch_config": { "dip_switch_config": {
"type": "object", "type": "object",
"properties": { "properties": {
"pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} "pins": {
"$ref": "qmk.definitions.v1#/mcu_pin_array"
}
} }
}, },
"features_config": {
"$ref": "./definitions.jsonschema#/boolean_array",
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"not": {"required": ["lto"]}
}
}, },
"type": "object", "type": "object",
"not": {"required": ["vendorId", "productId"]}, // reject via keys... "not": { "required": [ "vendorId", "productId" ] }, // reject via keys...
"properties": { "properties": {
"keyboard_name": {"$ref": "./definitions.jsonschema#/text_identifier"}, "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard_folder": {"$ref": "./definitions.jsonschema#/keyboard"}, "keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
"maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"}, "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"manufacturer": {"$ref": "./definitions.jsonschema#/text_identifier"}, "manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
"url": { "url": {
"type": "string", "type": "string",
"format": "uri" "format": "uri"
}, },
"development_board": { "development_board": {
"type": "string", "type": "string",
"enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris", "imera", "svlinky"] "enum": ["promicro", "elite_c", "elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "michi", "bit_c_pro", "stemcell", "bluepill", "blackpill_f401", "blackpill_f411", "bonsai_c4", "helios", "liatris"]
}, },
"pin_compatible": { "pin_compatible": {
"type": "string", "type": "string",
@@ -84,7 +77,6 @@
"STM32F407", "STM32F407",
"STM32F411", "STM32F411",
"STM32F446", "STM32F446",
"STM32G0B1",
"STM32G431", "STM32G431",
"STM32G474", "STM32G474",
"STM32H723", "STM32H723",
@@ -98,7 +90,6 @@
"GD32VF103", "GD32VF103",
"WB32F3G71", "WB32F3G71",
"WB32FQ95", "WB32FQ95",
"AT32F415",
"atmega16u2", "atmega16u2",
"atmega32u2", "atmega32u2",
"atmega16u4", "atmega16u4",
@@ -119,8 +110,8 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"default_brightness": { "default_brightness": {
"type": "integer", "type": "integer",
"minimum": 0, "minimum": 0,
@@ -132,28 +123,8 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"clicky": {"type": "boolean"}
}
},
"driver": {
"type": "string",
"enum": ["dac_additive", "dac_basic", "pwm_software", "pwm_hardware"]
},
"macro_beep": {"type": "boolean"}, "macro_beep": {"type": "boolean"},
"pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"power_control": {
"type": "object",
"additionalProperties": false,
"properties": {
"on_state": {"$ref": "./definitions.jsonschema#/bit"},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"voices": {"type": "boolean"} "voices": {"type": "boolean"}
} }
}, },
@@ -163,7 +134,7 @@
"properties": { "properties": {
"driver": { "driver": {
"type": "string", "type": "string",
"enum": ["custom", "pwm", "software", "timer"] "enum": ["pwm", "software", "timer", "custom"]
}, },
"default": { "default": {
"type": "object", "type": "object",
@@ -171,45 +142,23 @@
"properties": { "properties": {
"on": {"type": "boolean"}, "on": {"type": "boolean"},
"breathing": {"type": "boolean"}, "breathing": {"type": "boolean"},
"brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
} }
}, },
"breathing": {"type": "boolean"}, "breathing": {"type": "boolean"},
"breathing_period": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": { "levels": {
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"maximum": 31 "maximum": 31
}, },
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"on_state": {"$ref": "./definitions.jsonschema#/bit"}, "on_state": {"$ref": "qmk.definitions.v1#/bit"},
"as_caps_lock": {"type": "boolean"} "as_caps_lock": {"type": "boolean"}
} }
}, },
"battery": {
"type": "object",
"additionalProperties": false,
"properties": {
"driver": {
"type": "string",
"enum": ["adc", "custom", "vendor"]
},
"adc": {
"type": "object",
"additionalProperties": false,
"properties": {
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"reference_voltage": {"type": "integer"},
"divider_r1": {"type": "integer"},
"divider_r2": {"type": "integer"},
"resolution": {"type": "integer"}
}
},
"sample_interval": {"type": "integer"}
}
},
"bluetooth": { "bluetooth": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -245,7 +194,6 @@
"type": "string", "type": "string",
"enum": [ "enum": [
"apm32-dfu", "apm32-dfu",
"at32-dfu",
"atmel-dfu", "atmel-dfu",
"bootloadhid", "bootloadhid",
"caterina", "caterina",
@@ -291,7 +239,7 @@
"type": "string", "type": "string",
"enum": ["COL2ROW", "ROW2COL"] "enum": ["COL2ROW", "ROW2COL"]
}, },
"debounce": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"caps_word": { "caps_word": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -299,20 +247,20 @@
"enabled": {"type": "boolean"}, "enabled": {"type": "boolean"},
"both_shifts_turns_on": {"type": "boolean"}, "both_shifts_turns_on": {"type": "boolean"},
"double_tap_shift_turns_on": {"type": "boolean"}, "double_tap_shift_turns_on": {"type": "boolean"},
"idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"invert_on_shift": {"type": "boolean"} "invert_on_shift": {"type": "boolean"}
} }
}, },
"combo": { "combo": {
"type": "object", "type": "object",
"properties": { "properties": {
"count": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term": {"$ref": "./definitions.jsonschema#/unsigned_int"} "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
}, },
"community_layouts": { "community_layouts": {
"type": "array", "type": "array",
"items": {"$ref": "./definitions.jsonschema#/filename"} "items": {"$ref": "qmk.definitions.v1#/filename"}
}, },
"dip_switch": { "dip_switch": {
"$ref": "#/definitions/dip_switch_config", "$ref": "#/definitions/dip_switch_config",
@@ -333,17 +281,6 @@
} }
} }
}, },
"dynamic_keymap": {
"type": "object",
"properties": {
"eeprom_max_addr": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"layer_count": {
"type": "integer",
"minimum": 1,
"maximum": 32
}
}
},
"eeprom": { "eeprom": {
"properties": { "properties": {
"driver": {"type": "string"}, "driver": {"type": "string"},
@@ -353,10 +290,10 @@
"properties": { "properties": {
"driver": { "driver": {
"type": "string", "type": "string",
"enum": ["none", "custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"] "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
}, },
"backing_size": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"logical_size": {"$ref": "./definitions.jsonschema#/unsigned_int"} "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
} }
} }
@@ -367,69 +304,43 @@
"enabled": {"type": "boolean"} "enabled": {"type": "boolean"}
} }
}, },
"features": { "$ref": "#/definitions/features_config" }, "features": {
"$ref": "qmk.definitions.v1#/boolean_array",
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
},
"indicators": { "indicators": {
"type": "object", "type": "object",
"properties": { "properties": {
"caps_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"num_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"scroll_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"compose": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "compose": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"kana": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "kana": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"on_state": {"$ref": "./definitions.jsonschema#/bit"} "on_state": {"$ref": "qmk.definitions.v1#/bit"}
}
},
"joystick": {
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
"driver": {"type": "string"},
"button_count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"axis_resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"axes": {
"type": "object",
"propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]},
"additionalProperties": {
"oneOf": [
{
"type": "object",
"properties": {
"input_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"low": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"rest": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"high": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
{
"type": "string",
"enum": ["virtual"]
}
]
}
}
}
},
"keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
"layer_lock": {
"type": "object",
"properties": {
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
} }
}, },
"keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"layout_aliases": { "layout_aliases": {
"type": "object", "type": "object",
"additionalProperties": {"$ref": "./definitions.jsonschema#/layout_macro"} "additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
}, },
"layouts": { "layouts": {
"type": "object", "type": "object",
"propertyNames": {"$ref": "./definitions.jsonschema#/layout_macro"}, "propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
"additionalProperties": { "additionalProperties": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"filename": {"type": "string"}, "filename": {
"c_macro": {"type": "boolean"}, "type": "string"
"json_layout": {"type": "boolean"}, },
"c_macro": {
"type": "boolean"
},
"json_layout": {
"type": "boolean"
},
"layout": { "layout": {
"type": "array", "type": "array",
"items": { "items": {
@@ -437,7 +348,7 @@
"additionalProperties": false, "additionalProperties": false,
"required": ["x", "y"], "required": ["x", "y"],
"properties": { "properties": {
"encoder": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"label": { "label": {
"type": "string", "type": "string",
"pattern": "^[^\\n]*$" "pattern": "^[^\\n]*$"
@@ -451,50 +362,25 @@
"minimum": 0 "minimum": 0
} }
}, },
"r": {"$ref": "./definitions.jsonschema#/signed_decimal"}, "r": {"$ref": "qmk.definitions.v1#/signed_decimal"},
"rx": {"$ref": "./definitions.jsonschema#/unsigned_decimal"}, "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"ry": {"$ref": "./definitions.jsonschema#/unsigned_decimal"}, "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
"h": {"$ref": "./definitions.jsonschema#/key_unit"}, "h": {"$ref": "qmk.definitions.v1#/key_unit"},
"w": {"$ref": "./definitions.jsonschema#/key_unit"}, "w": {"$ref": "qmk.definitions.v1#/key_unit"},
"x": {"$ref": "./definitions.jsonschema#/key_unit"}, "x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "./definitions.jsonschema#/key_unit"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"}
"hand": {
"type": "string",
"enum": ["L", "R", "*"]
}
} }
} }
} }
} }
} }
}, },
"haptic": {
"type": "object",
"properties": {
"driver": {
"type": "string",
"enum": ["drv2605l", "solenoid"]
}
}
},
"host": {
"type": "object",
"properties": {
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"nkro": {"type": "boolean"}
}
}
}
},
"leader_key": { "leader_key": {
"type": "object", "type": "object",
"properties": { "properties": {
"timing": {"type": "boolean"}, "timing": {"type": "boolean"},
"strict_processing": {"type": "boolean"}, "strict_processing": {"type": "boolean"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
}, },
"matrix_pins": { "matrix_pins": {
@@ -504,39 +390,32 @@
"custom": {"type": "boolean"}, "custom": {"type": "boolean"},
"custom_lite": {"type": "boolean"}, "custom_lite": {"type": "boolean"},
"ghost": {"type": "boolean"}, "ghost": {"type": "boolean"},
"input_pressed_state": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "input_pressed_state": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"io_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"masked": {"type": "boolean"},
"direct": { "direct": {
"type": "array", "type": "array",
"items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}, },
"cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
},
"modules": {
"type": "array",
"items": {
"type": "string"
} }
}, },
"mouse_key": { "mouse_key": {
"type": "object", "type": "object",
"properties": { "properties": {
"enabled": {"type": "boolean"}, "enabled": {"type": "boolean"},
"delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"max_speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"time_to_max": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"wheel_delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
} }
}, },
"oneshot": { "oneshot": {
"type": "object", "type": "object",
"properties": { "properties": {
"tap_toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
}, },
"led_matrix": { "led_matrix": {
@@ -544,8 +423,10 @@
"properties": { "properties": {
"animations": { "animations": {
"type": "object", "type": "object",
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
"additionalProperties": {"type": "boolean"} "additionalProperties": {
"type": "boolean"
}
}, },
"default": { "default": {
"type": "object", "type": "object",
@@ -553,61 +434,36 @@
"properties": { "properties": {
"on": {"type": "boolean"}, "on": {"type": "boolean"},
"animation": {"type": "string"}, "animation": {"type": "string"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
} }
}, },
"driver": { "driver": {"type": "string"},
"type": "string",
"enum": [
"custom",
"is31fl3218",
"is31fl3236",
"is31fl3729",
"is31fl3731",
"is31fl3733",
"is31fl3736",
"is31fl3737",
"is31fl3741",
"is31fl3742a",
"is31fl3743a",
"is31fl3745",
"is31fl3746a",
"snled27351"
]
},
"center_point": { "center_point": {
"type": "array", "type": "array",
"minItems": 2, "minItems": 2,
"maxItems": 2, "maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}, },
"flag_steps": { "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"type": "array", "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"minItems": 1, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
}, "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"react_on_keyup": {"type": "boolean"}, "react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"}, "sleep": {"type": "boolean"},
"split_count": { "split_count": {
"type": "array", "type": "array",
"minItems": 2, "minItems": 2,
"maxItems": 2, "maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"} "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}, },
"layout": { "layout": {
"type": "array", "type": "array",
"items": { "items": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": ["x", "y"],
"properties": { "properties": {
"matrix": { "matrix": {
"type": "array", "type": "array",
@@ -618,9 +474,9 @@
"minimum": 0 "minimum": 0
} }
}, },
"x": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"},
"flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
} }
} }
} }
@@ -631,8 +487,10 @@
"properties": { "properties": {
"animations": { "animations": {
"type": "object", "type": "object",
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
"additionalProperties": {"type": "boolean"} "additionalProperties": {
"type": "boolean"
}
}, },
"default": { "default": {
"type": "object", "type": "object",
@@ -640,67 +498,40 @@
"properties": { "properties": {
"on": {"type": "boolean"}, "on": {"type": "boolean"},
"animation": {"type": "string"}, "animation": {"type": "string"},
"hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
"flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
} }
}, },
"driver": { "driver": {"type": "string"},
"type": "string",
"enum": [
"aw20216s",
"custom",
"is31fl3218",
"is31fl3236",
"is31fl3729",
"is31fl3731",
"is31fl3733",
"is31fl3736",
"is31fl3737",
"is31fl3741",
"is31fl3742a",
"is31fl3743a",
"is31fl3745",
"is31fl3746a",
"snled27351",
"ws2812"
]
},
"center_point": { "center_point": {
"type": "array", "type": "array",
"minItems": 2, "minItems": 2,
"maxItems": 2, "maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
}, },
"flag_steps": { "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"type": "array", "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"minItems": 1, "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
}, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sat_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"react_on_keyup": {"type": "boolean"}, "react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"}, "sleep": {"type": "boolean"},
"split_count": { "split_count": {
"type": "array", "type": "array",
"minItems": 2, "minItems": 2,
"maxItems": 2, "maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"} "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}, },
"layout": { "layout": {
"type": "array", "type": "array",
"items": { "items": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": ["x", "y"],
"properties": { "properties": {
"matrix": { "matrix": {
"type": "array", "type": "array",
@@ -711,9 +542,9 @@
"minimum": 0 "minimum": 0
} }
}, },
"x": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "x": {"$ref": "qmk.definitions.v1#/key_unit"},
"y": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "y": {"$ref": "qmk.definitions.v1#/key_unit"},
"flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
} }
} }
} }
@@ -725,27 +556,29 @@
"properties": { "properties": {
"animations": { "animations": {
"type": "object", "type": "object",
"propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"}, "propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
"additionalProperties": {"type": "boolean"} "additionalProperties": {
"type": "boolean"
}
}, },
"brightness_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"default": { "default": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"on": {"type": "boolean"}, "on": {"type": "boolean"},
"animation": {"type": "string"}, "animation": {"type": "string"},
"hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
} }
}, },
"driver": { "driver": {
"type": "string", "type": "string",
"enum": ["apa102", "custom", "ws2812"] "enum": ["apa102", "custom", "ws2812"]
}, },
"hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"layers": { "layers": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -760,29 +593,26 @@
"override_rgb": {"type": "boolean"} "override_rgb": {"type": "boolean"}
} }
}, },
"led_count": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"led_map": { "led_map": {
"type": "array", "type": "array",
"minItems": 2, "minItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"} "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}, },
"max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"pin": { "pin": {
"$ref": "./definitions.jsonschema#/mcu_pin", "$ref": "qmk.definitions.v1#/mcu_pin",
"$comment": "Deprecated: use ws2812.pin instead" "$comment": "Deprecated: use ws2812.pin instead"
}, },
"rgbw": { "rgbw": {"type": "boolean"},
"type": "boolean", "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"$comment": "Deprecated: use ws2812.rgbw instead"
},
"saturation_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"sleep": {"type": "boolean"}, "sleep": {"type": "boolean"},
"split": {"type": "boolean"}, "split": {"type": "boolean"},
"split_count": { "split_count": {
"type": "array", "type": "array",
"minItems": 2, "minItems": 2,
"maxItems": 2, "maxItems": 2,
"items": {"$ref": "./definitions.jsonschema#/unsigned_int"} "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
} }
}, },
@@ -791,8 +621,8 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"enabled": {"type": "boolean"}, "enabled": {"type": "boolean"},
"unlock_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "unlock_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"unlock_sequence": { "unlock_sequence": {
"type": "array", "type": "array",
"minItems": 1, "minItems": 1,
@@ -826,8 +656,8 @@
"properties": { "properties": {
"enabled": {"type": "boolean"}, "enabled": {"type": "boolean"},
"mouse_enabled": {"type": "boolean"}, "mouse_enabled": {"type": "boolean"},
"clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"driver": { "driver": {
"type": "string", "type": "string",
"enum": ["busywait", "interrupt", "usart", "vendor"] "enum": ["busywait", "interrupt", "usart", "vendor"]
@@ -864,11 +694,11 @@
"properties": { "properties": {
"direct": { "direct": {
"type": "array", "type": "array",
"items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}, },
"cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}, "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
"unused": {"$ref": "./definitions.jsonschema#/mcu_pin_array"} "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
} }
} }
} }
@@ -895,37 +725,19 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"matrix_grid": { "matrix_grid": {
"$ref": "./definitions.jsonschema#/mcu_pin_array", "$ref": "qmk.definitions.v1#/mcu_pin_array",
"minItems": 2, "minItems": 2,
"maxItems": 2 "maxItems": 2
} }
} }
}, },
"soft_serial_pin": { "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"$ref": "./definitions.jsonschema#/mcu_pin",
"$comment": "Deprecated: use split.serial.pin instead"
},
"soft_serial_speed": { "soft_serial_speed": {
"type": "integer", "type": "integer",
"$comment": "Deprecated: use split.serial.speed instead" "minimum": 0,
}, "maximum": 5
"serial": {
"type": "object",
"additionalProperties": false,
"properties": {
"driver": {
"type": "string",
"enum": ["bitbang", "usart", "vendor"]
},
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"speed": {
"type": "integer",
"minimum": 0,
"maximum": 5
}
}
}, },
"transport": { "transport": {
"type": "object", "type": "object",
@@ -933,7 +745,7 @@
"properties": { "properties": {
"protocol": { "protocol": {
"type": "string", "type": "string",
"enum": ["custom", "i2c", "serial"] "enum": ["custom", "i2c", "serial", "serial_usart"]
}, },
"sync": { "sync": {
"type": "object", "type": "object",
@@ -950,9 +762,9 @@
"st7565": {"type": "boolean"}, "st7565": {"type": "boolean"},
"wpm": {"type": "boolean"} "wpm": {"type": "boolean"}
} }
}, }
"watchdog": {"type": "boolean"}, "watchdog": {"type": "boolean"},
"watchdog_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"sync_matrix_state": { "sync_matrix_state": {
"type": "boolean", "type": "boolean",
"$comment": "Deprecated: use sync.matrix_state instead" "$comment": "Deprecated: use sync.matrix_state instead"
@@ -968,8 +780,8 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"enabled": {"type": "boolean"}, "enabled": {"type": "boolean"},
"polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"} "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
}, },
"main": { "main": {
@@ -979,7 +791,7 @@
}, },
"matrix_grid": { "matrix_grid": {
"type": "array", "type": "array",
"items": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"$comment": "Deprecated: use split.handedness.matrix_grid instead" "$comment": "Deprecated: use split.handedness.matrix_grid instead"
} }
} }
@@ -991,7 +803,6 @@
"tapping": { "tapping": {
"type": "object", "type": "object",
"properties": { "properties": {
"chordal_hold": {"type": "boolean"},
"force_hold": {"type": "boolean"}, "force_hold": {"type": "boolean"},
"force_hold_per_key": {"type": "boolean"}, "force_hold_per_key": {"type": "boolean"},
"ignore_mod_tap_interrupt": {"type": "boolean"}, "ignore_mod_tap_interrupt": {"type": "boolean"},
@@ -1001,9 +812,9 @@
"permissive_hold_per_key": {"type": "boolean"}, "permissive_hold_per_key": {"type": "boolean"},
"retro": {"type": "boolean"}, "retro": {"type": "boolean"},
"retro_per_key": {"type": "boolean"}, "retro_per_key": {"type": "boolean"},
"term": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"term_per_key": {"type": "boolean"}, "term_per_key": {"type": "boolean"},
"toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"} "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}
} }
}, },
"usb": { "usb": {
@@ -1011,20 +822,16 @@
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"device_ver": { "device_ver": {
"$ref": "./definitions.jsonschema#/hex_number_4d", "$ref": "qmk.definitions.v1#/hex_number_4d",
"$comment": "Deprecated: use device_version instead" "$comment": "Deprecated: use device_version instead"
}, },
"device_version": {"$ref": "./definitions.jsonschema#/bcd_version"}, "device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
"force_nkro": { "force_nkro": {"type": "boolean"},
"type": "boolean", "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"$comment": "Deprecated: use host.default.nkro instead" "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
"max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"},
},
"pid": {"$ref": "./definitions.jsonschema#/hex_number_4d"},
"vid": {"$ref": "./definitions.jsonschema#/hex_number_4d"},
"max_power": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"no_startup_check": {"type": "boolean"}, "no_startup_check": {"type": "boolean"},
"polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"shared_endpoint": { "shared_endpoint": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -1033,17 +840,17 @@
"mouse": {"type": "boolean"} "mouse": {"type": "boolean"}
} }
}, },
"suspend_wakeup_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"wait_for_enumeration": {"type": "boolean"} "wait_for": {"type": "boolean"}
} }
}, },
"qmk": { "qmk": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"keys_per_scan": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"tap_capslock_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"locking": { "locking": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
@@ -1058,10 +865,10 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"esc_output": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "esc_output": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"esc_input": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "esc_input": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"led": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "led": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"speaker": {"$ref": "./definitions.jsonschema#/mcu_pin"} "speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"}
} }
}, },
"ws2812": { "ws2812": {
@@ -1072,10 +879,9 @@
"type": "string", "type": "string",
"enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"] "enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"]
}, },
"pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}, "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"rgbw": {"type": "boolean"}, "i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"},
"i2c_address": {"$ref": "./definitions.jsonschema#/hex_number_2d"}, "i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
"i2c_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
} }
} }
} }

View File

@@ -30,10 +30,10 @@
"keycodes": { "keycodes": {
"type": "object", "type": "object",
"propertyNames": { "propertyNames": {
"$ref": "./definitions.jsonschema#/hex_number_4d" "$ref": "qmk.definitions.v1#/hex_number_4d"
}, },
"additionalProperties": { "additionalProperties": {
"type": "object", // use './definitions.jsonschema#/keycode_decl' when problem keycodes are removed "type": "object", // use 'qmk.definitions.v1#/keycode_decl' when problem keycodes are removed
"required": [ "required": [
"key" "key"
], ],

View File

@@ -10,10 +10,10 @@
"minLength": 1, "minLength": 1,
"pattern": "^[a-z][0-9a-z_]*$" "pattern": "^[a-z][0-9a-z_]*$"
}, },
"host_language": {"$ref": "./definitions.jsonschema#/text_identifier"}, "host_language": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keyboard": {"$ref": "./definitions.jsonschema#/text_identifier"}, "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
"keymap": {"$ref": "./definitions.jsonschema#/text_identifier"}, "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
"layout": {"$ref": "./definitions.jsonschema#/layout_macro"}, "layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
"layers": { "layers": {
"type": "array", "type": "array",
"items": { "items": {
@@ -35,17 +35,6 @@
} }
} }
}, },
"dip_switches": {
"type": "array",
"items": {
"type": "object",
"required": ["on", "off"],
"properties": {
"on": {"type": "string"},
"off": {"type": "string"}
}
}
},
"macros": { "macros": {
"type": "array", "type": "array",
"items": { "items": {
@@ -66,11 +55,11 @@
"keycodes": { "keycodes": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "./definitions.jsonschema#/text_identifier" "$ref": "qmk.definitions.v1#/text_identifier"
} }
}, },
"duration": { "duration": {
"$ref": "./definitions.jsonschema#/unsigned_int" "$ref": "qmk.definitions.v1#/unsigned_int"
} }
} }
} }
@@ -78,16 +67,15 @@
} }
} }
}, },
"keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"}, "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
"config": {"$ref": "./keyboard.jsonschema#"}, "config": {"$ref": "qmk.keyboard.v1"},
"notes": { "notes": {
"type": "string" "type": "string"
},
"modules": {
"type": "array",
"items": {
"type": "string"
}
} }
} },
"required": [
"keyboard",
"layout",
"layers"
]
} }

View File

@@ -0,0 +1 @@
true

Some files were not shown because too many files have changed in this diff Show More