mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-27 11:31:13 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
d5c824c394
35
.clangd
35
.clangd
@ -1,4 +1,33 @@
|
|||||||
CompileFlags:
|
CompileFlags:
|
||||||
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
|
Add:
|
||||||
Remove: [-W*, -mcall-prologues]
|
[
|
||||||
Compiler: clang
|
-Wno-unknown-attributes,
|
||||||
|
-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,
|
||||||
|
]
|
||||||
|
@ -4,39 +4,40 @@
|
|||||||
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
|
|
||||||
|
|
||||||
[{qmk,*.py}]
|
[{Makefile,*.mk}]
|
||||||
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
|
||||||
|
|
||||||
[Makefile]
|
# Don't override anything in `lib/`...
|
||||||
end_of_line = lf
|
|
||||||
indent_style = tab
|
|
||||||
|
|
||||||
[*.sh]
|
|
||||||
end_of_line = lf
|
|
||||||
|
|
||||||
# The gitattributes file will handle the line endings conversion properly according to the operating system settings for other files
|
|
||||||
|
|
||||||
|
|
||||||
# We don't have gitattributes properly for these
|
|
||||||
# So if the user have for example core.autocrlf set to true
|
|
||||||
# the line endings would be wrong.
|
|
||||||
[lib/**]
|
[lib/**]
|
||||||
|
indent_style = unset
|
||||||
|
indent_size = unset
|
||||||
|
tab_width = unset
|
||||||
end_of_line = unset
|
end_of_line = unset
|
||||||
|
charset = unset
|
||||||
|
spelling_language = unset
|
||||||
|
trim_trailing_whitespace = unset
|
||||||
|
insert_final_newline = unset
|
||||||
|
|
||||||
|
# ...except QMK's `lib/python`.
|
||||||
|
[{*.py,lib/python/**.py}]
|
||||||
|
end_of_line = lf
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
max_line_length = 200
|
||||||
|
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -38,4 +38,4 @@ body:
|
|||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional Context
|
label: Additional Context
|
||||||
description: Add any other relevant information about the problem here.
|
description: Add any other relevant information about the problem here.
|
||||||
|
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -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/Uq7gcHh
|
url: https://discord.gg/qmk
|
||||||
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
|
||||||
|
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,6 +1,5 @@
|
|||||||
<!--- 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
|
||||||
@ -15,7 +14,7 @@
|
|||||||
- [ ] New feature
|
- [ ] New feature
|
||||||
- [ ] Enhancement/optimization
|
- [ ] Enhancement/optimization
|
||||||
- [ ] Keyboard (addition or update)
|
- [ ] Keyboard (addition or update)
|
||||||
- [ ] Keymap/layout/userspace (addition or update)
|
- [ ] Keymap/layout (addition or update)
|
||||||
- [ ] Documentation
|
- [ ] Documentation
|
||||||
|
|
||||||
## Issues Fixed or Closed by This PR
|
## Issues Fixed or Closed by This PR
|
||||||
|
86
.github/labeler.yml
vendored
86
.github/labeler.yml
vendored
@ -1,46 +1,60 @@
|
|||||||
core:
|
core:
|
||||||
- quantum/**/*
|
- changed-files:
|
||||||
- tmk_core/**/*
|
- any-glob-to-any-file:
|
||||||
- drivers/**/*
|
- quantum/**
|
||||||
- tests/**/*
|
- tmk_core/**
|
||||||
- util/**/*
|
- drivers/**
|
||||||
- platforms/**/*
|
- tests/**
|
||||||
- builddefs/**/*
|
- util/**
|
||||||
- Makefile
|
- platforms/**
|
||||||
- '*.mk'
|
- builddefs/*.mk
|
||||||
|
- Makefile
|
||||||
|
- '*.mk'
|
||||||
dependencies:
|
dependencies:
|
||||||
- any:
|
- changed-files:
|
||||||
- 'lib/**/*'
|
- all-globs-to-any-file:
|
||||||
- '!lib/python/**/*'
|
- lib/**
|
||||||
|
- '!lib/python/**'
|
||||||
keyboard:
|
keyboard:
|
||||||
- any:
|
- changed-files:
|
||||||
- 'keyboards/**/*'
|
- all-globs-to-any-file:
|
||||||
- '!keyboards/**/keymaps/**/*'
|
- keyboards/**
|
||||||
|
- '!keyboards/**/keymaps/**'
|
||||||
keymap:
|
keymap:
|
||||||
- users/**/*
|
- changed-files:
|
||||||
- layouts/**/*
|
- any-glob-to-any-file:
|
||||||
- keyboards/**/keymaps/**/*
|
- users/**
|
||||||
|
- layouts/**
|
||||||
|
- keyboards/**/keymaps/**
|
||||||
via:
|
via:
|
||||||
- keyboards/**/keymaps/via/*
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- keyboards/**/keymaps/via/*
|
||||||
cli:
|
cli:
|
||||||
- requirements.txt
|
- changed-files:
|
||||||
- lib/python/**/*
|
- any-glob-to-any-file:
|
||||||
|
- requirements.txt
|
||||||
|
- lib/python/**
|
||||||
python:
|
python:
|
||||||
- '**/*.py'
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- '**/*.py'
|
||||||
documentation:
|
documentation:
|
||||||
- docs/**/*
|
- changed-files:
|
||||||
translation:
|
- any-glob-to-any-file:
|
||||||
- docs/fr-fr/**/*
|
- docs/**
|
||||||
- docs/es/**/*
|
- builddefs/docsgen/**
|
||||||
- docs/ja/**/*
|
|
||||||
- docs/he-il/**/*
|
|
||||||
- docs/pt-br/**/*
|
|
||||||
- docs/zh-cn/**/*
|
|
||||||
- docs/de/**/*
|
|
||||||
- docs/ru-ru/**/*
|
|
||||||
CI:
|
CI:
|
||||||
- .github/**/*
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- .github/**
|
||||||
dd:
|
dd:
|
||||||
- data/constants/**/*
|
- changed-files:
|
||||||
- data/mappings/**/*
|
- any-glob-to-any-file:
|
||||||
- data/schemas/**/*
|
- data/constants/**
|
||||||
|
- data/mappings/**
|
||||||
|
- data/schemas/**
|
||||||
|
community_module:
|
||||||
|
- changed-files:
|
||||||
|
- any-glob-to-any-file:
|
||||||
|
- modules/**
|
||||||
|
6
.github/workflows/auto_approve.yml
vendored
6
.github/workflows/auto_approve.yml
vendored
@ -13,8 +13,8 @@ jobs:
|
|||||||
if: github.repository == 'qmk/qmk_firmware'
|
if: github.repository == 'qmk/qmk_firmware'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: mheap/automatic-approve-action@v1
|
- uses: zvecr/automatic-approve-action@safe_files
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||||
workflows: "format.yml,lint.yml,unit_test.yml"
|
workflows: "labeler.yml,lint.yml,docs.yml"
|
||||||
dangerous_files: "lib/python/,Makefile,paths.mk,builddefs/"
|
safe_files: "keyboards/,docs/"
|
||||||
|
1
.github/workflows/auto_tag.yml
vendored
1
.github/workflows/auto_tag.yml
vendored
@ -15,6 +15,7 @@ on:
|
|||||||
- quantum/**/*
|
- quantum/**/*
|
||||||
- tests/**/*
|
- tests/**/*
|
||||||
- tmk_core/**/*
|
- tmk_core/**/*
|
||||||
|
- lib/python/**/*
|
||||||
- util/**/*
|
- util/**/*
|
||||||
- Makefile
|
- Makefile
|
||||||
- '*.mk'
|
- '*.mk'
|
||||||
|
139
.github/workflows/ci_build_major_branch.yml
vendored
Normal file
139
.github/workflows/ci_build_major_branch.yml
vendored
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
name: CI Build Major Branch
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master, develop]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
branch:
|
||||||
|
type: choice
|
||||||
|
description: "Branch to build"
|
||||||
|
options: [master, develop]
|
||||||
|
|
||||||
|
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:
|
||||||
|
slice_length: ${{ steps.generate_slice_length.outputs.slice_length }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y jq
|
||||||
|
|
||||||
|
- name: Disable safe.directory check
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory '*'
|
||||||
|
|
||||||
|
- name: Checkout QMK Firmware
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine concurrency
|
||||||
|
id: generate_slice_length
|
||||||
|
run: |
|
||||||
|
target_count=$( {
|
||||||
|
qmk find -km default 2>/dev/null
|
||||||
|
# qmk find -km xap 2>/dev/null
|
||||||
|
} | sort | uniq | wc -l)
|
||||||
|
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
|
||||||
|
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
build_targets:
|
||||||
|
name: "Compile keymap ${{ matrix.keymap }}"
|
||||||
|
needs: determine_concurrency
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
keymap: [default]
|
||||||
|
# keymap: [default, xap]
|
||||||
|
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@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Download firmwares
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
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: Check if failure marker file exists
|
||||||
|
id: check_failure_marker
|
||||||
|
uses: andstor/file-existence-action@v3
|
||||||
|
with:
|
||||||
|
files: ./.failed
|
||||||
|
|
||||||
|
- name: Fail build if needed
|
||||||
|
if: steps.check_failure_marker.outputs.files_exists == 'true'
|
||||||
|
run: |
|
||||||
|
# Exit with failure if the compilation stage failed
|
||||||
|
exit 1
|
181
.github/workflows/ci_build_major_branch_keymap.yml
vendored
Normal file
181
.github/workflows/ci_build_major_branch_keymap.yml
vendored
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
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: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y jq
|
||||||
|
|
||||||
|
- name: Disable safe.directory check
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory '*'
|
||||||
|
|
||||||
|
- name: Checkout QMK Firmware
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Generate build targets
|
||||||
|
id: generate_targets
|
||||||
|
run: |
|
||||||
|
{ # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer
|
||||||
|
counter=0
|
||||||
|
echo -n '{'
|
||||||
|
qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do
|
||||||
|
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@v4
|
||||||
|
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
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
target: ${{ fromJson(needs.generate_targets.outputs.targets) }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y jq
|
||||||
|
|
||||||
|
- name: Disable safe.directory check
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory '*'
|
||||||
|
|
||||||
|
- name: Checkout QMK Firmware
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Get target definitions
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: targets-${{ inputs.keymap }}
|
||||||
|
path: .
|
||||||
|
|
||||||
|
- name: Deploy submodules
|
||||||
|
run: |
|
||||||
|
qmk git-submodule -f
|
||||||
|
|
||||||
|
- name: Dump targets
|
||||||
|
run: |
|
||||||
|
jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort
|
||||||
|
|
||||||
|
- name: Build targets
|
||||||
|
continue-on-error: true
|
||||||
|
run: |
|
||||||
|
export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 ))
|
||||||
|
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed
|
||||||
|
|
||||||
|
- name: Upload binaries
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
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@v4
|
||||||
|
|
||||||
|
- name: Download firmwares
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
pattern: firmware-${{ inputs.keymap }}-*
|
||||||
|
path: .
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: Upload all firmwares
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
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@v5
|
||||||
|
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
74
.github/workflows/ci_builds.yml
vendored
@ -1,74 +0,0 @@
|
|||||||
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 }}
|
|
41
.github/workflows/docs.yml
vendored
41
.github/workflows/docs.yml
vendored
@ -8,20 +8,27 @@ 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@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@ -29,18 +36,30 @@ jobs:
|
|||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
apt-get update && apt-get install -y rsync nodejs npm doxygen
|
apt-get update && apt-get install -y rsync doxygen
|
||||||
npm install -g moxygen
|
# install nvm
|
||||||
|
touch $HOME/.bashrc
|
||||||
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
|
|
||||||
|
- 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
|
||||||
uses: JamesIves/github-pages-deploy-action@v4.5.0
|
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
|
||||||
|
uses: JamesIves/github-pages-deploy-action@v4.7.3
|
||||||
with:
|
with:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
BASE_BRANCH: master
|
branch: gh-pages
|
||||||
BRANCH: gh-pages
|
folder: .build/docs
|
||||||
FOLDER: .build/docs
|
git-config-name: QMK Bot
|
||||||
GIT_CONFIG_EMAIL: hello@qmk.fm
|
git-config-email: hello@qmk.fm
|
||||||
|
5
.github/workflows/format.yml
vendored
5
.github/workflows/format.yml
vendored
@ -10,6 +10,7 @@ on:
|
|||||||
- 'lib/arm_atsam/**'
|
- 'lib/arm_atsam/**'
|
||||||
- 'lib/lib8tion/**'
|
- 'lib/lib8tion/**'
|
||||||
- 'lib/python/**'
|
- 'lib/python/**'
|
||||||
|
- 'modules/**'
|
||||||
- 'platforms/**'
|
- 'platforms/**'
|
||||||
- 'quantum/**'
|
- 'quantum/**'
|
||||||
- 'tests/**'
|
- 'tests/**'
|
||||||
@ -35,7 +36,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Get changed files
|
- name: Get changed files
|
||||||
id: file_changes
|
id: file_changes
|
||||||
uses: tj-actions/changed-files@v42
|
uses: tj-actions/changed-files@v46
|
||||||
|
with:
|
||||||
|
use_rest_api: true
|
||||||
|
|
||||||
- name: Run qmk formatters
|
- name: Run qmk formatters
|
||||||
shell: 'bash {0}'
|
shell: 'bash {0}'
|
||||||
|
4
.github/workflows/format_push.yml
vendored
4
.github/workflows/format_push.yml
vendored
@ -39,7 +39,7 @@ jobs:
|
|||||||
qmk format-text -a
|
qmk format-text -a
|
||||||
git diff
|
git diff
|
||||||
|
|
||||||
- uses: rlespinasse/github-slug-action@v3.x
|
- uses: rlespinasse/github-slug-action@v5
|
||||||
|
|
||||||
- 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@v5
|
uses: peter-evans/create-pull-request@v7
|
||||||
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||||
|
15
.github/workflows/labeler.yml
vendored
15
.github/workflows/labeler.yml
vendored
@ -1,18 +1,13 @@
|
|||||||
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@v4
|
- uses: actions/labeler@v5
|
||||||
with:
|
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
||||||
configuration-path: '.github/labeler.yml'
|
|
||||||
|
14
.github/workflows/lint.yml
vendored
14
.github/workflows/lint.yml
vendored
@ -27,7 +27,9 @@ jobs:
|
|||||||
|
|
||||||
- name: Get changed files
|
- name: Get changed files
|
||||||
id: file_changes
|
id: file_changes
|
||||||
uses: tj-actions/changed-files@v42
|
uses: tj-actions/changed-files@v46
|
||||||
|
with:
|
||||||
|
use_rest_api: true
|
||||||
|
|
||||||
- name: Print info
|
- name: Print info
|
||||||
run: |
|
run: |
|
||||||
@ -62,10 +64,12 @@ jobs:
|
|||||||
|
|
||||||
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 ! git diff --quiet $file; then
|
if [[ -f $file ]]; then
|
||||||
echo "File '${file}' Requires Formatting"
|
if ! git diff --quiet $file; then
|
||||||
echo "::error file=${file}::Requires Formatting"
|
echo "File '${file}' Requires Formatting"
|
||||||
exit_code=$(($exit_code + 1))
|
echo "::error file=${file}::Requires Formatting"
|
||||||
|
exit_code=$(($exit_code + 1))
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
4
.github/workflows/regen_push.yml
vendored
4
.github/workflows/regen_push.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
|||||||
util/regen.sh
|
util/regen.sh
|
||||||
git diff
|
git diff
|
||||||
|
|
||||||
- uses: rlespinasse/github-slug-action@v3.x
|
- uses: rlespinasse/github-slug-action@v5
|
||||||
|
|
||||||
- name: Become QMK Bot
|
- name: Become QMK Bot
|
||||||
run: |
|
run: |
|
||||||
@ -34,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@v5
|
uses: peter-evans/create-pull-request@v7
|
||||||
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
if: ${{ github.repository == 'qmk/qmk_firmware'}}
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||||
|
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@ -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
|
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware
|
||||||
|
|
||||||
stale-pr-message: >
|
stale-pr-message: >
|
||||||
Thank you for your contribution!
|
Thank you for your contribution!
|
||||||
|
2
.github/workflows/unit_test.yml
vendored
2
.github/workflows/unit_test.yml
vendored
@ -32,4 +32,4 @@ jobs:
|
|||||||
- 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: make test:all
|
run: qmk test-c
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -25,6 +25,8 @@
|
|||||||
*.la
|
*.la
|
||||||
*.stackdump
|
*.stackdump
|
||||||
*.sym
|
*.sym
|
||||||
|
index.html
|
||||||
|
firmware_list.json
|
||||||
|
|
||||||
# QMK-specific
|
# QMK-specific
|
||||||
api_data/v1
|
api_data/v1
|
||||||
@ -37,6 +39,7 @@ 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
|
||||||
@ -115,4 +118,5 @@ 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
27
.vscode/settings.json
vendored
@ -10,6 +10,13 @@
|
|||||||
"**/*.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",
|
||||||
@ -28,7 +35,23 @@
|
|||||||
"[json]": {
|
"[json]": {
|
||||||
"editor.formatOnSave": false
|
"editor.formatOnSave": false
|
||||||
},
|
},
|
||||||
"clangd.arguments": [
|
"clangd.arguments": ["--header-insertion=never"],
|
||||||
"--header-insertion=never"
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
72
Doxyfile
72
Doxyfile
@ -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/doxygen
|
OUTPUT_DIRECTORY = .build/docs/static/doxygen
|
||||||
ALLOW_UNICODE_NAMES = NO
|
ALLOW_UNICODE_NAMES = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
@ -40,8 +40,8 @@ ABBREVIATE_BRIEF = "The $name class" \
|
|||||||
ALWAYS_DETAILED_SEC = NO
|
ALWAYS_DETAILED_SEC = NO
|
||||||
INLINE_INHERITED_MEMB = NO
|
INLINE_INHERITED_MEMB = NO
|
||||||
FULL_PATH_NAMES = YES
|
FULL_PATH_NAMES = YES
|
||||||
STRIP_FROM_PATH =
|
STRIP_FROM_PATH =
|
||||||
STRIP_FROM_INC_PATH =
|
STRIP_FROM_INC_PATH =
|
||||||
SHORT_NAMES = NO
|
SHORT_NAMES = NO
|
||||||
JAVADOC_AUTOBRIEF = NO
|
JAVADOC_AUTOBRIEF = NO
|
||||||
QT_AUTOBRIEF = NO
|
QT_AUTOBRIEF = NO
|
||||||
@ -49,13 +49,13 @@ MULTILINE_CPP_IS_BRIEF = NO
|
|||||||
INHERIT_DOCS = YES
|
INHERIT_DOCS = YES
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
SEPARATE_MEMBER_PAGES = NO
|
||||||
TAB_SIZE = 4
|
TAB_SIZE = 4
|
||||||
ALIASES =
|
ALIASES =
|
||||||
TCL_SUBST =
|
TCL_SUBST =
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
OPTIMIZE_FOR_FORTRAN = NO
|
OPTIMIZE_FOR_FORTRAN = NO
|
||||||
OPTIMIZE_OUTPUT_VHDL = NO
|
OPTIMIZE_OUTPUT_VHDL = NO
|
||||||
EXTENSION_MAPPING =
|
EXTENSION_MAPPING =
|
||||||
MARKDOWN_SUPPORT = YES
|
MARKDOWN_SUPPORT = YES
|
||||||
TOC_INCLUDE_HEADINGS = 2
|
TOC_INCLUDE_HEADINGS = 2
|
||||||
AUTOLINK_SUPPORT = YES
|
AUTOLINK_SUPPORT = YES
|
||||||
@ -104,14 +104,14 @@ GENERATE_TODOLIST = YES
|
|||||||
GENERATE_TESTLIST = YES
|
GENERATE_TESTLIST = YES
|
||||||
GENERATE_BUGLIST = YES
|
GENERATE_BUGLIST = YES
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
GENERATE_DEPRECATEDLIST= YES
|
||||||
ENABLED_SECTIONS =
|
ENABLED_SECTIONS =
|
||||||
MAX_INITIALIZER_LINES = 30
|
MAX_INITIALIZER_LINES = 30
|
||||||
SHOW_USED_FILES = YES
|
SHOW_USED_FILES = YES
|
||||||
SHOW_FILES = YES
|
SHOW_FILES = YES
|
||||||
SHOW_NAMESPACES = YES
|
SHOW_NAMESPACES = YES
|
||||||
FILE_VERSION_FILTER =
|
FILE_VERSION_FILTER =
|
||||||
LAYOUT_FILE =
|
LAYOUT_FILE =
|
||||||
CITE_BIB_FILES =
|
CITE_BIB_FILES =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to warning and progress messages
|
# Configuration options related to warning and progress messages
|
||||||
@ -124,7 +124,7 @@ WARN_IF_DOC_ERROR = YES
|
|||||||
WARN_NO_PARAMDOC = NO
|
WARN_NO_PARAMDOC = NO
|
||||||
WARN_AS_ERROR = NO
|
WARN_AS_ERROR = NO
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
WARN_LOGFILE =
|
WARN_LOGFILE =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the input files
|
# Configuration options related to the input files
|
||||||
@ -143,19 +143,19 @@ FILE_PATTERNS = *.c \
|
|||||||
*.hpp \
|
*.hpp \
|
||||||
*.h++
|
*.h++
|
||||||
RECURSIVE = YES
|
RECURSIVE = YES
|
||||||
EXCLUDE =
|
EXCLUDE =
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
|
EXCLUDE_PATTERNS =
|
||||||
EXCLUDE_SYMBOLS =
|
EXCLUDE_SYMBOLS =
|
||||||
EXAMPLE_PATH =
|
EXAMPLE_PATH =
|
||||||
EXAMPLE_PATTERNS = *
|
EXAMPLE_PATTERNS = *
|
||||||
EXAMPLE_RECURSIVE = NO
|
EXAMPLE_RECURSIVE = NO
|
||||||
IMAGE_PATH =
|
IMAGE_PATH =
|
||||||
INPUT_FILTER =
|
INPUT_FILTER =
|
||||||
FILTER_PATTERNS =
|
FILTER_PATTERNS =
|
||||||
FILTER_SOURCE_FILES = NO
|
FILTER_SOURCE_FILES = NO
|
||||||
FILTER_SOURCE_PATTERNS =
|
FILTER_SOURCE_PATTERNS =
|
||||||
USE_MDFILE_AS_MAINPAGE =
|
USE_MDFILE_AS_MAINPAGE =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to source browsing
|
# Configuration options related to source browsing
|
||||||
@ -177,7 +177,7 @@ VERBATIM_HEADERS = YES
|
|||||||
|
|
||||||
ALPHABETICAL_INDEX = YES
|
ALPHABETICAL_INDEX = YES
|
||||||
COLS_IN_ALPHA_INDEX = 5
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
IGNORE_PREFIX =
|
IGNORE_PREFIX =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to disabled outputs
|
# Configuration options related to disabled outputs
|
||||||
@ -207,18 +207,18 @@ ENABLE_PREPROCESSING = YES
|
|||||||
MACRO_EXPANSION = NO
|
MACRO_EXPANSION = NO
|
||||||
EXPAND_ONLY_PREDEF = NO
|
EXPAND_ONLY_PREDEF = NO
|
||||||
SEARCH_INCLUDES = YES
|
SEARCH_INCLUDES = YES
|
||||||
INCLUDE_PATH =
|
INCLUDE_PATH =
|
||||||
INCLUDE_FILE_PATTERNS =
|
INCLUDE_FILE_PATTERNS =
|
||||||
PREDEFINED = __DOXYGEN__ PROGMEM
|
PREDEFINED = __DOXYGEN__ PROGMEM
|
||||||
EXPAND_AS_DEFINED =
|
EXPAND_AS_DEFINED =
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to external references
|
# Configuration options related to external references
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
TAGFILES =
|
TAGFILES =
|
||||||
GENERATE_TAGFILE =
|
GENERATE_TAGFILE =
|
||||||
ALLEXTERNALS = NO
|
ALLEXTERNALS = NO
|
||||||
EXTERNAL_GROUPS = YES
|
EXTERNAL_GROUPS = YES
|
||||||
EXTERNAL_PAGES = YES
|
EXTERNAL_PAGES = YES
|
||||||
@ -229,14 +229,14 @@ PERL_PATH = /usr/bin/perl
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
CLASS_DIAGRAMS = YES
|
CLASS_DIAGRAMS = YES
|
||||||
MSCGEN_PATH =
|
MSCGEN_PATH =
|
||||||
DIA_PATH =
|
DIA_PATH =
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
HIDE_UNDOC_RELATIONS = YES
|
||||||
HAVE_DOT = NO
|
HAVE_DOT = NO
|
||||||
DOT_NUM_THREADS = 0
|
DOT_NUM_THREADS = 0
|
||||||
DOT_FONTNAME = Helvetica
|
DOT_FONTNAME = Helvetica
|
||||||
DOT_FONTSIZE = 10
|
DOT_FONTSIZE = 10
|
||||||
DOT_FONTPATH =
|
DOT_FONTPATH =
|
||||||
CLASS_GRAPH = YES
|
CLASS_GRAPH = YES
|
||||||
COLLABORATION_GRAPH = YES
|
COLLABORATION_GRAPH = YES
|
||||||
GROUP_GRAPHS = YES
|
GROUP_GRAPHS = YES
|
||||||
@ -251,13 +251,13 @@ GRAPHICAL_HIERARCHY = YES
|
|||||||
DIRECTORY_GRAPH = YES
|
DIRECTORY_GRAPH = YES
|
||||||
DOT_IMAGE_FORMAT = png
|
DOT_IMAGE_FORMAT = png
|
||||||
INTERACTIVE_SVG = NO
|
INTERACTIVE_SVG = NO
|
||||||
DOT_PATH =
|
DOT_PATH =
|
||||||
DOTFILE_DIRS =
|
DOTFILE_DIRS =
|
||||||
MSCFILE_DIRS =
|
MSCFILE_DIRS =
|
||||||
DIAFILE_DIRS =
|
DIAFILE_DIRS =
|
||||||
PLANTUML_JAR_PATH =
|
PLANTUML_JAR_PATH =
|
||||||
PLANTUML_CFG_FILE =
|
PLANTUML_CFG_FILE =
|
||||||
PLANTUML_INCLUDE_PATH =
|
PLANTUML_INCLUDE_PATH =
|
||||||
DOT_GRAPH_MAX_NODES = 50
|
DOT_GRAPH_MAX_NODES = 50
|
||||||
MAX_DOT_GRAPH_DEPTH = 0
|
MAX_DOT_GRAPH_DEPTH = 0
|
||||||
DOT_TRANSPARENT = NO
|
DOT_TRANSPARENT = NO
|
||||||
|
79
Makefile
79
Makefile
@ -59,6 +59,7 @@ 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
|
||||||
@ -113,6 +114,29 @@ 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 DEFAULT_FOLDER and 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)))
|
||||||
@ -138,7 +162,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,$$(shell $(QMK_BIN) list-keyboards --no-resolve-defaults)),true)
|
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST_KB,$$(shell $(QMK_BIN) list-keyboards)),true)
|
||||||
KEYBOARD_RULE=$$(MATCHED_ITEM)
|
KEYBOARD_RULE=$$(MATCHED_ITEM)
|
||||||
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
|
$$(eval $$(call PARSE_KEYBOARD,$$(MATCHED_ITEM)))
|
||||||
else
|
else
|
||||||
@ -170,17 +194,6 @@ define PARSE_KEYBOARD
|
|||||||
# include the correct makefile to determine the actual name of it
|
# include the correct makefile to determine the actual name of it
|
||||||
CURRENT_KB := $1
|
CURRENT_KB := $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
|
# 5/4/3/2/1
|
||||||
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
|
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
|
||||||
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
|
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
|
||||||
@ -337,24 +350,23 @@ 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 :=
|
||||||
# list of possible targets, colon-delimited, to reassign to MAKE_TARGET and remove
|
TEST_NAME := $$(firstword $$(subst :, ,$$(RULE)))
|
||||||
TARGETS := :clean:
|
TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE)))
|
||||||
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 ($$(RULE),all)
|
ifeq ($$(TEST_NAME),all)
|
||||||
MATCHED_TESTS := $$(TEST_LIST)
|
MATCHED_TESTS := $$(TEST_LIST)
|
||||||
else
|
else
|
||||||
MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring /$$(TEST_SUBPATH)/, $$(patsubst %,%/,$$(TEST))), $$(TEST),))
|
MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(patsubst ./tests/%,%,$$(TEST)x)), $$(TEST),))
|
||||||
endif
|
endif
|
||||||
$$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(MAKE_TARGET))))
|
$$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET))))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
@ -437,6 +449,10 @@ git-submodules: git-submodule
|
|||||||
list-keyboards:
|
list-keyboards:
|
||||||
$(QMK_BIN) list-keyboards --no-resolve-defaults | 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 --no-resolve-defaults
|
$(QMK_BIN) list-keyboards --no-resolve-defaults
|
||||||
@ -462,3 +478,18 @@ 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"
|
||||||
|
@ -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/keycode_util.cpp \
|
tests/test_common/mouse_report_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 \
|
||||||
|
@ -11,6 +11,7 @@ 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
|
||||||
@ -34,10 +35,13 @@ ifeq ($(strip $(DUMP_CI_METADATA)),yes)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Force expansion
|
# Force expansion
|
||||||
TARGET := $(TARGET)
|
override TARGET := $(TARGET)
|
||||||
|
|
||||||
ifneq ($(FORCE_LAYOUT),)
|
ifneq ($(FORCE_LAYOUT),)
|
||||||
TARGET := $(TARGET)_$(FORCE_LAYOUT)
|
override 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
|
||||||
@ -58,9 +62,6 @@ 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)))
|
||||||
@ -97,20 +98,44 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
# Pull in rules.mk files from all our subfolders
|
# Pull in rules.mk files from all our subfolders
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
|
-include $(KEYBOARD_PATH_5)/rules.mk
|
||||||
include $(KEYBOARD_PATH_5)/rules.mk
|
-include $(KEYBOARD_PATH_4)/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_4)/rules.mk)","")
|
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/info.json)","")
|
||||||
include $(KEYBOARD_PATH_4)/rules.mk
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/info.json
|
||||||
endif
|
endif
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","")
|
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/info.json)","")
|
||||||
include $(KEYBOARD_PATH_3)/rules.mk
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_3)/info.json
|
||||||
endif
|
endif
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","")
|
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/info.json)","")
|
||||||
include $(KEYBOARD_PATH_2)/rules.mk
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_4)/info.json
|
||||||
endif
|
endif
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
|
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","")
|
||||||
include $(KEYBOARD_PATH_1)/rules.mk
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/info.json
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/keyboard.json)","")
|
||||||
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_1)/keyboard.json
|
||||||
|
endif
|
||||||
|
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/keyboard.json)","")
|
||||||
|
DD_CONFIG_FILES += $(KEYBOARD_PATH_2)/keyboard.json
|
||||||
|
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
|
endif
|
||||||
|
|
||||||
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
||||||
@ -119,7 +144,7 @@ MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
|||||||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||||
|
|
||||||
# Pull in rules from info.json
|
# Pull in rules from DD keyboard config
|
||||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
|
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)
|
||||||
|
|
||||||
@ -186,7 +211,10 @@ 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))", "")
|
||||||
$(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.)
|
# Allow a separately-found keymap.c next to keymap.json -- the keymap.c
|
||||||
|
# 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_PATH := $(KEYMAP_JSON_PATH)
|
||||||
@ -194,34 +222,82 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
|||||||
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
|
ifeq ($(OTHER_KEYMAP_C),)
|
||||||
-include $(KEYMAP_PATH)/rules.mk
|
# Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c)
|
||||||
|
-include $(KEYMAP_PATH)/rules.mk
|
||||||
|
endif
|
||||||
|
|
||||||
# Load any rules.mk content from keymap.json
|
# 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)
|
$(INTERMEDIATE_OUTPUT)/src/keymap.c: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
|
||||||
@$(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)
|
$(INTERMEDIATE_OUTPUT)/src/config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
|
||||||
@$(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)
|
||||||
|
|
||||||
generated-files: $(INTERMEDIATE_OUTPUT)/src/config.h $(INTERMEDIATE_OUTPUT)/src/keymap.c
|
$(INTERMEDIATE_OUTPUT)/src/keymap.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
|
||||||
|
@$(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
|
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)
|
||||||
|
|
||||||
|
$(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)
|
||||||
|
|
||||||
|
SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c
|
||||||
|
|
||||||
|
generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc
|
||||||
|
|
||||||
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 info.json via key 'processor' (or rules.mk 'MCU')
|
# PLATFORM_KEY should be detected in DD keyboard config 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
|
||||||
@ -302,6 +378,14 @@ 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 ("$(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
|
||||||
@ -319,6 +403,14 @@ 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
|
||||||
@ -335,38 +427,20 @@ 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: $(INFO_JSON_FILES)
|
$(INTERMEDIATE_OUTPUT)/src/info_config.h: $(DD_CONFIG_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: $(INFO_JSON_FILES)
|
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.c: $(DD_CONFIG_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: $(INFO_JSON_FILES)
|
$(INTERMEDIATE_OUTPUT)/src/default_keyboard.h: $(DD_CONFIG_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)
|
||||||
@ -417,21 +491,18 @@ ifneq ("$(CONVERTER)","")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Pull in post_rules.mk files from all our subfolders
|
# Pull in post_rules.mk files from all our subfolders
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/post_rules.mk)","")
|
-include $(KEYBOARD_PATH_1)/post_rules.mk
|
||||||
include $(KEYBOARD_PATH_1)/post_rules.mk
|
-include $(KEYBOARD_PATH_2)/post_rules.mk
|
||||||
endif
|
-include $(KEYBOARD_PATH_3)/post_rules.mk
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_2)/post_rules.mk)","")
|
-include $(KEYBOARD_PATH_4)/post_rules.mk
|
||||||
include $(KEYBOARD_PATH_2)/post_rules.mk
|
-include $(KEYBOARD_PATH_5)/post_rules.mk
|
||||||
endif
|
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_3)/post_rules.mk)","")
|
define post_rules_mk_community_module_includer
|
||||||
include $(KEYBOARD_PATH_3)/post_rules.mk
|
ifneq ("$(wildcard $(1)/post_rules.mk)","")
|
||||||
endif
|
include $(1)/post_rules.mk
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_4)/post_rules.mk)","")
|
endif
|
||||||
include $(KEYBOARD_PATH_4)/post_rules.mk
|
endef
|
||||||
endif
|
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call post_rules_mk_community_module_includer,$(module))))
|
||||||
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
|
||||||
@ -505,22 +576,14 @@ 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 := $(OPT_DEFS) \
|
$(INTERMEDIATE_OUTPUT)_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\" \
|
||||||
$(PROJECT_DEFS)
|
$(OPT_DEFS)
|
||||||
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(PROJECT_INC)
|
$(INTERMEDIATE_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
|
||||||
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(PROJECT_CONFIG)
|
$(INTERMEDIATE_OUTPUT)_CONFIG := $(CONFIG_H) $(POST_CONFIG_H)
|
||||||
|
|
||||||
# Default target.
|
# Default target.
|
||||||
all: build check-size
|
all: build check-size
|
||||||
|
@ -7,6 +7,7 @@ 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)
|
||||||
@ -47,7 +48,8 @@ PLATFORM:=TEST
|
|||||||
PLATFORM_KEY:=test
|
PLATFORM_KEY:=test
|
||||||
BOOTLOADER_TYPE:=none
|
BOOTLOADER_TYPE:=none
|
||||||
|
|
||||||
ifeq ($(strip $(DEBUG)), 1)
|
DEBUG ?= 0
|
||||||
|
ifneq ($(strip $(DEBUG)), 0)
|
||||||
CONSOLE_ENABLE = yes
|
CONSOLE_ENABLE = yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -28,6 +28,9 @@ 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 \
|
||||||
|
|
||||||
|
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
|
||||||
@ -129,13 +132,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)
|
||||||
@ -168,84 +171,82 @@ 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
|
||||||
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
|
ifneq ($(strip $(EEPROM_DRIVER)),none)
|
||||||
|
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 STM32G4xx WB32F3G71xx WB32FQ95xx GD32VF103),)
|
else ifneq ($(filter $(MCU_SERIES),STM32F1xx STM32F3xx STM32F4xx STM32L4xx STM32G0xx STM32G4xx WB32F3G71xx WB32FQ95xx AT32F415 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
|
||||||
@ -266,34 +267,29 @@ 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
|
VALID_FLASH_DRIVER_TYPES := spi custom
|
||||||
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
|
OPT_DEFS += -DFLASH_ENABLE -DFLASH_DRIVER -DFLASH_DRIVER_$(strip $(shell echo $(FLASH_DRIVER) | tr '[:lower:]' '[:upper:]'))
|
||||||
|
COMMON_VPATH += $(DRIVER_PATH)/flash
|
||||||
ifeq ($(strip $(FLASH_DRIVER)),spi)
|
ifeq ($(strip $(FLASH_DRIVER)),spi)
|
||||||
SPI_DRIVER_REQUIRED = yes
|
|
||||||
OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
|
|
||||||
COMMON_VPATH += $(DRIVER_PATH)/flash
|
|
||||||
SRC += flash_spi.c
|
SRC += flash_spi.c
|
||||||
|
SPI_DRIVER_REQUIRED = yes
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -311,10 +307,11 @@ 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)
|
||||||
@ -339,7 +336,7 @@ LED_MATRIX_DRIVER := snled27351
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
LED_MATRIX_ENABLE ?= no
|
LED_MATRIX_ENABLE ?= no
|
||||||
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
|
VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3236 is31fl3729 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)),)
|
||||||
@ -352,7 +349,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_backlight.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_led_matrix.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
|
||||||
@ -361,73 +358,88 @@ 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-simple.c
|
SRC += is31fl3218-mono.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-simple.c
|
SRC += is31fl3731-mono.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-simple.c
|
SRC += is31fl3733-mono.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-simple.c
|
SRC += is31fl3736-mono.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-simple.c
|
SRC += is31fl3737-mono.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-simple.c
|
SRC += is31fl3741-mono.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 += is31flcommon.c
|
SRC += is31fl3742a-mono.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 += is31flcommon.c
|
SRC += is31fl3743a-mono.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 += is31flcommon.c
|
SRC += is31fl3745-mono.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 += is31flcommon.c
|
SRC += is31fl3746a-mono.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-simple.c
|
SRC += snled27351-mono.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
|
||||||
@ -440,7 +452,7 @@ endif
|
|||||||
|
|
||||||
RGB_MATRIX_ENABLE ?= no
|
RGB_MATRIX_ENABLE ?= no
|
||||||
|
|
||||||
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
|
VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3236 is31fl3729 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)
|
||||||
@ -452,12 +464,16 @@ 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
|
||||||
@ -471,6 +487,18 @@ 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
|
||||||
@ -502,31 +530,27 @@ 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 += is31flcommon.c
|
SRC += is31fl3742a.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 += is31flcommon.c
|
SRC += is31fl3743a.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 += is31flcommon.c
|
SRC += is31fl3745.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 += is31flcommon.c
|
SRC += is31fl3746a.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351)
|
ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351)
|
||||||
@ -552,10 +576,6 @@ 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
|
||||||
@ -615,24 +635,18 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
|
|||||||
TRI_LAYER_ENABLE := yes
|
TRI_LAYER_ENABLE := yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
VALID_MAGIC_TYPES := yes
|
ifeq ($(strip $(RAW_ENABLE)), yes)
|
||||||
BOOTMAGIC_ENABLE ?= no
|
OPT_DEFS += -DRAW_ENABLE
|
||||||
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
|
SRC += raw_hid.c
|
||||||
ifeq ($(filter $(BOOTMAGIC_ENABLE),$(VALID_MAGIC_TYPES)),)
|
endif
|
||||||
$(call CATASTROPHIC_ERROR,Invalid BOOTMAGIC_ENABLE,BOOTMAGIC_ENABLE="$(BOOTMAGIC_ENABLE)" is not a valid type of magic)
|
|
||||||
endif
|
ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
|
||||||
ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
|
SEND_STRING_ENABLE := yes
|
||||||
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)
|
||||||
@ -708,6 +722,7 @@ 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
|
||||||
|
|
||||||
@ -837,15 +852,12 @@ 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
|
||||||
|
|
||||||
@ -882,31 +894,74 @@ 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 += outputselect.c
|
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
|
||||||
|
|
||||||
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
|
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
|
||||||
SPI_DRIVER_REQUIRED = yes
|
SPI_DRIVER_REQUIRED = yes
|
||||||
ANALOG_DRIVER_REQUIRED = yes
|
SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.c
|
||||||
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.c
|
SRC += $(DRIVER_PATH)/bluetooth/bluetooth_drivers.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
|
||||||
|
|
||||||
|
VALID_BATTERY_DRIVER_TYPES := adc custom vendor
|
||||||
|
|
||||||
|
BATTERY_DRIVER ?= adc
|
||||||
|
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
|
||||||
|
OPT_DEFS += -DBATTERY_$(strip $(shell echo $(BATTERY_DRIVER) | tr '[:lower:]' '[:upper:]'))
|
||||||
|
|
||||||
|
COMMON_VPATH += $(DRIVER_PATH)/battery
|
||||||
|
|
||||||
|
SRC += battery.c
|
||||||
|
SRC += battery_$(strip $(BATTERY_DRIVER)).c
|
||||||
|
|
||||||
|
# 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
|
||||||
@ -917,7 +972,9 @@ 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:]'))
|
||||||
|
|
||||||
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
|
COMMON_VPATH += $(DRIVER_PATH)/led
|
||||||
|
|
||||||
|
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)
|
||||||
@ -952,6 +1009,15 @@ ifeq ($(strip $(SPI_DRIVER_REQUIRED)), yes)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes)
|
ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes)
|
||||||
OPT_DEFS += -DHAL_USE_SERIAL=TRUE
|
ifeq ($(strip $(PLATFORM)), CHIBIOS)
|
||||||
QUANTUM_LIB_SRC += uart.c
|
ifneq ($(filter $(MCU_SERIES),RP2040),)
|
||||||
|
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
|
||||||
|
@ -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)
|
||||||
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 += -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,9 +83,6 @@ 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"
|
||||||
@ -106,14 +103,10 @@ 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
|
||||||
@ -126,15 +119,11 @@ 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)
|
||||||
ifeq ($(strip $(DEBUG_ENABLE)),yes)
|
ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),--listing-cont-lines=100
|
||||||
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
|
||||||
|
|
||||||
@ -179,7 +168,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)): INIT_HOOK_CFLAGS += -include $(TOP_DIR)/tmk_core/protocol/chibios/init_hooks.h
|
$(INTERMEDIATE_OUTPUT)/$(patsubst %.c,%.o,$(patsubst ./%,%,$1)): FILE_SPECIFIC_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))))
|
||||||
|
|
||||||
@ -300,10 +289,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) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
|
$$(eval CMD := $$(CC_EXEC) -c $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
|
||||||
@$$(BUILD_CMD)
|
@$$(BUILD_CMD)
|
||||||
ifneq ($$(DUMP_C_MACROS),)
|
ifneq ($$(DUMP_C_MACROS),)
|
||||||
$$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$<)
|
$$(eval CMD := $$(CC) -E -dM $$($1_CFLAGS) $$(FILE_SPECIFIC_CFLAGS) $$(GENDEPFLAGS) $$<)
|
||||||
@$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD))
|
@$$(if $$(filter $$(notdir $$(DUMP_C_MACROS)),$$(notdir $$<)),$$(BUILD_CMD))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -311,13 +300,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) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
|
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_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) $$(INIT_HOOK_CFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP))
|
$$(eval CMD=$$(CC) -c $$($1_CXXFLAGS) $$(FILE_SPECIFIC_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.
|
||||||
|
@ -1,13 +1,8 @@
|
|||||||
# Note for new boards -- CTPC and CONVERT_TO_PROTON_C are deprecated terms
|
ifneq (,$(filter $(MCU),atmega32u4))
|
||||||
# and should not be replicated for new boards. These will be removed from
|
# TODO: opt in rather than assume everything uses a pro micro
|
||||||
# documentation as well as existing keymaps in due course.
|
PIN_COMPATIBLE ?= promicro
|
||||||
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
|
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))
|
||||||
@ -16,6 +11,10 @@ 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),)
|
||||||
@ -26,9 +25,6 @@ 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)\"
|
||||||
|
5
builddefs/docsgen/.gitignore
vendored
Normal file
5
builddefs/docsgen/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
node_modules
|
||||||
|
.vitepress/cache
|
||||||
|
.vitepress/.temp
|
||||||
|
.vitepress/dist
|
||||||
|
docs
|
58
builddefs/docsgen/.vitepress/config.mts
Normal file
58
builddefs/docsgen/.vitepress/config.mts
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
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" },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
29
builddefs/docsgen/.vitepress/theme/QMKLayout.vue
Normal file
29
builddefs/docsgen/.vitepress/theme/QMKLayout.vue
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<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>
|
19
builddefs/docsgen/.vitepress/theme/custom.css
Normal file
19
builddefs/docsgen/.vitepress/theme/custom.css
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/* 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;
|
||||||
|
}
|
13
builddefs/docsgen/.vitepress/theme/index.ts
Normal file
13
builddefs/docsgen/.vitepress/theme/index.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
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
|
6
builddefs/docsgen/build-docs.sh
Executable file
6
builddefs/docsgen/build-docs.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/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
|
14
builddefs/docsgen/package.json
Normal file
14
builddefs/docsgen/package.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"license": "GPL-2.0-or-later",
|
||||||
|
"devDependencies": {
|
||||||
|
"vite": "^5.4.19",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
5
builddefs/docsgen/start-docs.sh
Executable file
5
builddefs/docsgen/start-docs.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
cd "$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||||
|
yarn install
|
||||||
|
DEBUG='vitepress:*,vite:*' yarn run docs:dev
|
820
builddefs/docsgen/yarn.lock
Normal file
820
builddefs/docsgen/yarn.lock
Normal file
@ -0,0 +1,820 @@
|
|||||||
|
# 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.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285"
|
||||||
|
integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==
|
||||||
|
|
||||||
|
"@rollup/rollup-android-arm64@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d"
|
||||||
|
integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==
|
||||||
|
|
||||||
|
"@rollup/rollup-darwin-arm64@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844"
|
||||||
|
integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==
|
||||||
|
|
||||||
|
"@rollup/rollup-darwin-x64@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf"
|
||||||
|
integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==
|
||||||
|
|
||||||
|
"@rollup/rollup-freebsd-arm64@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c"
|
||||||
|
integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==
|
||||||
|
|
||||||
|
"@rollup/rollup-freebsd-x64@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467"
|
||||||
|
integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm-gnueabihf@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b"
|
||||||
|
integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm-musleabihf@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327"
|
||||||
|
integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm64-gnu@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae"
|
||||||
|
integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-arm64-musl@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05"
|
||||||
|
integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-loongarch64-gnu@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee"
|
||||||
|
integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-powerpc64le-gnu@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba"
|
||||||
|
integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-riscv64-gnu@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e"
|
||||||
|
integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-s390x-gnu@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e"
|
||||||
|
integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-x64-gnu@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0"
|
||||||
|
integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==
|
||||||
|
|
||||||
|
"@rollup/rollup-linux-x64-musl@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80"
|
||||||
|
integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-arm64-msvc@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691"
|
||||||
|
integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-ia32-msvc@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3"
|
||||||
|
integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==
|
||||||
|
|
||||||
|
"@rollup/rollup-win32-x64-msvc@4.31.0":
|
||||||
|
version "4.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645"
|
||||||
|
integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==
|
||||||
|
|
||||||
|
"@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.6":
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
|
||||||
|
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
||||||
|
|
||||||
|
"@types/linkify-it@*":
|
||||||
|
version "3.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8"
|
||||||
|
integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==
|
||||||
|
|
||||||
|
"@types/markdown-it@^14.0.1":
|
||||||
|
version "14.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.0.1.tgz#3d3fdf9dba83b69edececc070d39ec72b84270a7"
|
||||||
|
integrity sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/linkify-it" "*"
|
||||||
|
"@types/mdurl" "*"
|
||||||
|
|
||||||
|
"@types/mdurl@*":
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.5.tgz#3e0d2db570e9fb6ccb2dc8fde0be1d79ac810d39"
|
||||||
|
integrity sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==
|
||||||
|
|
||||||
|
"@types/web-bluetooth@^0.0.20":
|
||||||
|
version "0.0.20"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597"
|
||||||
|
integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==
|
||||||
|
|
||||||
|
"@vitejs/plugin-vue@^5.0.4":
|
||||||
|
version "5.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37"
|
||||||
|
integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==
|
||||||
|
|
||||||
|
"@vue/compiler-core@3.4.24":
|
||||||
|
version "3.4.24"
|
||||||
|
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.24.tgz#6b4a5ffddcd874a692f2acfa68981201bcd7096b"
|
||||||
|
integrity sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/parser" "^7.24.4"
|
||||||
|
"@vue/shared" "3.4.24"
|
||||||
|
entities "^4.5.0"
|
||||||
|
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.31.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4"
|
||||||
|
integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==
|
||||||
|
dependencies:
|
||||||
|
"@types/estree" "1.0.6"
|
||||||
|
optionalDependencies:
|
||||||
|
"@rollup/rollup-android-arm-eabi" "4.31.0"
|
||||||
|
"@rollup/rollup-android-arm64" "4.31.0"
|
||||||
|
"@rollup/rollup-darwin-arm64" "4.31.0"
|
||||||
|
"@rollup/rollup-darwin-x64" "4.31.0"
|
||||||
|
"@rollup/rollup-freebsd-arm64" "4.31.0"
|
||||||
|
"@rollup/rollup-freebsd-x64" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-arm-gnueabihf" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-arm-musleabihf" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-arm64-gnu" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-arm64-musl" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-loongarch64-gnu" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-powerpc64le-gnu" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-riscv64-gnu" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-s390x-gnu" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-x64-gnu" "4.31.0"
|
||||||
|
"@rollup/rollup-linux-x64-musl" "4.31.0"
|
||||||
|
"@rollup/rollup-win32-arm64-msvc" "4.31.0"
|
||||||
|
"@rollup/rollup-win32-ia32-msvc" "4.31.0"
|
||||||
|
"@rollup/rollup-win32-x64-msvc" "4.31.0"
|
||||||
|
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.19:
|
||||||
|
version "5.4.19"
|
||||||
|
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.19.tgz#20efd060410044b3ed555049418a5e7d1998f959"
|
||||||
|
integrity sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==
|
||||||
|
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"
|
@ -21,9 +21,11 @@ SPACE_CADET_ENABLE ?= yes
|
|||||||
GENERIC_FEATURES = \
|
GENERIC_FEATURES = \
|
||||||
AUTO_SHIFT \
|
AUTO_SHIFT \
|
||||||
AUTOCORRECT \
|
AUTOCORRECT \
|
||||||
|
BOOTMAGIC \
|
||||||
CAPS_WORD \
|
CAPS_WORD \
|
||||||
COMBO \
|
COMBO \
|
||||||
COMMAND \
|
COMMAND \
|
||||||
|
CONNECTION \
|
||||||
CRC \
|
CRC \
|
||||||
DEFERRED_EXEC \
|
DEFERRED_EXEC \
|
||||||
DIGITIZER \
|
DIGITIZER \
|
||||||
@ -33,8 +35,10 @@ 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 \
|
||||||
@ -58,6 +62,7 @@ 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
|
||||||
|
@ -67,7 +67,6 @@ 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 \
|
||||||
|
11
builddefs/support.mk
Normal file
11
builddefs/support.mk
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# 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)
|
||||||
|
, := ,
|
@ -372,4 +372,4 @@
|
|||||||
"label": "~",
|
"label": "~",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -629,4 +629,4 @@
|
|||||||
"label": "(narrow non-breaking space)",
|
"label": "(narrow non-breaking space)",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -376,4 +376,4 @@
|
|||||||
"label": "₢",
|
"label": "₢",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,407 @@
|
|||||||
|
{
|
||||||
|
"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)",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -638,4 +638,4 @@
|
|||||||
"label": "÷",
|
"label": "÷",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,4 +299,4 @@
|
|||||||
"label": "?",
|
"label": "?",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -400,4 +400,4 @@
|
|||||||
"label": "§",
|
"label": "§",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -432,4 +432,4 @@
|
|||||||
"label": "*",
|
"label": "*",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,580 @@
|
|||||||
|
{
|
||||||
|
"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": "—",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,580 @@
|
|||||||
|
{
|
||||||
|
"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": "—",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -356,4 +356,4 @@
|
|||||||
"label": "µ",
|
"label": "µ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,4 +299,4 @@
|
|||||||
"label": ":",
|
"label": ":",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -314,4 +314,4 @@
|
|||||||
"label": "@",
|
"label": "@",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,4 +299,4 @@
|
|||||||
"label": "\"",
|
"label": "\"",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -364,4 +364,4 @@
|
|||||||
"label": "ž",
|
"label": "ž",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
596
data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
Normal file
596
data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
Normal file
@ -0,0 +1,596 @@
|
|||||||
|
{
|
||||||
|
"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": "…",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
616
data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
Normal file
616
data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
Normal file
@ -0,0 +1,616 @@
|
|||||||
|
{
|
||||||
|
"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)",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -356,4 +356,4 @@
|
|||||||
"label": "µ",
|
"label": "µ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -364,4 +364,4 @@
|
|||||||
"label": "¤",
|
"label": "¤",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -620,4 +620,4 @@
|
|||||||
"label": "≠",
|
"label": "≠",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -673,4 +673,4 @@
|
|||||||
"label": "±",
|
"label": "±",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,4 +356,4 @@
|
|||||||
"label": "µ",
|
"label": "µ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -653,4 +653,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -388,4 +388,4 @@
|
|||||||
"label": "©",
|
"label": "©",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -344,4 +344,4 @@
|
|||||||
"label": "÷",
|
"label": "÷",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -432,4 +432,4 @@
|
|||||||
"label": "*",
|
"label": "*",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,4 +352,4 @@
|
|||||||
"label": "µ",
|
"label": "µ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,4 +352,4 @@
|
|||||||
"label": "´ (dead)",
|
"label": "´ (dead)",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -361,4 +361,4 @@
|
|||||||
"label": "}",
|
"label": "}",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -681,4 +681,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -685,4 +685,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -327,4 +327,4 @@
|
|||||||
"label": "_",
|
"label": "_",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -307,4 +307,4 @@
|
|||||||
"label": "?",
|
"label": "?",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -437,4 +437,4 @@
|
|||||||
"label": "¨ (dead)",
|
"label": "¨ (dead)",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -372,4 +372,4 @@
|
|||||||
"label": "\\",
|
"label": "\\",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -365,4 +365,4 @@
|
|||||||
"label": "+",
|
"label": "+",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -214,4 +214,4 @@
|
|||||||
"label": "(layer 4)",
|
"label": "(layer 4)",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,4 +113,4 @@
|
|||||||
"key": "NO_MU"
|
"key": "NO_MU"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,4 +299,4 @@
|
|||||||
"label": "?",
|
"label": "?",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,4 +352,4 @@
|
|||||||
"label": "µ",
|
"label": "µ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,4 +83,4 @@
|
|||||||
"key": "PV_U"
|
"key": "PV_U"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,4 +70,4 @@
|
|||||||
"key": "PD_U"
|
"key": "PD_U"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,4 +352,4 @@
|
|||||||
"label": "Ń",
|
"label": "Ń",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,4 +352,4 @@
|
|||||||
"label": "€",
|
"label": "€",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -617,4 +617,4 @@
|
|||||||
"label": "–",
|
"label": "–",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -441,4 +441,4 @@
|
|||||||
"label": "»",
|
"label": "»",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -288,4 +288,4 @@
|
|||||||
"label": "₽",
|
"label": "₽",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -304,4 +304,4 @@
|
|||||||
"label": "€",
|
"label": "€",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -404,4 +404,4 @@
|
|||||||
"label": "§",
|
"label": "§",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -440,4 +440,4 @@
|
|||||||
"label": "}",
|
"label": "}",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -400,4 +400,4 @@
|
|||||||
"label": "§",
|
"label": "§",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,4 +356,4 @@
|
|||||||
"label": "}",
|
"label": "}",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,4 +356,4 @@
|
|||||||
"label": "}",
|
"label": "}",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,343 @@
|
|||||||
|
{
|
||||||
|
"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": "`",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -356,4 +356,4 @@
|
|||||||
"label": "µ",
|
"label": "µ",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -639,4 +639,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -637,4 +637,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -639,4 +639,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -637,4 +637,4 @@
|
|||||||
"label": "—",
|
"label": "—",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user