forked from mirror/qmk_firmware
Compare commits
149 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0269eea2c9 | ||
|
|
1836382f66 | ||
|
|
504533b3b4 | ||
|
|
ba9642c83d | ||
|
|
c2f7a5b5c5 | ||
|
|
ccc6c6ce0b | ||
|
|
c93ef27143 | ||
|
|
15e8658e81 | ||
|
|
c6475e0476 | ||
|
|
3001d81e3d | ||
|
|
407e6e242e | ||
|
|
18ed7c6caf | ||
|
|
92c0e2cee1 | ||
|
|
6a11370434 | ||
|
|
2bd8e43256 | ||
|
|
933cb8cc35 | ||
|
|
1426eedfc1 | ||
|
|
e4b998ccb0 | ||
|
|
b5af7a3390 | ||
|
|
ed80e21858 | ||
|
|
9d24bc8a33 | ||
|
|
c7fde3d8cc | ||
|
|
0fdb5df94d | ||
|
|
bd500ae092 | ||
|
|
fec01edaa4 | ||
|
|
7619e991cf | ||
|
|
627ad33233 | ||
|
|
2cbcd76ef0 | ||
|
|
322e673bcb | ||
|
|
4be8880177 | ||
|
|
709628dfb2 | ||
|
|
e5faeea94d | ||
|
|
7ec819eb22 | ||
|
|
7785e87029 | ||
|
|
afb5335bf3 | ||
|
|
9fd72b352b | ||
|
|
7fe0c9c746 | ||
|
|
5629ecf5ff | ||
|
|
01e30d407c | ||
|
|
acdc8a1374 | ||
|
|
d73c91f19b | ||
|
|
40e81ad893 | ||
|
|
3dcdf41d1c | ||
|
|
d55d65b77f | ||
|
|
a56496640e | ||
|
|
032c2aa974 | ||
|
|
1874bc94e2 | ||
|
|
9e8199c411 | ||
|
|
4733a2df16 | ||
|
|
2d46c96732 | ||
|
|
3b99406d50 | ||
|
|
7bea08cb12 | ||
|
|
5591a68b65 | ||
|
|
a0166fef43 | ||
|
|
e52319b751 | ||
|
|
cde41cf611 | ||
|
|
878fafeeb8 | ||
|
|
1ba0300da7 | ||
|
|
f8daa3cc40 | ||
|
|
bef076f23e | ||
|
|
3ac6f603a8 | ||
|
|
036c6100bd | ||
|
|
403211f7f8 | ||
|
|
888d42d64c | ||
|
|
6b2a2ab7ac | ||
|
|
edd2e3d354 | ||
|
|
6b423c98e5 | ||
|
|
36cdac8fd3 | ||
|
|
59cc10451b | ||
|
|
031277c6d3 | ||
|
|
4f7a7873c8 | ||
|
|
5ad6d44e18 | ||
|
|
fac1210609 | ||
|
|
a170e6f191 | ||
|
|
db4d8823d6 | ||
|
|
9aec0e2c9f | ||
|
|
08a064c56d | ||
|
|
85d4736930 | ||
|
|
98f05c0136 | ||
|
|
5dd5d4dd60 | ||
|
|
cf4e526063 | ||
|
|
005b778164 | ||
|
|
efafbacb49 | ||
|
|
02b49f2949 | ||
|
|
b00bdd0354 | ||
|
|
b2b8e54b23 | ||
|
|
87a4c6ab25 | ||
|
|
c72581474e | ||
|
|
adbd077b15 | ||
|
|
e5d1cf0105 | ||
|
|
bfc1b2b1cf | ||
|
|
fb27ce6bb2 | ||
|
|
fe1c3fc835 | ||
|
|
f8d65460c2 | ||
|
|
4ba8da2ebb | ||
|
|
df93bfb750 | ||
|
|
2b6ed67db4 | ||
|
|
536a0a78b4 | ||
|
|
e1c41f1b08 | ||
|
|
f749cf9940 | ||
|
|
259320ca27 | ||
|
|
85b79cc578 | ||
|
|
743c8a229f | ||
|
|
c5795dd8d7 | ||
|
|
e159fbefc5 | ||
|
|
3dc83cd244 | ||
|
|
1051fae08d | ||
|
|
0d08ebb70a | ||
|
|
389ec6df82 | ||
|
|
4f451a76f2 | ||
|
|
e05516d817 | ||
|
|
ae05baf08b | ||
|
|
c1161a7a32 | ||
|
|
f82d4d8680 | ||
|
|
d420bcad33 | ||
|
|
7f9c8429e4 | ||
|
|
41c2a7b070 | ||
|
|
bc8218371e | ||
|
|
27c2960320 | ||
|
|
42a7969d4a | ||
|
|
13f3f189b4 | ||
|
|
63a1d506a0 | ||
|
|
ca8105eac0 | ||
|
|
f39fc08338 | ||
|
|
1be7cde61f | ||
|
|
6585a244fb | ||
|
|
e37a611977 | ||
|
|
a5d7e04c66 | ||
|
|
6faca4d663 | ||
|
|
34c2e99fb3 | ||
|
|
064d8e9b62 | ||
|
|
10faca0b85 | ||
|
|
c1b8b3dc6a | ||
|
|
89cf023d89 | ||
|
|
b68cc43094 | ||
|
|
2b61ca078d | ||
|
|
d3d025c337 | ||
|
|
d7c7421784 | ||
|
|
b08704f078 | ||
|
|
1f4110d742 | ||
|
|
57b284dfa9 | ||
|
|
5b94990c5a | ||
|
|
debba50c33 | ||
|
|
511f1ed9de | ||
|
|
a71a34eb52 | ||
|
|
655883a965 | ||
|
|
a201bf9398 | ||
|
|
c2eeeba2e9 | ||
|
|
a4320e4890 |
30
.github/workflows/ci_build_major_branch.yml
vendored
30
.github/workflows/ci_build_major_branch.yml
vendored
@@ -32,6 +32,7 @@ jobs:
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
|
||||
outputs:
|
||||
keymaps: ${{ steps.generate_slice_length.outputs.keymaps }}
|
||||
slice_length: ${{ steps.generate_slice_length.outputs.slice_length }}
|
||||
|
||||
steps:
|
||||
@@ -47,12 +48,20 @@ jobs:
|
||||
|
||||
- name: Determine concurrency
|
||||
id: generate_slice_length
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
target_count=$( {
|
||||
qmk find -km default 2>/dev/null
|
||||
qmk find -km xap 2>/dev/null
|
||||
} | sort | uniq | wc -l)
|
||||
targets=()
|
||||
target_count=0
|
||||
for target in "default" "xap"; do
|
||||
count=$(qmk find -km $target 2>/dev/null | wc -l)
|
||||
if [ $count -gt 0 ]; then
|
||||
target_count=$(($target_count + $count))
|
||||
targets+=($target)
|
||||
fi
|
||||
done
|
||||
keymaps=$(jq -c -n '$ARGS.positional' --args "${targets[@]}")
|
||||
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
|
||||
echo "keymaps=$keymaps" >> $GITHUB_OUTPUT
|
||||
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
|
||||
|
||||
build_targets:
|
||||
@@ -61,7 +70,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
keymap: [default, xap]
|
||||
keymap: ${{ fromJson(needs.determine_concurrency.outputs.keymaps) }}
|
||||
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
|
||||
with:
|
||||
branch: ${{ inputs.branch || github.ref_name }}
|
||||
@@ -85,7 +94,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download firmwares
|
||||
uses: actions/download-artifact@v7
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
pattern: firmware-*
|
||||
path: .
|
||||
@@ -123,14 +132,7 @@ jobs:
|
||||
SOURCE_DIR: .
|
||||
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
|
||||
|
||||
- name: Check if failure marker file exists
|
||||
id: check_failure_marker
|
||||
uses: andstor/file-existence-action@v3
|
||||
with:
|
||||
files: ./.failed
|
||||
|
||||
- name: Fail build if needed
|
||||
if: steps.check_failure_marker.outputs.files_exists == 'true'
|
||||
run: |
|
||||
# Exit with failure if the compilation stage failed
|
||||
exit 1
|
||||
[ ! -e .failed ] || exit 1
|
||||
|
||||
@@ -38,17 +38,18 @@ jobs:
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
|
||||
- name: Generate build targets
|
||||
shell: 'bash {0}'
|
||||
id: generate_targets
|
||||
run: |
|
||||
{ # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer
|
||||
counter=0
|
||||
echo -n '{'
|
||||
qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do
|
||||
qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf --random-source=<(openssl enc -aes-256-ctr -pass pass:qmk -nosalt </dev/zero 2>/dev/null) | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do
|
||||
if [ $counter -gt 0 ]; then
|
||||
echo -n ','
|
||||
fi
|
||||
counter=$((counter+1))
|
||||
printf "\"group %02d\":{" $counter
|
||||
printf "\"group-%02d\":{" $counter
|
||||
echo -n '"targets":"'
|
||||
echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n
|
||||
echo -n '"}'
|
||||
@@ -60,7 +61,7 @@ jobs:
|
||||
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload targets json
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: targets-${{ inputs.keymap }}
|
||||
path: targets.json
|
||||
@@ -72,6 +73,9 @@ jobs:
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
continue-on-error: true
|
||||
|
||||
env:
|
||||
CCACHE_CONFIGPATH: ~/.cache
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
target: ${{ fromJson(needs.generate_targets.outputs.targets) }}
|
||||
@@ -83,37 +87,62 @@ jobs:
|
||||
|
||||
- name: Checkout QMK Firmware
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
|
||||
- name: Get target definitions
|
||||
uses: actions/download-artifact@v7
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: targets-${{ inputs.keymap }}
|
||||
path: .
|
||||
|
||||
- name: Deploy submodules
|
||||
run: |
|
||||
qmk git-submodule -f
|
||||
|
||||
- name: Dump targets
|
||||
run: |
|
||||
jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort
|
||||
|
||||
- name: Restore Cache
|
||||
id: cache
|
||||
uses: actions/cache/restore@v5
|
||||
with:
|
||||
path: ${{ env.CCACHE_CONFIGPATH }}
|
||||
key: compile-${{ inputs.keymap }}-${{ matrix.target }}
|
||||
|
||||
- name: Build targets
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 ))
|
||||
targets=$(jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort)
|
||||
if [ -z "${targets}" ]; then
|
||||
echo "Zero build targets detected"
|
||||
exit 0
|
||||
fi
|
||||
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $targets || touch .failed
|
||||
qmk mass-compile -t -j $(nproc) -e DUMP_CI_METADATA=yes -e USE_CCACHE=yes $targets || touch .failed
|
||||
|
||||
- name: Dump ccache stats
|
||||
run: |
|
||||
ccache -s
|
||||
|
||||
# Delete the old cache on hit to emulate a cache update. See https://github.com/actions/cache/issues/342.
|
||||
- name: Delete old cache
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
if: steps.cache.outputs.cache-hit
|
||||
run: |
|
||||
count=$(gh cache list --ref ${{ github.ref }} --key ${{ steps.cache.outputs.cache-primary-key }} --json id | jq length)
|
||||
if [ $count -gt 0 ]; then
|
||||
gh cache delete --ref ${{ github.ref }} ${{ steps.cache.outputs.cache-primary-key }}
|
||||
fi
|
||||
|
||||
- name: Save Cache
|
||||
uses: actions/cache/save@v5
|
||||
with:
|
||||
path: ${{ env.CCACHE_CONFIGPATH }}
|
||||
key: compile-${{ inputs.keymap }}-${{ matrix.target }}
|
||||
|
||||
- name: Upload binaries
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
|
||||
if-no-files-found: ignore
|
||||
@@ -140,14 +169,14 @@ jobs:
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Download firmwares
|
||||
uses: actions/download-artifact@v7
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
pattern: firmware-${{ inputs.keymap }}-*
|
||||
path: .
|
||||
merge-multiple: true
|
||||
|
||||
- name: Upload all firmwares
|
||||
uses: actions/upload-artifact@v6
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: firmware-${{ inputs.keymap }}
|
||||
if-no-files-found: ignore
|
||||
@@ -166,7 +195,7 @@ jobs:
|
||||
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
|
||||
|
||||
- name: Delete temporary build artifacts
|
||||
uses: geekyeggo/delete-artifact@v5
|
||||
uses: geekyeggo/delete-artifact@v6
|
||||
with:
|
||||
name: |
|
||||
firmware-${{ inputs.keymap }}-*
|
||||
|
||||
2
.github/workflows/develop_docs.yml
vendored
2
.github/workflows/develop_docs.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
steps:
|
||||
- name: Deploy Develop
|
||||
if: ${{ github.repository == 'qmk/qmk_firmware' }}
|
||||
uses: actions/github-script@v8
|
||||
uses: actions/github-script@v9
|
||||
with:
|
||||
github-token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
script: |
|
||||
|
||||
17
.github/workflows/lint.yml
vendored
17
.github/workflows/lint.yml
vendored
@@ -31,7 +31,7 @@ jobs:
|
||||
with:
|
||||
use_rest_api: true
|
||||
|
||||
- name: Print info
|
||||
- name: Print git info
|
||||
run: |
|
||||
git rev-parse --short HEAD
|
||||
echo ${{ github.event.pull_request.base.sha }}
|
||||
@@ -57,7 +57,7 @@ jobs:
|
||||
if [[ $KEYMAP_ONLY -gt 0 ]]; then
|
||||
echo "linting ${KB}"
|
||||
|
||||
qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB}
|
||||
qmk lint --strict --keyboard ${KB} && qmk info -l --keyboard ${KB}
|
||||
exit_code=$(($exit_code + $?))
|
||||
fi
|
||||
done
|
||||
@@ -78,10 +78,21 @@ jobs:
|
||||
fi
|
||||
exit $exit_code
|
||||
|
||||
- name: Verify keyboard aliases
|
||||
- name: Reset git repo
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
git reset --hard
|
||||
git clean -xfd
|
||||
|
||||
- name: Verify keyboard targets
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
qmk ci-validate-keyboard-targets
|
||||
|
||||
- name: Verify keyboard aliases
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
qmk ci-validate-aliases
|
||||
|
||||
3
.github/workflows/regen.yml
vendored
3
.github/workflows/regen.yml
vendored
@@ -8,6 +8,9 @@ on:
|
||||
paths:
|
||||
- 'data/constants/**'
|
||||
- 'lib/python/**'
|
||||
- 'quantum/rgblight/rgblight_breathe_table.h'
|
||||
- 'quantum/keycodes.h'
|
||||
- 'quantum/keymap_extras/**'
|
||||
|
||||
jobs:
|
||||
regen:
|
||||
|
||||
3
.github/workflows/unit_test.yml
vendored
3
.github/workflows/unit_test.yml
vendored
@@ -11,6 +11,7 @@ on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'builddefs/**'
|
||||
- '!builddefs/docsgen/**'
|
||||
- 'quantum/**'
|
||||
- 'platforms/**'
|
||||
- 'tmk_core/**'
|
||||
@@ -34,4 +35,4 @@ jobs:
|
||||
run: pip3 install -r requirements-dev.txt
|
||||
|
||||
- name: Run tests
|
||||
run: qmk test-c
|
||||
run: qmk test-c -j $(nproc)
|
||||
|
||||
47
Makefile
47
Makefile
@@ -38,14 +38,17 @@ $(info QMK Firmware $(QMK_VERSION))
|
||||
endif
|
||||
endif
|
||||
|
||||
# Try to determine userspace from qmk config, if set.
|
||||
ifeq ($(QMK_USERSPACE),)
|
||||
QMK_USERSPACE = $(shell qmk config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g')
|
||||
endif
|
||||
|
||||
# Determine which qmk cli to use
|
||||
QMK_BIN := qmk
|
||||
|
||||
# Try to determine userspace from qmk config, if set. Handle direct query on qmk_cli>=1.1.7
|
||||
# falling back to legacy method of only supporting user.overlay_dir config
|
||||
# sort is used to buffer 'qmk env' output and avoid BrokenPipeError errors
|
||||
export override QMK_USERSPACE := $(shell \
|
||||
$(QMK_BIN) env | sort | grep -q QMK_USERSPACE \
|
||||
&& $(QMK_BIN) env QMK_USERSPACE \
|
||||
|| $(QMK_BIN) config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g')
|
||||
|
||||
# avoid 'Entering|Leaving directory' messages
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
@@ -190,41 +193,9 @@ endef
|
||||
# Parses a rule in the format <keymap>:<target>
|
||||
# the keyboard is already known when entering this function
|
||||
define PARSE_KEYBOARD
|
||||
# If we want to compile the default subproject, then we need to
|
||||
# include the correct makefile to determine the actual name of it
|
||||
CURRENT_KB := $1
|
||||
|
||||
# 5/4/3/2/1
|
||||
KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
|
||||
KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
|
||||
KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2)))
|
||||
KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3)))
|
||||
KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4)))
|
||||
|
||||
KEYMAPS :=
|
||||
# get a list of all keymaps
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
|
||||
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
|
||||
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
|
||||
endif
|
||||
|
||||
KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
|
||||
LAYOUT_KEYMAPS :=
|
||||
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.)))))
|
||||
endif
|
||||
|
||||
KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
|
||||
KEYMAPS := $(shell $(QMK_BIN) list-keymaps --keyboard $1)
|
||||
|
||||
# if the rule after removing the start of it is empty (we haven't specified a kemap or target)
|
||||
# compile all the keymaps
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
# Look for a json keymap file
|
||||
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
|
||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
|
||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
|
||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
|
||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
|
||||
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1)
|
||||
endif
|
||||
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","")
|
||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","")
|
||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","")
|
||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","")
|
||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","")
|
||||
KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json
|
||||
KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
|
||||
endif
|
||||
endif
|
||||
@@ -138,75 +138,12 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","")
|
||||
DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json
|
||||
endif
|
||||
|
||||
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||
|
||||
# Pull in rules from DD keyboard config
|
||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk)
|
||||
include $(INFO_RULES_MK)
|
||||
|
||||
# Check for keymap.json first, so we can regenerate keymap.c
|
||||
include $(BUILDDEFS_PATH)/build_json.mk
|
||||
|
||||
# Pull in keymap level rules.mk
|
||||
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
|
||||
# Look through the possible keymap folders until we find a matching keymap.c
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c)","")
|
||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/rules.mk
|
||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c
|
||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c)","")
|
||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/rules.mk
|
||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c
|
||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c)","")
|
||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/rules.mk
|
||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c
|
||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c)","")
|
||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/rules.mk
|
||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c
|
||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
|
||||
else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c)","")
|
||||
-include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/rules.mk
|
||||
KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c
|
||||
KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(KEYMAP_PATH),)
|
||||
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
|
||||
-include $(MAIN_KEYMAP_PATH_1)/rules.mk
|
||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
|
||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
|
||||
-include $(MAIN_KEYMAP_PATH_2)/rules.mk
|
||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
|
||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
|
||||
-include $(MAIN_KEYMAP_PATH_3)/rules.mk
|
||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
|
||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
|
||||
-include $(MAIN_KEYMAP_PATH_4)/rules.mk
|
||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
|
||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
|
||||
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
|
||||
-include $(MAIN_KEYMAP_PATH_5)/rules.mk
|
||||
KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
|
||||
KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
|
||||
else ifneq ($(LAYOUTS),)
|
||||
# If we haven't found a keymap yet fall back to community layouts
|
||||
include $(BUILDDEFS_PATH)/build_layout.mk
|
||||
else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") # Not finding keymap.c is fine if we found a keymap.json
|
||||
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
|
||||
# this state should never be reached
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
include $(BUILDDEFS_PATH)/locate_keymap.mk
|
||||
-include $(KEYMAP_PATH)/rules.mk
|
||||
|
||||
# Have we found a keymap.json?
|
||||
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
||||
@@ -217,16 +154,9 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
||||
OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\"
|
||||
endif
|
||||
|
||||
KEYMAP_PATH := $(KEYMAP_JSON_PATH)
|
||||
|
||||
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
|
||||
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
|
||||
|
||||
ifeq ($(OTHER_KEYMAP_C),)
|
||||
# Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c)
|
||||
-include $(KEYMAP_PATH)/rules.mk
|
||||
endif
|
||||
|
||||
# Load any rules.mk content from keymap.json
|
||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
|
||||
include $(INFO_RULES_MK)
|
||||
@@ -257,6 +187,11 @@ include $(COMMUNITY_RULES_MK)
|
||||
|
||||
ifneq ($(COMMUNITY_MODULES),)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/community_config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-community-config-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_config.h $(KEYMAP_JSON))
|
||||
@$(BUILD_CMD)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON))
|
||||
@@ -287,9 +222,15 @@ $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD
|
||||
$(eval CMD=$(QMK_BIN) generate-rgb-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(KEYMAP_JSON))
|
||||
@$(BUILD_CMD)
|
||||
|
||||
$(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES)
|
||||
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
|
||||
$(eval CMD=$(QMK_BIN) generate-split-transaction-id-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc $(KEYMAP_JSON))
|
||||
@$(BUILD_CMD)
|
||||
|
||||
COMMUNITY_CONFIG_H = $(INTERMEDIATE_OUTPUT)/src/community_config.h
|
||||
SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c
|
||||
|
||||
generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc
|
||||
generated-files: $(INTERMEDIATE_OUTPUT)/src/community_config.h $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc
|
||||
|
||||
endif
|
||||
|
||||
@@ -390,6 +331,10 @@ define config_h_community_module_appender
|
||||
endef
|
||||
$(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module))))
|
||||
|
||||
ifneq ($(COMMUNITY_CONFIG_H),)
|
||||
CONFIG_H += $(COMMUNITY_CONFIG_H)
|
||||
endif
|
||||
|
||||
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
|
||||
CONFIG_H += $(KEYBOARD_PATH_5)/config.h
|
||||
endif
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
LAYOUTS_PATH := layouts
|
||||
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
|
||||
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
|
||||
endif
|
||||
|
||||
define SEARCH_LAYOUTS_REPO
|
||||
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
|
||||
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
|
||||
LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c
|
||||
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","")
|
||||
KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON)
|
||||
KEYMAP_JSON_PATH := $$(LAYOUT_KEYMAP_PATH)
|
||||
endif
|
||||
ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","")
|
||||
-include $$(LAYOUT_KEYMAP_PATH)/rules.mk
|
||||
KEYMAP_C := $$(LAYOUT_KEYMAP_C)
|
||||
KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH)
|
||||
endif
|
||||
endef
|
||||
|
||||
define SEARCH_LAYOUTS
|
||||
$$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO)))
|
||||
endef
|
||||
|
||||
ifneq ($(FORCE_LAYOUT),)
|
||||
ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS)))
|
||||
$(info Forcing layout: $(FORCE_LAYOUT))
|
||||
LAYOUTS := $(FORCE_LAYOUT)
|
||||
else
|
||||
$(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
|
||||
@@ -58,7 +58,7 @@ endif
|
||||
#---------------- C Compiler Options ----------------
|
||||
|
||||
ifeq ($(strip $(LTO_ENABLE)), yes)
|
||||
CDEFS += -flto
|
||||
CDEFS += -flto=auto
|
||||
CDEFS += -DLTO_ENABLE
|
||||
endif
|
||||
|
||||
@@ -72,6 +72,8 @@ endif
|
||||
endif
|
||||
CFLAGS += -Wall
|
||||
CFLAGS += -Wstrict-prototypes
|
||||
CFLAGS += $(call cc-option,-Wunused-but-set-variable=1,-Wunused-but-set-variable)
|
||||
CFLAGS += $(call cc-option,-Wunused-but-set-parameter=1,-Wunused-but-set-parameter)
|
||||
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
|
||||
CFLAGS += -Werror
|
||||
endif
|
||||
@@ -89,7 +91,8 @@ CXXFLAGS += -O$(OPT)
|
||||
CXXFLAGS += -w
|
||||
CXXFLAGS += -Wall
|
||||
CXXFLAGS += -Wundef
|
||||
|
||||
CXXFLAGS += $(call cc-option,-Wunused-but-set-variable=1,-Wunused-but-set-variable)
|
||||
CXXFLAGS += $(call cc-option,-Wunused-but-set-parameter=1,-Wunused-but-set-parameter)
|
||||
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
|
||||
CXXFLAGS += -Werror
|
||||
endif
|
||||
|
||||
@@ -298,100 +298,130 @@
|
||||
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-arm-eabi@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz#a6742c74c7d9d6d604ef8a48f99326b4ecda3d82"
|
||||
integrity sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==
|
||||
|
||||
"@rollup/rollup-android-arm64@4.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-android-arm64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz#97247be098de4df0c11971089fd2edf80a5da8cf"
|
||||
integrity sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==
|
||||
|
||||
"@rollup/rollup-darwin-arm64@4.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-arm64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz#674852cf14cf11b8056e0b1a2f4e872b523576cf"
|
||||
integrity sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==
|
||||
|
||||
"@rollup/rollup-darwin-x64@4.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-darwin-x64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz#36dfd7ed0aaf4d9d89d9ef983af72632455b0246"
|
||||
integrity sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==
|
||||
|
||||
"@rollup/rollup-freebsd-arm64@4.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-arm64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz#2f87c2074b4220260fdb52a9996246edfc633c22"
|
||||
integrity sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==
|
||||
|
||||
"@rollup/rollup-freebsd-x64@4.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-freebsd-x64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz#9b5a26522a38a95dc06616d1939d4d9a76937803"
|
||||
integrity sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf@4.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-gnueabihf@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz#86aa4859385a8734235b5e40a48e52d770758c3a"
|
||||
integrity sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf@4.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-arm-musleabihf@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz#cbe70e56e6ece8dac83eb773b624fc9e5a460976"
|
||||
integrity sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu@4.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-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz#d14992a2e653bc3263d284bc6579b7a2890e1c45"
|
||||
integrity sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl@4.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-arm64-musl@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz#2fdd1ddc434ea90aeaa0851d2044789b4d07f6da"
|
||||
integrity sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==
|
||||
|
||||
"@rollup/rollup-linux-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-loong64-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz#8a181e6f89f969f21666a743cd411416c80099e7"
|
||||
integrity sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==
|
||||
|
||||
"@rollup/rollup-linux-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-loong64-musl@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz#904125af2babc395f8061daa27b5af1f4e3f2f78"
|
||||
integrity sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==
|
||||
|
||||
"@rollup/rollup-linux-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-ppc64-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz#a57970ac6864c9a3447411a658224bdcf948be22"
|
||||
integrity sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==
|
||||
|
||||
"@rollup/rollup-linux-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-ppc64-musl@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz#bb84de5b26870567a4267666e08891e80bb56a63"
|
||||
integrity sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==
|
||||
|
||||
"@rollup/rollup-linux-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-riscv64-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz#72d00d2c7fb375ce3564e759db33f17a35bffab9"
|
||||
integrity sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==
|
||||
|
||||
"@rollup/rollup-linux-x64-musl@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80"
|
||||
integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==
|
||||
"@rollup/rollup-linux-riscv64-musl@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz#4c166ef58e718f9245bd31873384ba15a5c1a883"
|
||||
integrity sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691"
|
||||
integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==
|
||||
"@rollup/rollup-linux-s390x-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz#bb5025cde9a61db478c2ca7215808ad3bce73a09"
|
||||
integrity sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3"
|
||||
integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==
|
||||
"@rollup/rollup-linux-x64-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz#9b66b1f9cd95c6624c788f021c756269ffed1552"
|
||||
integrity sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645"
|
||||
integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==
|
||||
"@rollup/rollup-linux-x64-musl@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz#b007ca255dc7166017d57d7d2451963f0bd23fd9"
|
||||
integrity sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==
|
||||
|
||||
"@rollup/rollup-openbsd-x64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz#e8b357b2d1aa2c8d76a98f5f0d889eabe93f4ef9"
|
||||
integrity sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==
|
||||
|
||||
"@rollup/rollup-openharmony-arm64@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz#96c2e3f4aacd3d921981329831ff8dde492204dc"
|
||||
integrity sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz#2d865149d706d938df8b4b8f117e69a77646d581"
|
||||
integrity sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz#abe1593be0fa92325e9971c8da429c5e05b92c36"
|
||||
integrity sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==
|
||||
|
||||
"@rollup/rollup-win32-x64-gnu@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz#c4af3e9518c9a5cd4b1c163dc81d0ad4d82e7eab"
|
||||
integrity sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@4.59.0":
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c"
|
||||
integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==
|
||||
|
||||
"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0":
|
||||
version "1.3.0"
|
||||
@@ -405,10 +435,10 @@
|
||||
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/estree@1.0.8":
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
|
||||
integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
|
||||
|
||||
"@types/linkify-it@*":
|
||||
version "3.0.5"
|
||||
@@ -712,31 +742,37 @@ rfdc@^1.3.1:
|
||||
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==
|
||||
version "4.59.0"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.59.0.tgz#cf74edac17c1486f562d728a4d923a694abdf06f"
|
||||
integrity sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==
|
||||
dependencies:
|
||||
"@types/estree" "1.0.6"
|
||||
"@types/estree" "1.0.8"
|
||||
optionalDependencies:
|
||||
"@rollup/rollup-android-arm-eabi" "4.31.0"
|
||||
"@rollup/rollup-android-arm64" "4.31.0"
|
||||
"@rollup/rollup-darwin-arm64" "4.31.0"
|
||||
"@rollup/rollup-darwin-x64" "4.31.0"
|
||||
"@rollup/rollup-freebsd-arm64" "4.31.0"
|
||||
"@rollup/rollup-freebsd-x64" "4.31.0"
|
||||
"@rollup/rollup-linux-arm-gnueabihf" "4.31.0"
|
||||
"@rollup/rollup-linux-arm-musleabihf" "4.31.0"
|
||||
"@rollup/rollup-linux-arm64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-arm64-musl" "4.31.0"
|
||||
"@rollup/rollup-linux-loongarch64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-riscv64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-s390x-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-x64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-x64-musl" "4.31.0"
|
||||
"@rollup/rollup-win32-arm64-msvc" "4.31.0"
|
||||
"@rollup/rollup-win32-ia32-msvc" "4.31.0"
|
||||
"@rollup/rollup-win32-x64-msvc" "4.31.0"
|
||||
"@rollup/rollup-android-arm-eabi" "4.59.0"
|
||||
"@rollup/rollup-android-arm64" "4.59.0"
|
||||
"@rollup/rollup-darwin-arm64" "4.59.0"
|
||||
"@rollup/rollup-darwin-x64" "4.59.0"
|
||||
"@rollup/rollup-freebsd-arm64" "4.59.0"
|
||||
"@rollup/rollup-freebsd-x64" "4.59.0"
|
||||
"@rollup/rollup-linux-arm-gnueabihf" "4.59.0"
|
||||
"@rollup/rollup-linux-arm-musleabihf" "4.59.0"
|
||||
"@rollup/rollup-linux-arm64-gnu" "4.59.0"
|
||||
"@rollup/rollup-linux-arm64-musl" "4.59.0"
|
||||
"@rollup/rollup-linux-loong64-gnu" "4.59.0"
|
||||
"@rollup/rollup-linux-loong64-musl" "4.59.0"
|
||||
"@rollup/rollup-linux-ppc64-gnu" "4.59.0"
|
||||
"@rollup/rollup-linux-ppc64-musl" "4.59.0"
|
||||
"@rollup/rollup-linux-riscv64-gnu" "4.59.0"
|
||||
"@rollup/rollup-linux-riscv64-musl" "4.59.0"
|
||||
"@rollup/rollup-linux-s390x-gnu" "4.59.0"
|
||||
"@rollup/rollup-linux-x64-gnu" "4.59.0"
|
||||
"@rollup/rollup-linux-x64-musl" "4.59.0"
|
||||
"@rollup/rollup-openbsd-x64" "4.59.0"
|
||||
"@rollup/rollup-openharmony-arm64" "4.59.0"
|
||||
"@rollup/rollup-win32-arm64-msvc" "4.59.0"
|
||||
"@rollup/rollup-win32-ia32-msvc" "4.59.0"
|
||||
"@rollup/rollup-win32-x64-gnu" "4.59.0"
|
||||
"@rollup/rollup-win32-x64-msvc" "4.59.0"
|
||||
fsevents "~2.3.2"
|
||||
|
||||
shiki@1.3.0, shiki@^1.3.0:
|
||||
|
||||
64
builddefs/locate_keymap.mk
Normal file
64
builddefs/locate_keymap.mk
Normal file
@@ -0,0 +1,64 @@
|
||||
MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
|
||||
MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
|
||||
|
||||
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_1)
|
||||
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_2)
|
||||
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_3)
|
||||
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_4)
|
||||
POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_5)
|
||||
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
|
||||
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
|
||||
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
|
||||
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
|
||||
POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
|
||||
endif
|
||||
|
||||
define SEARCH_POTENTIAL_LOCATION
|
||||
POTENTIAL_DIR := $1
|
||||
ifeq ("$$(wildcard $$(KEYMAP_PATH))", "")
|
||||
POTENTIAL_KEYMAP_JSON := $$(POTENTIAL_DIR)/keymap.json
|
||||
POTENTIAL_KEYMAP_C := $$(POTENTIAL_DIR)/keymap.c
|
||||
ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_JSON))","")
|
||||
KEYMAP_JSON := $$(POTENTIAL_KEYMAP_JSON)
|
||||
KEYMAP_PATH := $$(POTENTIAL_DIR)
|
||||
endif
|
||||
ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_C))","")
|
||||
KEYMAP_C := $$(POTENTIAL_KEYMAP_C)
|
||||
KEYMAP_PATH := $$(POTENTIAL_DIR)
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
|
||||
$(foreach KM_DIR,$(POTENTIAL_KEYMAP_PATHS),$(eval $(call SEARCH_POTENTIAL_LOCATION, $(KM_DIR))))
|
||||
|
||||
LAYOUTS_PATH := layouts
|
||||
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
|
||||
|
||||
ifneq ($(QMK_USERSPACE),)
|
||||
LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
|
||||
endif
|
||||
|
||||
define SEARCH_LAYOUTS
|
||||
$$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_POTENTIAL_LOCATION,$$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP))))
|
||||
endef
|
||||
|
||||
ifneq ($(FORCE_LAYOUT),)
|
||||
ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS)))
|
||||
$(info Forcing layout: $(FORCE_LAYOUT))
|
||||
LAYOUTS := $(FORCE_LAYOUT)
|
||||
else
|
||||
$(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS)))
|
||||
|
||||
ifeq ("$$(wildcard $$(KEYMAP_PATH))", "")
|
||||
$(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
|
||||
# this state should never be reached
|
||||
endif
|
||||
@@ -4,7 +4,7 @@
|
||||
# $(2) = option to use if $(1) is not supported
|
||||
# $(3) = additional arguments to pass to the compiler during the test, but aren't contained in the output
|
||||
cc-option = $(shell \
|
||||
if { echo 'int main(){return 0;}' | $(CC) $(1) $(3) -o /dev/null -x c /dev/null >/dev/null 2>&1; }; \
|
||||
if { echo 'int main(){return 0;}' | $(CC) $(1) $(3) -Wl,--unresolved-symbols=ignore-all -o /dev/null -x c /dev/null >/dev/null 2>&1; }; \
|
||||
then echo "$(1)"; else echo "$(2)"; fi)
|
||||
|
||||
# Helper to pass comma character to make functions (use with `$(,)` to pass in `$(call ...)` arguments)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7480": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_ON",
|
||||
"label": "Audio On",
|
||||
"aliases": [
|
||||
"AU_ON"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7481": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_OFF",
|
||||
"label": "Audio Off",
|
||||
"aliases": [
|
||||
"AU_OFF"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x7482": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_TOGGLE",
|
||||
"label": "Toggle Audio",
|
||||
"aliases": [
|
||||
"AU_TOGG"
|
||||
]
|
||||
@@ -25,6 +28,7 @@
|
||||
"0x748A": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_CLICKY_TOGGLE",
|
||||
"label": "Toggle Audio Clicky",
|
||||
"aliases": [
|
||||
"CK_TOGG"
|
||||
]
|
||||
@@ -32,6 +36,7 @@
|
||||
"0x748B": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_CLICKY_ON",
|
||||
"label": "Audio Clicky On",
|
||||
"aliases": [
|
||||
"CK_ON"
|
||||
]
|
||||
@@ -39,6 +44,7 @@
|
||||
"0x748C": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_CLICKY_OFF",
|
||||
"label": "Audio Clicky Off",
|
||||
"aliases": [
|
||||
"CK_OFF"
|
||||
]
|
||||
@@ -46,6 +52,7 @@
|
||||
"0x748D": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_CLICKY_UP",
|
||||
"label": "Audio Clicky Up",
|
||||
"aliases": [
|
||||
"CK_UP"
|
||||
]
|
||||
@@ -53,6 +60,7 @@
|
||||
"0x748E": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_CLICKY_DOWN",
|
||||
"label": "Audio Clicky Down",
|
||||
"aliases": [
|
||||
"CK_DOWN"
|
||||
]
|
||||
@@ -60,6 +68,7 @@
|
||||
"0x748F": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_CLICKY_RESET",
|
||||
"label": "Audio Clicky Reset",
|
||||
"aliases": [
|
||||
"CK_RST"
|
||||
]
|
||||
@@ -68,6 +77,7 @@
|
||||
"0x7490": {
|
||||
"group": "audio",
|
||||
"key": "QK_MUSIC_ON",
|
||||
"label": "Music On",
|
||||
"aliases": [
|
||||
"MU_ON"
|
||||
]
|
||||
@@ -75,6 +85,7 @@
|
||||
"0x7491": {
|
||||
"group": "audio",
|
||||
"key": "QK_MUSIC_OFF",
|
||||
"label": "Music Off",
|
||||
"aliases": [
|
||||
"MU_OFF"
|
||||
]
|
||||
@@ -82,6 +93,7 @@
|
||||
"0x7492": {
|
||||
"group": "audio",
|
||||
"key": "QK_MUSIC_TOGGLE",
|
||||
"label": "Toggle Music",
|
||||
"aliases": [
|
||||
"MU_TOGG"
|
||||
]
|
||||
@@ -89,6 +101,7 @@
|
||||
"0x7493": {
|
||||
"group": "audio",
|
||||
"key": "QK_MUSIC_MODE_NEXT",
|
||||
"label": "Music Next",
|
||||
"aliases": [
|
||||
"MU_NEXT"
|
||||
]
|
||||
@@ -97,6 +110,7 @@
|
||||
"0x7494": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_VOICE_NEXT",
|
||||
"label": "Audio Voice Next",
|
||||
"aliases": [
|
||||
"AU_NEXT"
|
||||
]
|
||||
@@ -104,6 +118,7 @@
|
||||
"0x7495": {
|
||||
"group": "audio",
|
||||
"key": "QK_AUDIO_VOICE_PREVIOUS",
|
||||
"label": "Audio Voice Previous",
|
||||
"aliases": [
|
||||
"AU_PREV"
|
||||
]
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"0x0000": {
|
||||
"group": "internal",
|
||||
"key": "KC_NO",
|
||||
"label": "",
|
||||
"label": "N/A",
|
||||
"aliases": [
|
||||
"XXXXXXX"
|
||||
]
|
||||
@@ -11,7 +11,7 @@
|
||||
"0x0001": {
|
||||
"group": "internal",
|
||||
"key": "KC_TRANSPARENT",
|
||||
"label": "",
|
||||
"label": "Transparent",
|
||||
"aliases": [
|
||||
"_______",
|
||||
"KC_TRNS"
|
||||
@@ -634,7 +634,7 @@
|
||||
"0x0065": {
|
||||
"group": "basic",
|
||||
"key": "KC_APPLICATION",
|
||||
"label": "Application",
|
||||
"label": "App",
|
||||
"aliases": [
|
||||
"KC_APP"
|
||||
]
|
||||
@@ -642,7 +642,7 @@
|
||||
"0x0066": {
|
||||
"group": "basic",
|
||||
"key": "KC_KB_POWER",
|
||||
"label": "Application"
|
||||
"label": "Power"
|
||||
},
|
||||
"0x0067": {
|
||||
"group": "basic",
|
||||
@@ -1068,7 +1068,7 @@
|
||||
"0x00A5": {
|
||||
"group": "system",
|
||||
"key": "KC_SYSTEM_POWER",
|
||||
"label": "System Power Down",
|
||||
"label": "Power",
|
||||
"aliases": [
|
||||
"KC_PWR"
|
||||
]
|
||||
@@ -1076,7 +1076,7 @@
|
||||
"0x00A6": {
|
||||
"group": "system",
|
||||
"key": "KC_SYSTEM_SLEEP",
|
||||
"label": "System Sleep",
|
||||
"label": "Sleep",
|
||||
"aliases": [
|
||||
"KC_SLEP"
|
||||
]
|
||||
@@ -1084,7 +1084,7 @@
|
||||
"0x00A7": {
|
||||
"group": "system",
|
||||
"key": "KC_SYSTEM_WAKE",
|
||||
"label": "System Wake",
|
||||
"label": "Wake",
|
||||
"aliases": [
|
||||
"KC_WAKE"
|
||||
]
|
||||
@@ -1140,7 +1140,7 @@
|
||||
"0x00AE": {
|
||||
"group": "media",
|
||||
"key": "KC_MEDIA_PLAY_PAUSE",
|
||||
"label": "Play/Pause Track",
|
||||
"label": "Play/Pause",
|
||||
"aliases": [
|
||||
"KC_MPLY"
|
||||
]
|
||||
@@ -1148,7 +1148,7 @@
|
||||
"0x00AF": {
|
||||
"group": "media",
|
||||
"key": "KC_MEDIA_SELECT",
|
||||
"label": "Launch Player",
|
||||
"label": "Media",
|
||||
"aliases": [
|
||||
"KC_MSEL"
|
||||
]
|
||||
@@ -1164,12 +1164,12 @@
|
||||
"0x00B1": {
|
||||
"group": "media",
|
||||
"key": "KC_MAIL",
|
||||
"label": "Launch Mail"
|
||||
"label": "Mail",
|
||||
},
|
||||
"0x00B2": {
|
||||
"group": "media",
|
||||
"key": "KC_CALCULATOR",
|
||||
"label": "Launch Calculator",
|
||||
"label": "Calculator",
|
||||
"aliases": [
|
||||
"KC_CALC"
|
||||
]
|
||||
@@ -1177,7 +1177,7 @@
|
||||
"0x00B3": {
|
||||
"group": "media",
|
||||
"key": "KC_MY_COMPUTER",
|
||||
"label": "Launch My Computer",
|
||||
"label": "My Computer",
|
||||
"aliases": [
|
||||
"KC_MYCM"
|
||||
]
|
||||
@@ -1185,7 +1185,7 @@
|
||||
"0x00B4": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_SEARCH",
|
||||
"label": "Browser Search",
|
||||
"label": "Search",
|
||||
"aliases": [
|
||||
"KC_WSCH"
|
||||
]
|
||||
@@ -1193,7 +1193,7 @@
|
||||
"0x00B5": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_HOME",
|
||||
"label": "Browser Home",
|
||||
"label": "Home",
|
||||
"aliases": [
|
||||
"KC_WHOM"
|
||||
]
|
||||
@@ -1201,7 +1201,7 @@
|
||||
"0x00B6": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_BACK",
|
||||
"label": "Browser Back",
|
||||
"label": "Back",
|
||||
"aliases": [
|
||||
"KC_WBAK"
|
||||
]
|
||||
@@ -1209,7 +1209,7 @@
|
||||
"0x00B7": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_FORWARD",
|
||||
"label": "Browser Forward",
|
||||
"label": "Forward",
|
||||
"aliases": [
|
||||
"KC_WFWD"
|
||||
]
|
||||
@@ -1217,7 +1217,7 @@
|
||||
"0x00B8": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_STOP",
|
||||
"label": "Browser Stop",
|
||||
"label": "Stop",
|
||||
"aliases": [
|
||||
"KC_WSTP"
|
||||
]
|
||||
@@ -1225,7 +1225,7 @@
|
||||
"0x00B9": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_REFRESH",
|
||||
"label": "Browser Refresh",
|
||||
"label": "Refresh",
|
||||
"aliases": [
|
||||
"KC_WREF"
|
||||
]
|
||||
@@ -1233,7 +1233,7 @@
|
||||
"0x00BA": {
|
||||
"group": "media",
|
||||
"key": "KC_WWW_FAVORITES",
|
||||
"label": "Browser Favorites",
|
||||
"label": "Favorites",
|
||||
"aliases": [
|
||||
"KC_WFAV"
|
||||
]
|
||||
@@ -1241,7 +1241,7 @@
|
||||
"0x00BB": {
|
||||
"group": "media",
|
||||
"key": "KC_MEDIA_FAST_FORWARD",
|
||||
"label": "Next Track",
|
||||
"label": "Fast Forward",
|
||||
"aliases": [
|
||||
"KC_MFFD"
|
||||
]
|
||||
@@ -1249,7 +1249,7 @@
|
||||
"0x00BC": {
|
||||
"group": "media",
|
||||
"key": "KC_MEDIA_REWIND",
|
||||
"label": "Previous Track",
|
||||
"label": "Rewind",
|
||||
"aliases": [
|
||||
"KC_MRWD"
|
||||
]
|
||||
@@ -1273,7 +1273,7 @@
|
||||
"0x00BF": {
|
||||
"group": "media",
|
||||
"key": "KC_CONTROL_PANEL",
|
||||
"label": "Open Control Panel",
|
||||
"label": "Control Panel",
|
||||
"aliases": [
|
||||
"KC_CPNL"
|
||||
]
|
||||
@@ -1281,7 +1281,7 @@
|
||||
"0x00C0": {
|
||||
"group": "media",
|
||||
"key": "KC_ASSISTANT",
|
||||
"label": "Launch Assistant",
|
||||
"label": "Assistant",
|
||||
"aliases": [
|
||||
"KC_ASST"
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7400": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_0",
|
||||
"label": "Button 0",
|
||||
"aliases": [
|
||||
"JS_0"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7401": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_1",
|
||||
"label": "Button 1",
|
||||
"aliases": [
|
||||
"JS_1"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x7402": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_2",
|
||||
"label": "Button 2",
|
||||
"aliases": [
|
||||
"JS_2"
|
||||
]
|
||||
@@ -24,6 +27,7 @@
|
||||
"0x7403": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_3",
|
||||
"label": "Button 3",
|
||||
"aliases": [
|
||||
"JS_3"
|
||||
]
|
||||
@@ -31,6 +35,7 @@
|
||||
"0x7404": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_4",
|
||||
"label": "Button 4",
|
||||
"aliases": [
|
||||
"JS_4"
|
||||
]
|
||||
@@ -38,6 +43,7 @@
|
||||
"0x7405": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_5",
|
||||
"label": "Button 5",
|
||||
"aliases": [
|
||||
"JS_5"
|
||||
]
|
||||
@@ -45,6 +51,7 @@
|
||||
"0x7406": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_6",
|
||||
"label": "Button 6",
|
||||
"aliases": [
|
||||
"JS_6"
|
||||
]
|
||||
@@ -52,6 +59,7 @@
|
||||
"0x7407": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_7",
|
||||
"label": "Button 7",
|
||||
"aliases": [
|
||||
"JS_7"
|
||||
]
|
||||
@@ -59,6 +67,7 @@
|
||||
"0x7408": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_8",
|
||||
"label": "Button 8",
|
||||
"aliases": [
|
||||
"JS_8"
|
||||
]
|
||||
@@ -66,6 +75,7 @@
|
||||
"0x7409": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_9",
|
||||
"label": "Button 9",
|
||||
"aliases": [
|
||||
"JS_9"
|
||||
]
|
||||
@@ -73,6 +83,7 @@
|
||||
"0x740A": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_10",
|
||||
"label": "Button 10",
|
||||
"aliases": [
|
||||
"JS_10"
|
||||
]
|
||||
@@ -80,6 +91,7 @@
|
||||
"0x740B": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_11",
|
||||
"label": "Button 11",
|
||||
"aliases": [
|
||||
"JS_11"
|
||||
]
|
||||
@@ -87,6 +99,7 @@
|
||||
"0x740C": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_12",
|
||||
"label": "Button 12",
|
||||
"aliases": [
|
||||
"JS_12"
|
||||
]
|
||||
@@ -94,6 +107,7 @@
|
||||
"0x740D": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_13",
|
||||
"label": "Button 13",
|
||||
"aliases": [
|
||||
"JS_13"
|
||||
]
|
||||
@@ -101,6 +115,7 @@
|
||||
"0x740E": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_14",
|
||||
"label": "Button 14",
|
||||
"aliases": [
|
||||
"JS_14"
|
||||
]
|
||||
@@ -108,6 +123,7 @@
|
||||
"0x740F": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_15",
|
||||
"label": "Button 15",
|
||||
"aliases": [
|
||||
"JS_15"
|
||||
]
|
||||
@@ -115,6 +131,7 @@
|
||||
"0x7410": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_16",
|
||||
"label": "Button 16",
|
||||
"aliases": [
|
||||
"JS_16"
|
||||
]
|
||||
@@ -122,6 +139,7 @@
|
||||
"0x7411": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_17",
|
||||
"label": "Button 17",
|
||||
"aliases": [
|
||||
"JS_17"
|
||||
]
|
||||
@@ -129,6 +147,7 @@
|
||||
"0x7412": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_18",
|
||||
"label": "Button 18",
|
||||
"aliases": [
|
||||
"JS_18"
|
||||
]
|
||||
@@ -136,6 +155,7 @@
|
||||
"0x7413": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_19",
|
||||
"label": "Button 19",
|
||||
"aliases": [
|
||||
"JS_19"
|
||||
]
|
||||
@@ -143,6 +163,7 @@
|
||||
"0x7414": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_20",
|
||||
"label": "Button 20",
|
||||
"aliases": [
|
||||
"JS_20"
|
||||
]
|
||||
@@ -150,6 +171,7 @@
|
||||
"0x7415": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_21",
|
||||
"label": "Button 21",
|
||||
"aliases": [
|
||||
"JS_21"
|
||||
]
|
||||
@@ -157,6 +179,7 @@
|
||||
"0x7416": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_22",
|
||||
"label": "Button 22",
|
||||
"aliases": [
|
||||
"JS_22"
|
||||
]
|
||||
@@ -164,6 +187,7 @@
|
||||
"0x7417": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_23",
|
||||
"label": "Button 23",
|
||||
"aliases": [
|
||||
"JS_23"
|
||||
]
|
||||
@@ -171,6 +195,7 @@
|
||||
"0x7418": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_24",
|
||||
"label": "Button 24",
|
||||
"aliases": [
|
||||
"JS_24"
|
||||
]
|
||||
@@ -178,6 +203,7 @@
|
||||
"0x7419": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_25",
|
||||
"label": "Button 25",
|
||||
"aliases": [
|
||||
"JS_25"
|
||||
]
|
||||
@@ -185,6 +211,7 @@
|
||||
"0x741A": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_26",
|
||||
"label": "Button 26",
|
||||
"aliases": [
|
||||
"JS_26"
|
||||
]
|
||||
@@ -192,6 +219,7 @@
|
||||
"0x741B": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_27",
|
||||
"label": "Button 27",
|
||||
"aliases": [
|
||||
"JS_27"
|
||||
]
|
||||
@@ -199,6 +227,7 @@
|
||||
"0x741C": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_28",
|
||||
"label": "Button 28",
|
||||
"aliases": [
|
||||
"JS_28"
|
||||
]
|
||||
@@ -206,6 +235,7 @@
|
||||
"0x741D": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_29",
|
||||
"label": "Button 29",
|
||||
"aliases": [
|
||||
"JS_29"
|
||||
]
|
||||
@@ -213,6 +243,7 @@
|
||||
"0x741E": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_30",
|
||||
"label": "Button 30",
|
||||
"aliases": [
|
||||
"JS_30"
|
||||
]
|
||||
@@ -220,6 +251,7 @@
|
||||
"0x741F": {
|
||||
"group": "joystick",
|
||||
"key": "QK_JOYSTICK_BUTTON_31",
|
||||
"label": "Button 31",
|
||||
"aliases": [
|
||||
"JS_31"
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7800": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_ON",
|
||||
"label": "Backlight On",
|
||||
"aliases": [
|
||||
"BL_ON"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7801": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_OFF",
|
||||
"label": "Backlight Off",
|
||||
"aliases": [
|
||||
"BL_OFF"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x7802": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_TOGGLE",
|
||||
"label": "Toggle Backlight",
|
||||
"aliases": [
|
||||
"BL_TOGG"
|
||||
]
|
||||
@@ -24,6 +27,7 @@
|
||||
"0x7803": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_DOWN",
|
||||
"label": "Backlight Down",
|
||||
"aliases": [
|
||||
"BL_DOWN"
|
||||
]
|
||||
@@ -31,6 +35,7 @@
|
||||
"0x7804": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_UP",
|
||||
"label": "Backlight Up",
|
||||
"aliases": [
|
||||
"BL_UP"
|
||||
]
|
||||
@@ -38,6 +43,7 @@
|
||||
"0x7805": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_STEP",
|
||||
"label": "Backlight Step",
|
||||
"aliases": [
|
||||
"BL_STEP"
|
||||
]
|
||||
@@ -45,6 +51,7 @@
|
||||
"0x7806": {
|
||||
"group": "backlight",
|
||||
"key": "QK_BACKLIGHT_TOGGLE_BREATHING",
|
||||
"label": "Toggle Breathing",
|
||||
"aliases": [
|
||||
"BL_BRTG"
|
||||
]
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"keycodes": {
|
||||
|
||||
"0x7700": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_0",
|
||||
"label": "Macro 0",
|
||||
"aliases": [
|
||||
"MC_0"
|
||||
]
|
||||
@@ -11,6 +11,7 @@
|
||||
"0x7701": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_1",
|
||||
"label": "Macro 1",
|
||||
"aliases": [
|
||||
"MC_1"
|
||||
]
|
||||
@@ -18,6 +19,7 @@
|
||||
"0x7702": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_2",
|
||||
"label": "Macro 2",
|
||||
"aliases": [
|
||||
"MC_2"
|
||||
]
|
||||
@@ -25,6 +27,7 @@
|
||||
"0x7703": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_3",
|
||||
"label": "Macro 3",
|
||||
"aliases": [
|
||||
"MC_3"
|
||||
]
|
||||
@@ -32,6 +35,7 @@
|
||||
"0x7704": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_4",
|
||||
"label": "Macro 4",
|
||||
"aliases": [
|
||||
"MC_4"
|
||||
]
|
||||
@@ -39,6 +43,7 @@
|
||||
"0x7705": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_5",
|
||||
"label": "Macro 5",
|
||||
"aliases": [
|
||||
"MC_5"
|
||||
]
|
||||
@@ -46,6 +51,7 @@
|
||||
"0x7706": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_6",
|
||||
"label": "Macro 6",
|
||||
"aliases": [
|
||||
"MC_6"
|
||||
]
|
||||
@@ -53,6 +59,7 @@
|
||||
"0x7707": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_7",
|
||||
"label": "Macro 7",
|
||||
"aliases": [
|
||||
"MC_7"
|
||||
]
|
||||
@@ -60,6 +67,7 @@
|
||||
"0x7708": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_8",
|
||||
"label": "Macro 8",
|
||||
"aliases": [
|
||||
"MC_8"
|
||||
]
|
||||
@@ -67,6 +75,7 @@
|
||||
"0x7709": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_9",
|
||||
"label": "Macro 9",
|
||||
"aliases": [
|
||||
"MC_9"
|
||||
]
|
||||
@@ -74,6 +83,7 @@
|
||||
"0x770A": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_10",
|
||||
"label": "Macro 10",
|
||||
"aliases": [
|
||||
"MC_10"
|
||||
]
|
||||
@@ -81,6 +91,7 @@
|
||||
"0x770B": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_11",
|
||||
"label": "Macro 11",
|
||||
"aliases": [
|
||||
"MC_11"
|
||||
]
|
||||
@@ -88,6 +99,7 @@
|
||||
"0x770C": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_12",
|
||||
"label": "Macro 12",
|
||||
"aliases": [
|
||||
"MC_12"
|
||||
]
|
||||
@@ -95,6 +107,7 @@
|
||||
"0x770D": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_13",
|
||||
"label": "Macro 13",
|
||||
"aliases": [
|
||||
"MC_13"
|
||||
]
|
||||
@@ -102,6 +115,7 @@
|
||||
"0x770E": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_14",
|
||||
"label": "Macro 14",
|
||||
"aliases": [
|
||||
"MC_14"
|
||||
]
|
||||
@@ -109,6 +123,7 @@
|
||||
"0x770F": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_15",
|
||||
"label": "Macro 15",
|
||||
"aliases": [
|
||||
"MC_15"
|
||||
]
|
||||
@@ -116,6 +131,7 @@
|
||||
"0x7710": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_16",
|
||||
"label": "Macro 16",
|
||||
"aliases": [
|
||||
"MC_16"
|
||||
]
|
||||
@@ -123,6 +139,7 @@
|
||||
"0x7711": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_17",
|
||||
"label": "Macro 17",
|
||||
"aliases": [
|
||||
"MC_17"
|
||||
]
|
||||
@@ -130,6 +147,7 @@
|
||||
"0x7712": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_18",
|
||||
"label": "Macro 18",
|
||||
"aliases": [
|
||||
"MC_18"
|
||||
]
|
||||
@@ -137,6 +155,7 @@
|
||||
"0x7713": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_19",
|
||||
"label": "Macro 19",
|
||||
"aliases": [
|
||||
"MC_19"
|
||||
]
|
||||
@@ -144,6 +163,7 @@
|
||||
"0x7714": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_20",
|
||||
"label": "Macro 20",
|
||||
"aliases": [
|
||||
"MC_20"
|
||||
]
|
||||
@@ -151,6 +171,7 @@
|
||||
"0x7715": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_21",
|
||||
"label": "Macro 21",
|
||||
"aliases": [
|
||||
"MC_21"
|
||||
]
|
||||
@@ -158,6 +179,7 @@
|
||||
"0x7716": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_22",
|
||||
"label": "Macro 22",
|
||||
"aliases": [
|
||||
"MC_22"
|
||||
]
|
||||
@@ -165,6 +187,7 @@
|
||||
"0x7717": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_23",
|
||||
"label": "Macro 23",
|
||||
"aliases": [
|
||||
"MC_23"
|
||||
]
|
||||
@@ -172,6 +195,7 @@
|
||||
"0x7718": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_24",
|
||||
"label": "Macro 24",
|
||||
"aliases": [
|
||||
"MC_24"
|
||||
]
|
||||
@@ -179,6 +203,7 @@
|
||||
"0x7719": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_25",
|
||||
"label": "Macro 25",
|
||||
"aliases": [
|
||||
"MC_25"
|
||||
]
|
||||
@@ -186,6 +211,7 @@
|
||||
"0x771A": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_26",
|
||||
"label": "Macro 26",
|
||||
"aliases": [
|
||||
"MC_26"
|
||||
]
|
||||
@@ -193,6 +219,7 @@
|
||||
"0x771B": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_27",
|
||||
"label": "Macro 27",
|
||||
"aliases": [
|
||||
"MC_27"
|
||||
]
|
||||
@@ -200,6 +227,7 @@
|
||||
"0x771C": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_28",
|
||||
"label": "Macro 28",
|
||||
"aliases": [
|
||||
"MC_28"
|
||||
]
|
||||
@@ -207,6 +235,7 @@
|
||||
"0x771D": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_29",
|
||||
"label": "Macro 29",
|
||||
"aliases": [
|
||||
"MC_29"
|
||||
]
|
||||
@@ -214,6 +243,7 @@
|
||||
"0x771E": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_30",
|
||||
"label": "Macro 30",
|
||||
"aliases": [
|
||||
"MC_30"
|
||||
]
|
||||
@@ -221,6 +251,7 @@
|
||||
"0x771F": {
|
||||
"group": "macro",
|
||||
"key": "QK_MACRO_31",
|
||||
"label": "Macro 31",
|
||||
"aliases": [
|
||||
"MC_31"
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7440": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_1",
|
||||
"label": "Button 1",
|
||||
"aliases": [
|
||||
"PB_1"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7441": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_2",
|
||||
"label": "Button 2",
|
||||
"aliases": [
|
||||
"PB_2"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x7442": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_3",
|
||||
"label": "Button 3",
|
||||
"aliases": [
|
||||
"PB_3"
|
||||
]
|
||||
@@ -24,6 +27,7 @@
|
||||
"0x7443": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_4",
|
||||
"label": "Button 4",
|
||||
"aliases": [
|
||||
"PB_4"
|
||||
]
|
||||
@@ -31,6 +35,7 @@
|
||||
"0x7444": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_5",
|
||||
"label": "Button 5",
|
||||
"aliases": [
|
||||
"PB_5"
|
||||
]
|
||||
@@ -38,6 +43,7 @@
|
||||
"0x7445": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_6",
|
||||
"label": "Button 6",
|
||||
"aliases": [
|
||||
"PB_6"
|
||||
]
|
||||
@@ -45,6 +51,7 @@
|
||||
"0x7446": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_7",
|
||||
"label": "Button 7",
|
||||
"aliases": [
|
||||
"PB_7"
|
||||
]
|
||||
@@ -52,6 +59,7 @@
|
||||
"0x7447": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_8",
|
||||
"label": "Button 8",
|
||||
"aliases": [
|
||||
"PB_8"
|
||||
]
|
||||
@@ -59,6 +67,7 @@
|
||||
"0x7448": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_9",
|
||||
"label": "Button 9",
|
||||
"aliases": [
|
||||
"PB_9"
|
||||
]
|
||||
@@ -66,6 +75,7 @@
|
||||
"0x7449": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_10",
|
||||
"label": "Button 10",
|
||||
"aliases": [
|
||||
"PB_10"
|
||||
]
|
||||
@@ -73,6 +83,7 @@
|
||||
"0x744A": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_11",
|
||||
"label": "Button 11",
|
||||
"aliases": [
|
||||
"PB_11"
|
||||
]
|
||||
@@ -80,6 +91,7 @@
|
||||
"0x744B": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_12",
|
||||
"label": "Button 12",
|
||||
"aliases": [
|
||||
"PB_12"
|
||||
]
|
||||
@@ -87,6 +99,7 @@
|
||||
"0x744C": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_13",
|
||||
"label": "Button 13",
|
||||
"aliases": [
|
||||
"PB_13"
|
||||
]
|
||||
@@ -94,6 +107,7 @@
|
||||
"0x744D": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_14",
|
||||
"label": "Button 14",
|
||||
"aliases": [
|
||||
"PB_14"
|
||||
]
|
||||
@@ -101,6 +115,7 @@
|
||||
"0x744E": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_15",
|
||||
"label": "Button 15",
|
||||
"aliases": [
|
||||
"PB_15"
|
||||
]
|
||||
@@ -108,6 +123,7 @@
|
||||
"0x744F": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_16",
|
||||
"label": "Button 16",
|
||||
"aliases": [
|
||||
"PB_16"
|
||||
]
|
||||
@@ -115,6 +131,7 @@
|
||||
"0x7450": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_17",
|
||||
"label": "Button 17",
|
||||
"aliases": [
|
||||
"PB_17"
|
||||
]
|
||||
@@ -122,6 +139,7 @@
|
||||
"0x7451": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_18",
|
||||
"label": "Button 18",
|
||||
"aliases": [
|
||||
"PB_18"
|
||||
]
|
||||
@@ -129,6 +147,7 @@
|
||||
"0x7452": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_19",
|
||||
"label": "Button 19",
|
||||
"aliases": [
|
||||
"PB_19"
|
||||
]
|
||||
@@ -136,6 +155,7 @@
|
||||
"0x7453": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_20",
|
||||
"label": "Button 20",
|
||||
"aliases": [
|
||||
"PB_20"
|
||||
]
|
||||
@@ -143,6 +163,7 @@
|
||||
"0x7454": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_21",
|
||||
"label": "Button 21",
|
||||
"aliases": [
|
||||
"PB_21"
|
||||
]
|
||||
@@ -150,6 +171,7 @@
|
||||
"0x7455": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_22",
|
||||
"label": "Button 22",
|
||||
"aliases": [
|
||||
"PB_22"
|
||||
]
|
||||
@@ -157,6 +179,7 @@
|
||||
"0x7456": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_23",
|
||||
"label": "Button 23",
|
||||
"aliases": [
|
||||
"PB_23"
|
||||
]
|
||||
@@ -164,6 +187,7 @@
|
||||
"0x7457": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_24",
|
||||
"label": "Button 24",
|
||||
"aliases": [
|
||||
"PB_24"
|
||||
]
|
||||
@@ -171,6 +195,7 @@
|
||||
"0x7458": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_25",
|
||||
"label": "Button 25",
|
||||
"aliases": [
|
||||
"PB_25"
|
||||
]
|
||||
@@ -178,6 +203,7 @@
|
||||
"0x7459": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_26",
|
||||
"label": "Button 26",
|
||||
"aliases": [
|
||||
"PB_26"
|
||||
]
|
||||
@@ -185,6 +211,7 @@
|
||||
"0x745A": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_27",
|
||||
"label": "Button 27",
|
||||
"aliases": [
|
||||
"PB_27"
|
||||
]
|
||||
@@ -192,6 +219,7 @@
|
||||
"0x745B": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_28",
|
||||
"label": "Button 28",
|
||||
"aliases": [
|
||||
"PB_28"
|
||||
]
|
||||
@@ -199,6 +227,7 @@
|
||||
"0x745C": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_29",
|
||||
"label": "Button 29",
|
||||
"aliases": [
|
||||
"PB_29"
|
||||
]
|
||||
@@ -206,6 +235,7 @@
|
||||
"0x745D": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_30",
|
||||
"label": "Button 30",
|
||||
"aliases": [
|
||||
"PB_30"
|
||||
]
|
||||
@@ -213,6 +243,7 @@
|
||||
"0x745E": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_31",
|
||||
"label": "Button 31",
|
||||
"aliases": [
|
||||
"PB_31"
|
||||
]
|
||||
@@ -220,6 +251,7 @@
|
||||
"0x745F": {
|
||||
"group": "programmable_button",
|
||||
"key": "QK_PROGRAMMABLE_BUTTON_32",
|
||||
"label": "Button 32",
|
||||
"aliases": [
|
||||
"PB_32"
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7C00": {
|
||||
"group": "quantum",
|
||||
"key": "QK_BOOTLOADER",
|
||||
"label": "Bootloader",
|
||||
"aliases": [
|
||||
"QK_BOOT"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7C01": {
|
||||
"group": "quantum",
|
||||
"key": "QK_REBOOT",
|
||||
"label": "Reboot",
|
||||
"aliases": [
|
||||
"QK_RBT"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x7C02": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DEBUG_TOGGLE",
|
||||
"label": "Toggle Debug",
|
||||
"aliases": [
|
||||
"DB_TOGG"
|
||||
]
|
||||
@@ -24,18 +27,21 @@
|
||||
"0x7C03": {
|
||||
"group": "quantum",
|
||||
"key": "QK_CLEAR_EEPROM",
|
||||
"label": "Clear EEPROM",
|
||||
"aliases": [
|
||||
"EE_CLR"
|
||||
]
|
||||
},
|
||||
"0x7C04": {
|
||||
"group": "quantum",
|
||||
"key": "QK_MAKE"
|
||||
"key": "QK_MAKE",
|
||||
"label": "Make"
|
||||
},
|
||||
|
||||
"0x7C10": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTO_SHIFT_DOWN",
|
||||
"label": "Auto Shift Down",
|
||||
"aliases": [
|
||||
"AS_DOWN"
|
||||
]
|
||||
@@ -43,6 +49,7 @@
|
||||
"0x7C11": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTO_SHIFT_UP",
|
||||
"label": "Auto Shift Up",
|
||||
"aliases": [
|
||||
"AS_UP"
|
||||
]
|
||||
@@ -50,6 +57,7 @@
|
||||
"0x7C12": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTO_SHIFT_REPORT",
|
||||
"label": "Auto Shift Report",
|
||||
"aliases": [
|
||||
"AS_RPT"
|
||||
]
|
||||
@@ -57,6 +65,7 @@
|
||||
"0x7C13": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTO_SHIFT_ON",
|
||||
"label": "Auto Shift On",
|
||||
"aliases": [
|
||||
"AS_ON"
|
||||
]
|
||||
@@ -64,6 +73,7 @@
|
||||
"0x7C14": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTO_SHIFT_OFF",
|
||||
"label": "Auto Shift Off",
|
||||
"aliases": [
|
||||
"AS_OFF"
|
||||
]
|
||||
@@ -71,6 +81,7 @@
|
||||
"0x7C15": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTO_SHIFT_TOGGLE",
|
||||
"label": "Toggle Auto Shift",
|
||||
"aliases": [
|
||||
"AS_TOGG"
|
||||
]
|
||||
@@ -79,6 +90,7 @@
|
||||
"0x7C16": {
|
||||
"group": "quantum",
|
||||
"key": "QK_GRAVE_ESCAPE",
|
||||
"label": "Grave Esc",
|
||||
"aliases": [
|
||||
"QK_GESC"
|
||||
]
|
||||
@@ -95,6 +107,7 @@
|
||||
"0x7C18": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN",
|
||||
"label": "LCtl/(",
|
||||
"aliases": [
|
||||
"SC_LCPO"
|
||||
]
|
||||
@@ -102,6 +115,7 @@
|
||||
"0x7C19": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE",
|
||||
"label": "RCtl/)",
|
||||
"aliases": [
|
||||
"SC_RCPC"
|
||||
]
|
||||
@@ -109,6 +123,7 @@
|
||||
"0x7C1A": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN",
|
||||
"label": "LSft/)",
|
||||
"aliases": [
|
||||
"SC_LSPO"
|
||||
]
|
||||
@@ -116,6 +131,7 @@
|
||||
"0x7C1B": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE",
|
||||
"label": "RSft/)",
|
||||
"aliases": [
|
||||
"SC_RSPC"
|
||||
]
|
||||
@@ -123,6 +139,7 @@
|
||||
"0x7C1C": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN",
|
||||
"label": "LAlt/(",
|
||||
"aliases": [
|
||||
"SC_LAPO"
|
||||
]
|
||||
@@ -130,6 +147,7 @@
|
||||
"0x7C1D": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE",
|
||||
"label": "RAlt/)",
|
||||
"aliases": [
|
||||
"SC_RAPC"
|
||||
]
|
||||
@@ -137,6 +155,7 @@
|
||||
"0x7C1E": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SPACE_CADET_RIGHT_SHIFT_ENTER",
|
||||
"label": "RSft/Ent",
|
||||
"aliases": [
|
||||
"SC_SENT"
|
||||
]
|
||||
@@ -167,6 +186,7 @@
|
||||
"0x7C30": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_NEXT",
|
||||
"label": "Unicode Mode Next",
|
||||
"aliases": [
|
||||
"UC_NEXT"
|
||||
]
|
||||
@@ -174,6 +194,7 @@
|
||||
"0x7C31": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_PREVIOUS",
|
||||
"label": "Unicode Mode Previous",
|
||||
"aliases": [
|
||||
"UC_PREV"
|
||||
]
|
||||
@@ -181,6 +202,7 @@
|
||||
"0x7C32": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_MACOS",
|
||||
"label": "Unicode Mode macOS",
|
||||
"aliases": [
|
||||
"UC_MAC"
|
||||
]
|
||||
@@ -188,6 +210,7 @@
|
||||
"0x7C33": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_LINUX",
|
||||
"label": "Unicode Mode Linux",
|
||||
"aliases": [
|
||||
"UC_LINX"
|
||||
]
|
||||
@@ -195,6 +218,7 @@
|
||||
"0x7C34": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_WINDOWS",
|
||||
"label": "Unicode Mode Windows",
|
||||
"aliases": [
|
||||
"UC_WIN"
|
||||
]
|
||||
@@ -202,6 +226,7 @@
|
||||
"0x7C35": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_BSD",
|
||||
"label": "Unicode Mode BSD",
|
||||
"aliases": [
|
||||
"UC_BSD"
|
||||
]
|
||||
@@ -209,6 +234,7 @@
|
||||
"0x7C36": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_WINCOMPOSE",
|
||||
"label": "Unicode Mode WinCompose",
|
||||
"aliases": [
|
||||
"UC_WINC"
|
||||
]
|
||||
@@ -216,6 +242,7 @@
|
||||
"0x7C37": {
|
||||
"group": "quantum",
|
||||
"key": "QK_UNICODE_MODE_EMACS",
|
||||
"label": "Unicode Mode emacs",
|
||||
"aliases": [
|
||||
"UC_EMAC"
|
||||
]
|
||||
@@ -224,6 +251,7 @@
|
||||
"0x7C40": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_ON",
|
||||
"label": "Haptic On",
|
||||
"aliases": [
|
||||
"HF_ON"
|
||||
]
|
||||
@@ -231,6 +259,7 @@
|
||||
"0x7C41": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_OFF",
|
||||
"label": "Haptic Off",
|
||||
"aliases": [
|
||||
"HF_OFF"
|
||||
]
|
||||
@@ -238,6 +267,7 @@
|
||||
"0x7C42": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_TOGGLE",
|
||||
"label": "Toggle Haptic",
|
||||
"aliases": [
|
||||
"HF_TOGG"
|
||||
]
|
||||
@@ -245,6 +275,7 @@
|
||||
"0x7C43": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_RESET",
|
||||
"label": "Haptic Reset",
|
||||
"aliases": [
|
||||
"HF_RST"
|
||||
]
|
||||
@@ -252,6 +283,7 @@
|
||||
"0x7C44": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_FEEDBACK_TOGGLE",
|
||||
"label": "Toggle Haptic Feedback",
|
||||
"aliases": [
|
||||
"HF_FDBK"
|
||||
]
|
||||
@@ -259,6 +291,7 @@
|
||||
"0x7C45": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_BUZZ_TOGGLE",
|
||||
"label": "Toggle Haptic Buzz",
|
||||
"aliases": [
|
||||
"HF_BUZZ"
|
||||
]
|
||||
@@ -266,6 +299,7 @@
|
||||
"0x7C46": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_MODE_NEXT",
|
||||
"label": "Haptic Mode Next",
|
||||
"aliases": [
|
||||
"HF_NEXT"
|
||||
]
|
||||
@@ -273,6 +307,7 @@
|
||||
"0x7C47": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_MODE_PREVIOUS",
|
||||
"label": "Haptic Mode Previous",
|
||||
"aliases": [
|
||||
"HF_PREV"
|
||||
]
|
||||
@@ -280,6 +315,7 @@
|
||||
"0x7C48": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_CONTINUOUS_TOGGLE",
|
||||
"label": "Toggle Haptic Continuous",
|
||||
"aliases": [
|
||||
"HF_CONT"
|
||||
]
|
||||
@@ -287,6 +323,7 @@
|
||||
"0x7C49": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_CONTINUOUS_UP",
|
||||
"label": "Haptic Continuous Up",
|
||||
"aliases": [
|
||||
"HF_CONU"
|
||||
]
|
||||
@@ -294,6 +331,7 @@
|
||||
"0x7C4A": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_CONTINUOUS_DOWN",
|
||||
"label": "Haptic Continuous Down",
|
||||
"aliases": [
|
||||
"HF_COND"
|
||||
]
|
||||
@@ -301,6 +339,7 @@
|
||||
"0x7C4B": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_DWELL_UP",
|
||||
"label": "Haptic Dwell Up",
|
||||
"aliases": [
|
||||
"HF_DWLU"
|
||||
]
|
||||
@@ -308,6 +347,7 @@
|
||||
"0x7C4C": {
|
||||
"group": "quantum",
|
||||
"key": "QK_HAPTIC_DWELL_DOWN",
|
||||
"label": "Haptic Dwell Down",
|
||||
"aliases": [
|
||||
"HF_DWLD"
|
||||
]
|
||||
@@ -316,6 +356,7 @@
|
||||
"0x7C50": {
|
||||
"group": "quantum",
|
||||
"key": "QK_COMBO_ON",
|
||||
"label": "Combo On",
|
||||
"aliases": [
|
||||
"CM_ON"
|
||||
]
|
||||
@@ -323,6 +364,7 @@
|
||||
"0x7C51": {
|
||||
"group": "quantum",
|
||||
"key": "QK_COMBO_OFF",
|
||||
"label": "Combo Off",
|
||||
"aliases": [
|
||||
"CM_OFF"
|
||||
]
|
||||
@@ -330,6 +372,7 @@
|
||||
"0x7C52": {
|
||||
"group": "quantum",
|
||||
"key": "QK_COMBO_TOGGLE",
|
||||
"label": "Toggle Combo",
|
||||
"aliases": [
|
||||
"CM_TOGG"
|
||||
]
|
||||
@@ -338,6 +381,7 @@
|
||||
"0x7C53": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_MACRO_RECORD_START_1",
|
||||
"label": "Dynamic Macro Record 1",
|
||||
"aliases": [
|
||||
"DM_REC1"
|
||||
]
|
||||
@@ -345,6 +389,7 @@
|
||||
"0x7C54": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_MACRO_RECORD_START_2",
|
||||
"label": "Dynamic Macro Record 2",
|
||||
"aliases": [
|
||||
"DM_REC2"
|
||||
]
|
||||
@@ -352,6 +397,7 @@
|
||||
"0x7C55": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_MACRO_RECORD_STOP",
|
||||
"label": "Dynamic Macro Stop Recording",
|
||||
"aliases": [
|
||||
"DM_RSTP"
|
||||
]
|
||||
@@ -359,6 +405,7 @@
|
||||
"0x7C56": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_MACRO_PLAY_1",
|
||||
"label": "Dynamic Macro Play 1",
|
||||
"aliases": [
|
||||
"DM_PLY1"
|
||||
]
|
||||
@@ -366,6 +413,7 @@
|
||||
"0x7C57": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_MACRO_PLAY_2",
|
||||
"label": "Dynamic Macro Play 2",
|
||||
"aliases": [
|
||||
"DM_PLY2"
|
||||
]
|
||||
@@ -374,6 +422,7 @@
|
||||
"0x7C58": {
|
||||
"group": "quantum",
|
||||
"key": "QK_LEADER",
|
||||
"label": "Leader",
|
||||
"aliases": [
|
||||
"QK_LEAD"
|
||||
]
|
||||
@@ -381,12 +430,14 @@
|
||||
|
||||
"0x7C59": {
|
||||
"group": "quantum",
|
||||
"key": "QK_LOCK"
|
||||
"key": "QK_LOCK",
|
||||
"label": "Lock"
|
||||
},
|
||||
|
||||
"0x7C5A": {
|
||||
"group": "quantum",
|
||||
"key": "QK_ONE_SHOT_ON",
|
||||
"label": "One Shot On",
|
||||
"aliases": [
|
||||
"OS_ON"
|
||||
]
|
||||
@@ -394,6 +445,7 @@
|
||||
"0x7C5B": {
|
||||
"group": "quantum",
|
||||
"key": "QK_ONE_SHOT_OFF",
|
||||
"label": "One Shot Off",
|
||||
"aliases": [
|
||||
"OS_OFF"
|
||||
]
|
||||
@@ -401,6 +453,7 @@
|
||||
"0x7C5C": {
|
||||
"group": "quantum",
|
||||
"key": "QK_ONE_SHOT_TOGGLE",
|
||||
"label": "Toggle One Shot",
|
||||
"aliases": [
|
||||
"OS_TOGG"
|
||||
]
|
||||
@@ -409,6 +462,7 @@
|
||||
"0x7C5D": {
|
||||
"group": "quantum",
|
||||
"key": "QK_KEY_OVERRIDE_TOGGLE",
|
||||
"label": "Toggle Key Overrides",
|
||||
"aliases": [
|
||||
"KO_TOGG"
|
||||
]
|
||||
@@ -416,6 +470,7 @@
|
||||
"0x7C5E": {
|
||||
"group": "quantum",
|
||||
"key": "QK_KEY_OVERRIDE_ON",
|
||||
"label": "Key Overrides On",
|
||||
"aliases": [
|
||||
"KO_ON"
|
||||
]
|
||||
@@ -423,6 +478,7 @@
|
||||
"0x7C5F": {
|
||||
"group": "quantum",
|
||||
"key": "QK_KEY_OVERRIDE_OFF",
|
||||
"label": "Key Overrides Off",
|
||||
"aliases": [
|
||||
"KO_OFF"
|
||||
]
|
||||
@@ -431,6 +487,7 @@
|
||||
"0x7C60": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SECURE_LOCK",
|
||||
"label": "Lock",
|
||||
"aliases": [
|
||||
"SE_LOCK"
|
||||
]
|
||||
@@ -438,6 +495,7 @@
|
||||
"0x7C61": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SECURE_UNLOCK",
|
||||
"label": "Unlock",
|
||||
"aliases": [
|
||||
"SE_UNLK"
|
||||
]
|
||||
@@ -445,6 +503,7 @@
|
||||
"0x7C62": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SECURE_TOGGLE",
|
||||
"label": "Toggle Lock",
|
||||
"aliases": [
|
||||
"SE_TOGG"
|
||||
]
|
||||
@@ -452,6 +511,7 @@
|
||||
"0x7C63": {
|
||||
"group": "quantum",
|
||||
"key": "QK_SECURE_REQUEST",
|
||||
"label": "Request Unlock",
|
||||
"aliases": [
|
||||
"SE_REQ"
|
||||
]
|
||||
@@ -460,6 +520,7 @@
|
||||
"0x7C70": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_TAPPING_TERM_PRINT",
|
||||
"label": "Print Dynamic Tapping Term",
|
||||
"aliases": [
|
||||
"DT_PRNT"
|
||||
]
|
||||
@@ -467,6 +528,7 @@
|
||||
"0x7C71": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_TAPPING_TERM_UP",
|
||||
"label": "Dynamic Tapping Term Up",
|
||||
"aliases": [
|
||||
"DT_UP"
|
||||
]
|
||||
@@ -474,6 +536,7 @@
|
||||
"0x7C72": {
|
||||
"group": "quantum",
|
||||
"key": "QK_DYNAMIC_TAPPING_TERM_DOWN",
|
||||
"label": "Dynamic Tapping Term Down",
|
||||
"aliases": [
|
||||
"DT_DOWN"
|
||||
]
|
||||
@@ -482,6 +545,7 @@
|
||||
"0x7C73": {
|
||||
"group": "quantum",
|
||||
"key": "QK_CAPS_WORD_TOGGLE",
|
||||
"label": "Toggle Caps Word",
|
||||
"aliases": [
|
||||
"CW_TOGG"
|
||||
]
|
||||
@@ -490,6 +554,7 @@
|
||||
"0x7C74": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTOCORRECT_ON",
|
||||
"label": "Autocorrect On",
|
||||
"aliases": [
|
||||
"AC_ON"
|
||||
]
|
||||
@@ -497,6 +562,7 @@
|
||||
"0x7C75": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTOCORRECT_OFF",
|
||||
"label": "Autocorrect Off",
|
||||
"aliases": [
|
||||
"AC_OFF"
|
||||
]
|
||||
@@ -504,6 +570,7 @@
|
||||
"0x7C76": {
|
||||
"group": "quantum",
|
||||
"key": "QK_AUTOCORRECT_TOGGLE",
|
||||
"label": "Toggle Autocorrect",
|
||||
"aliases": [
|
||||
"AC_TOGG"
|
||||
]
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"0x00C1": {
|
||||
"group": "media",
|
||||
"key": "KC_MISSION_CONTROL",
|
||||
"label": "Open Mission Control",
|
||||
"label": "Mission Control",
|
||||
"aliases": [
|
||||
"KC_MCTL"
|
||||
]
|
||||
@@ -11,7 +11,7 @@
|
||||
"0x00C2": {
|
||||
"group": "media",
|
||||
"key": "KC_LAUNCHPAD",
|
||||
"label": "Open Launchpad",
|
||||
"label": "Launchpad",
|
||||
"aliases": [
|
||||
"KC_LPAD"
|
||||
]
|
||||
|
||||
@@ -2,131 +2,163 @@
|
||||
"keycodes": {
|
||||
"0x7E00": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_0"
|
||||
"key": "QK_KB_0",
|
||||
"label": "Keyboard 0"
|
||||
},
|
||||
"0x7E01": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_1"
|
||||
"key": "QK_KB_1",
|
||||
"label": "Keyboard 1"
|
||||
},
|
||||
"0x7E02": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_2"
|
||||
"key": "QK_KB_2",
|
||||
"label": "Keyboard 2"
|
||||
},
|
||||
"0x7E03": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_3"
|
||||
"key": "QK_KB_3",
|
||||
"label": "Keyboard 3"
|
||||
},
|
||||
"0x7E04": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_4"
|
||||
"key": "QK_KB_4",
|
||||
"label": "Keyboard 4"
|
||||
},
|
||||
"0x7E05": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_5"
|
||||
"key": "QK_KB_5",
|
||||
"label": "Keyboard 5"
|
||||
},
|
||||
"0x7E06": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_6"
|
||||
"key": "QK_KB_6",
|
||||
"label": "Keyboard 6"
|
||||
},
|
||||
"0x7E07": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_7"
|
||||
"key": "QK_KB_7",
|
||||
"label": "Keyboard 7"
|
||||
},
|
||||
"0x7E08": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_8"
|
||||
"key": "QK_KB_8",
|
||||
"label": "Keyboard 8"
|
||||
},
|
||||
"0x7E09": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_9"
|
||||
"key": "QK_KB_9",
|
||||
"label": "Keyboard 9"
|
||||
},
|
||||
"0x7E0A": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_10"
|
||||
"key": "QK_KB_10",
|
||||
"label": "Keyboard 10"
|
||||
},
|
||||
"0x7E0B": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_11"
|
||||
"key": "QK_KB_11",
|
||||
"label": "Keyboard 11"
|
||||
},
|
||||
"0x7E0C": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_12"
|
||||
"key": "QK_KB_12",
|
||||
"label": "Keyboard 12"
|
||||
},
|
||||
"0x7E0D": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_13"
|
||||
"key": "QK_KB_13",
|
||||
"label": "Keyboard 13"
|
||||
},
|
||||
"0x7E0E": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_14"
|
||||
"key": "QK_KB_14",
|
||||
"label": "Keyboard 14"
|
||||
},
|
||||
"0x7E0F": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_15"
|
||||
"key": "QK_KB_15",
|
||||
"label": "Keyboard 15"
|
||||
},
|
||||
"0x7E10": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_16"
|
||||
"key": "QK_KB_16",
|
||||
"label": "Keyboard 16"
|
||||
},
|
||||
"0x7E11": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_17"
|
||||
"key": "QK_KB_17",
|
||||
"label": "Keyboard 17"
|
||||
},
|
||||
"0x7E12": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_18"
|
||||
"key": "QK_KB_18",
|
||||
"label": "Keyboard 18"
|
||||
},
|
||||
"0x7E13": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_19"
|
||||
"key": "QK_KB_19",
|
||||
"label": "Keyboard 19"
|
||||
},
|
||||
"0x7E14": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_20"
|
||||
"key": "QK_KB_20",
|
||||
"label": "Keyboard 20"
|
||||
},
|
||||
"0x7E15": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_21"
|
||||
"key": "QK_KB_21",
|
||||
"label": "Keyboard 21"
|
||||
},
|
||||
"0x7E16": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_22"
|
||||
"key": "QK_KB_22",
|
||||
"label": "Keyboard 22"
|
||||
},
|
||||
"0x7E17": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_23"
|
||||
"key": "QK_KB_23",
|
||||
"label": "Keyboard 23"
|
||||
},
|
||||
"0x7E18": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_24"
|
||||
"key": "QK_KB_24",
|
||||
"label": "Keyboard 24"
|
||||
},
|
||||
"0x7E19": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_25"
|
||||
"key": "QK_KB_25",
|
||||
"label": "Keyboard 25"
|
||||
},
|
||||
"0x7E1A": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_26"
|
||||
"key": "QK_KB_26",
|
||||
"label": "Keyboard 26"
|
||||
},
|
||||
"0x7E1B": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_27"
|
||||
"key": "QK_KB_27",
|
||||
"label": "Keyboard 27"
|
||||
},
|
||||
"0x7E1C": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_28"
|
||||
"key": "QK_KB_28",
|
||||
"label": "Keyboard 28"
|
||||
},
|
||||
"0x7E1D": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_29"
|
||||
"key": "QK_KB_29",
|
||||
"label": "Keyboard 29"
|
||||
},
|
||||
"0x7E1E": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_30"
|
||||
"key": "QK_KB_30",
|
||||
"label": "Keyboard 30"
|
||||
},
|
||||
"0x7E1F": {
|
||||
"group": "kb",
|
||||
"key": "QK_KB_31"
|
||||
"key": "QK_KB_31",
|
||||
"label": "Keyboard 31"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"0x7000": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK",
|
||||
"label": "Swap LCtl⇄Caps",
|
||||
"aliases": [
|
||||
"CL_SWAP"
|
||||
]
|
||||
@@ -12,6 +13,7 @@
|
||||
"0x7001": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK",
|
||||
"label": "Unswap LCtl⇄Caps",
|
||||
"aliases": [
|
||||
"CL_NORM"
|
||||
]
|
||||
@@ -19,6 +21,7 @@
|
||||
"0x7002": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK",
|
||||
"label": "Toggle LCtl⇄Caps",
|
||||
"aliases": [
|
||||
"CL_TOGG"
|
||||
]
|
||||
@@ -26,6 +29,7 @@
|
||||
"0x7003": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF",
|
||||
"label": "Caps≠LCtl",
|
||||
"aliases": [
|
||||
"CL_CAPS"
|
||||
]
|
||||
@@ -33,6 +37,7 @@
|
||||
"0x7004": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON",
|
||||
"label": "Caps=LCtl",
|
||||
"aliases": [
|
||||
"CL_CTRL"
|
||||
]
|
||||
@@ -40,6 +45,7 @@
|
||||
"0x7005": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_LALT_LGUI",
|
||||
"label": "Swap LAlt⇄LGUI",
|
||||
"aliases": [
|
||||
"AG_LSWP"
|
||||
]
|
||||
@@ -47,6 +53,7 @@
|
||||
"0x7006": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_LALT_LGUI",
|
||||
"label": "Unswap LAlt⇄LGUI",
|
||||
"aliases": [
|
||||
"AG_LNRM"
|
||||
]
|
||||
@@ -54,6 +61,7 @@
|
||||
"0x7007": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_RALT_RGUI",
|
||||
"label": "Swap RAlt⇄RGUI",
|
||||
"aliases": [
|
||||
"AG_RSWP"
|
||||
]
|
||||
@@ -61,6 +69,7 @@
|
||||
"0x7008": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_RALT_RGUI",
|
||||
"label": "Unswap RAlt⇄RGUI",
|
||||
"aliases": [
|
||||
"AG_RNRM"
|
||||
]
|
||||
@@ -68,6 +77,7 @@
|
||||
"0x7009": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_GUI_ON",
|
||||
"label": "GUI On",
|
||||
"aliases": [
|
||||
"GU_ON"
|
||||
]
|
||||
@@ -75,6 +85,7 @@
|
||||
"0x700A": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_GUI_OFF",
|
||||
"label": "GUI Off",
|
||||
"aliases": [
|
||||
"GU_OFF"
|
||||
]
|
||||
@@ -82,6 +93,7 @@
|
||||
"0x700B": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_GUI",
|
||||
"label": "Toggle GUI",
|
||||
"aliases": [
|
||||
"GU_TOGG"
|
||||
]
|
||||
@@ -89,6 +101,7 @@
|
||||
"0x700C": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_GRAVE_ESC",
|
||||
"label": "Swap `⇄Esc",
|
||||
"aliases": [
|
||||
"GE_SWAP"
|
||||
]
|
||||
@@ -96,6 +109,7 @@
|
||||
"0x700D": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_GRAVE_ESC",
|
||||
"label": "Unswap `⇄Esc",
|
||||
"aliases": [
|
||||
"GE_NORM"
|
||||
]
|
||||
@@ -103,6 +117,7 @@
|
||||
"0x700E": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE",
|
||||
"label": "Swap \\⇄Bspc",
|
||||
"aliases": [
|
||||
"BS_SWAP"
|
||||
]
|
||||
@@ -110,6 +125,7 @@
|
||||
"0x700F": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE",
|
||||
"label": "Unswap \\⇄Bspc",
|
||||
"aliases": [
|
||||
"BS_NORM"
|
||||
]
|
||||
@@ -117,6 +133,7 @@
|
||||
"0x7010": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE",
|
||||
"label": "Toggle \\⇄Bspc",
|
||||
"aliases": [
|
||||
"BS_TOGG"
|
||||
]
|
||||
@@ -124,6 +141,7 @@
|
||||
"0x7011": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_NKRO_ON",
|
||||
"label": "NKRO On",
|
||||
"aliases": [
|
||||
"NK_ON"
|
||||
]
|
||||
@@ -131,6 +149,7 @@
|
||||
"0x7012": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_NKRO_OFF",
|
||||
"label": "NKRO Off",
|
||||
"aliases": [
|
||||
"NK_OFF"
|
||||
]
|
||||
@@ -138,6 +157,7 @@
|
||||
"0x7013": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_NKRO",
|
||||
"label": "Toggle NKRO",
|
||||
"aliases": [
|
||||
"NK_TOGG"
|
||||
]
|
||||
@@ -145,6 +165,7 @@
|
||||
"0x7014": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_ALT_GUI",
|
||||
"label": "Swap Alt⇄GUI",
|
||||
"aliases": [
|
||||
"AG_SWAP"
|
||||
]
|
||||
@@ -152,6 +173,7 @@
|
||||
"0x7015": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_ALT_GUI",
|
||||
"label": "Unswap Alt⇄GUI",
|
||||
"aliases": [
|
||||
"AG_NORM"
|
||||
]
|
||||
@@ -159,6 +181,7 @@
|
||||
"0x7016": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_ALT_GUI",
|
||||
"label": "Toggle Alt⇄GUI",
|
||||
"aliases": [
|
||||
"AG_TOGG"
|
||||
]
|
||||
@@ -166,6 +189,7 @@
|
||||
"0x7017": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_LCTL_LGUI",
|
||||
"label": "Swap LCtl⇄LGUI",
|
||||
"aliases": [
|
||||
"CG_LSWP"
|
||||
]
|
||||
@@ -173,6 +197,7 @@
|
||||
"0x7018": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_LCTL_LGUI",
|
||||
"label": "Unswap LCtl⇄LGUI",
|
||||
"aliases": [
|
||||
"CG_LNRM"
|
||||
]
|
||||
@@ -180,6 +205,7 @@
|
||||
"0x7019": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_RCTL_RGUI",
|
||||
"label": "Swap RCtl⇄RGUI",
|
||||
"aliases": [
|
||||
"CG_RSWP"
|
||||
]
|
||||
@@ -187,6 +213,7 @@
|
||||
"0x701A": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_RCTL_RGUI",
|
||||
"label": "Unswap RCtl⇄RGUI",
|
||||
"aliases": [
|
||||
"CG_RNRM"
|
||||
]
|
||||
@@ -194,6 +221,7 @@
|
||||
"0x701B": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_CTL_GUI",
|
||||
"label": "Swap Ctl⇄GUI",
|
||||
"aliases": [
|
||||
"CG_SWAP"
|
||||
]
|
||||
@@ -201,6 +229,7 @@
|
||||
"0x701C": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_CTL_GUI",
|
||||
"label": "Unswap Ctl⇄GUI",
|
||||
"aliases": [
|
||||
"CG_NORM"
|
||||
]
|
||||
@@ -208,6 +237,7 @@
|
||||
"0x701D": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_CTL_GUI",
|
||||
"label": "Toggle Ctl⇄GUI",
|
||||
"aliases": [
|
||||
"CG_TOGG"
|
||||
]
|
||||
@@ -215,6 +245,7 @@
|
||||
"0x701E": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_EE_HANDS_LEFT",
|
||||
"label": "EE Hands Left",
|
||||
"aliases": [
|
||||
"EH_LEFT"
|
||||
]
|
||||
@@ -222,6 +253,7 @@
|
||||
"0x701F": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_EE_HANDS_RIGHT",
|
||||
"label": "EE Hands Right",
|
||||
"aliases": [
|
||||
"EH_RGHT"
|
||||
]
|
||||
@@ -229,6 +261,7 @@
|
||||
"0x7020": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK",
|
||||
"label": "Swap Esc⇄Caps",
|
||||
"aliases": [
|
||||
"EC_SWAP"
|
||||
]
|
||||
@@ -236,6 +269,7 @@
|
||||
"0x7021": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK",
|
||||
"label": "Unswap Esc⇄Caps",
|
||||
"aliases": [
|
||||
"EC_NORM"
|
||||
]
|
||||
@@ -243,6 +277,7 @@
|
||||
"0x7022": {
|
||||
"group": "magic",
|
||||
"key": "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK",
|
||||
"label": "Toggle Esc⇄Caps",
|
||||
"aliases": [
|
||||
"EC_TOGG"
|
||||
]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,7 @@
|
||||
"0x7C77": {
|
||||
"group": "quantum",
|
||||
"key": "QK_TRI_LAYER_LOWER",
|
||||
"label": "Lower",
|
||||
"aliases": [
|
||||
"TL_LOWR"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7C78": {
|
||||
"group": "quantum",
|
||||
"key": "QK_TRI_LAYER_UPPER",
|
||||
"label": "Upper",
|
||||
"aliases": [
|
||||
"TL_UPPR"
|
||||
]
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"0x7200": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_ON",
|
||||
"label": "Sequencer On",
|
||||
"aliases": [
|
||||
"SQ_ON"
|
||||
]
|
||||
@@ -12,6 +13,7 @@
|
||||
"0x7201": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_OFF",
|
||||
"label": "Sequencer Off",
|
||||
"aliases": [
|
||||
"SQ_OFF"
|
||||
]
|
||||
@@ -19,6 +21,7 @@
|
||||
"0x7202": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_TOGGLE",
|
||||
"label": "Toggle Sequencer",
|
||||
"aliases": [
|
||||
"SQ_TOGG"
|
||||
]
|
||||
@@ -26,6 +29,7 @@
|
||||
"0x7203": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_TEMPO_DOWN",
|
||||
"label": "Tempo Down",
|
||||
"aliases": [
|
||||
"SQ_TMPD"
|
||||
]
|
||||
@@ -33,6 +37,7 @@
|
||||
"0x7204": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_TEMPO_UP",
|
||||
"label": "Tempo Up",
|
||||
"aliases": [
|
||||
"SQ_TMPU"
|
||||
]
|
||||
@@ -40,6 +45,7 @@
|
||||
"0x7205": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_RESOLUTION_DOWN",
|
||||
"label": "Resolution Down",
|
||||
"aliases": [
|
||||
"SQ_RESD"
|
||||
]
|
||||
@@ -47,6 +53,7 @@
|
||||
"0x7206": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_RESOLUTION_UP",
|
||||
"label": "Resolution Up",
|
||||
"aliases": [
|
||||
"SQ_RESU"
|
||||
]
|
||||
@@ -54,6 +61,7 @@
|
||||
"0x7207": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_STEPS_ALL",
|
||||
"label": "All Steps",
|
||||
"aliases": [
|
||||
"SQ_SALL"
|
||||
]
|
||||
@@ -61,6 +69,7 @@
|
||||
"0x7208": {
|
||||
"group": "sequencer",
|
||||
"key": "QK_SEQUENCER_STEPS_CLEAR",
|
||||
"label": "Clear Steps",
|
||||
"aliases": [
|
||||
"SQ_SCLR"
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x56F0": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_TOGGLE",
|
||||
"label": "Toggle Swap Hands",
|
||||
"aliases": [
|
||||
"SH_TOGG"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x56F1": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_TAP_TOGGLE",
|
||||
"label": "Swap Hands Tap Toggle",
|
||||
"aliases": [
|
||||
"SH_TT"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x56F2": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_MOMENTARY_ON",
|
||||
"label": "Swap Hands Momentary On",
|
||||
"aliases": [
|
||||
"SH_MON"
|
||||
]
|
||||
@@ -24,6 +27,7 @@
|
||||
"0x56F3": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_MOMENTARY_OFF",
|
||||
"label": "Swap Hands Momentary Off",
|
||||
"aliases": [
|
||||
"SH_MOFF"
|
||||
]
|
||||
@@ -31,6 +35,7 @@
|
||||
"0x56F4": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_OFF",
|
||||
"label": "Unswap Hands",
|
||||
"aliases": [
|
||||
"SH_OFF"
|
||||
]
|
||||
@@ -38,6 +43,7 @@
|
||||
"0x56F5": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_ON",
|
||||
"label": "Swap Hands",
|
||||
"aliases": [
|
||||
"SH_ON"
|
||||
]
|
||||
@@ -45,6 +51,7 @@
|
||||
"0x56F6": {
|
||||
"group": "swap_hands",
|
||||
"key": "QK_SWAP_HANDS_ONE_SHOT",
|
||||
"label": "Swap Hands One Shot",
|
||||
"aliases": [
|
||||
"SH_OS"
|
||||
]
|
||||
|
||||
@@ -2,131 +2,163 @@
|
||||
"keycodes": {
|
||||
"0x7E40": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_0"
|
||||
"key": "QK_USER_0",
|
||||
"label": "User 0"
|
||||
},
|
||||
"0x7E41": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_1"
|
||||
"key": "QK_USER_1",
|
||||
"label": "User 1"
|
||||
},
|
||||
"0x7E42": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_2"
|
||||
"key": "QK_USER_2",
|
||||
"label": "User 2"
|
||||
},
|
||||
"0x7E43": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_3"
|
||||
"key": "QK_USER_3",
|
||||
"label": "User 3"
|
||||
},
|
||||
"0x7E44": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_4"
|
||||
"key": "QK_USER_4",
|
||||
"label": "User 4"
|
||||
},
|
||||
"0x7E45": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_5"
|
||||
"key": "QK_USER_5",
|
||||
"label": "User 5"
|
||||
},
|
||||
"0x7E46": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_6"
|
||||
"key": "QK_USER_6",
|
||||
"label": "User 6"
|
||||
},
|
||||
"0x7E47": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_7"
|
||||
"key": "QK_USER_7",
|
||||
"label": "User 7"
|
||||
},
|
||||
"0x7E48": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_8"
|
||||
"key": "QK_USER_8",
|
||||
"label": "User 8"
|
||||
},
|
||||
"0x7E49": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_9"
|
||||
"key": "QK_USER_9",
|
||||
"label": "User 9"
|
||||
},
|
||||
"0x7E4A": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_10"
|
||||
"key": "QK_USER_10",
|
||||
"label": "User 10"
|
||||
},
|
||||
"0x7E4B": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_11"
|
||||
"key": "QK_USER_11",
|
||||
"label": "User 11"
|
||||
},
|
||||
"0x7E4C": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_12"
|
||||
"key": "QK_USER_12",
|
||||
"label": "User 12"
|
||||
},
|
||||
"0x7E4D": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_13"
|
||||
"key": "QK_USER_13",
|
||||
"label": "User 13"
|
||||
},
|
||||
"0x7E4E": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_14"
|
||||
"key": "QK_USER_14",
|
||||
"label": "User 14"
|
||||
},
|
||||
"0x7E4F": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_15"
|
||||
"key": "QK_USER_15",
|
||||
"label": "User 15"
|
||||
},
|
||||
"0x7E50": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_16"
|
||||
"key": "QK_USER_16",
|
||||
"label": "User 16"
|
||||
},
|
||||
"0x7E51": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_17"
|
||||
"key": "QK_USER_17",
|
||||
"label": "User 17"
|
||||
},
|
||||
"0x7E52": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_18"
|
||||
"key": "QK_USER_18",
|
||||
"label": "User 18"
|
||||
},
|
||||
"0x7E53": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_19"
|
||||
"key": "QK_USER_19",
|
||||
"label": "User 19"
|
||||
},
|
||||
"0x7E54": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_20"
|
||||
"key": "QK_USER_20",
|
||||
"label": "User 20"
|
||||
},
|
||||
"0x7E55": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_21"
|
||||
"key": "QK_USER_21",
|
||||
"label": "User 21"
|
||||
},
|
||||
"0x7E56": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_22"
|
||||
"key": "QK_USER_22",
|
||||
"label": "User 22"
|
||||
},
|
||||
"0x7E57": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_23"
|
||||
"key": "QK_USER_23",
|
||||
"label": "User 23"
|
||||
},
|
||||
"0x7E58": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_24"
|
||||
"key": "QK_USER_24",
|
||||
"label": "User 24"
|
||||
},
|
||||
"0x7E59": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_25"
|
||||
"key": "QK_USER_25",
|
||||
"label": "User 25"
|
||||
},
|
||||
"0x7E5A": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_26"
|
||||
"key": "QK_USER_26",
|
||||
"label": "User 26"
|
||||
},
|
||||
"0x7E5B": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_27"
|
||||
"key": "QK_USER_27",
|
||||
"label": "User 27"
|
||||
},
|
||||
"0x7E5C": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_28"
|
||||
"key": "QK_USER_28",
|
||||
"label": "User 28"
|
||||
},
|
||||
"0x7E5D": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_29"
|
||||
"key": "QK_USER_29",
|
||||
"label": "User 29"
|
||||
},
|
||||
"0x7E5E": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_30"
|
||||
"key": "QK_USER_30",
|
||||
"label": "User 30"
|
||||
},
|
||||
"0x7E5F": {
|
||||
"group": "user",
|
||||
"key": "QK_USER_31"
|
||||
"key": "QK_USER_31",
|
||||
"label": "User 31"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7C79": {
|
||||
"group": "quantum",
|
||||
"key": "QK_REPEAT_KEY",
|
||||
"label": "Repeat",
|
||||
"aliases": [
|
||||
"QK_REP"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7C7A": {
|
||||
"group": "quantum",
|
||||
"key": "QK_ALT_REPEAT_KEY",
|
||||
"label": "Repeat Alternate",
|
||||
"aliases": [
|
||||
"QK_AREP"
|
||||
]
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"0x7810": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_ON",
|
||||
"label": "LED Matrix On",
|
||||
"aliases": [
|
||||
"LM_ON"
|
||||
]
|
||||
@@ -10,6 +11,7 @@
|
||||
"0x7811": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_OFF",
|
||||
"label": "LED Matrix Off",
|
||||
"aliases": [
|
||||
"LM_OFF"
|
||||
]
|
||||
@@ -17,6 +19,7 @@
|
||||
"0x7812": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_TOGGLE",
|
||||
"label": "Toggle LED Matrix",
|
||||
"aliases": [
|
||||
"LM_TOGG"
|
||||
]
|
||||
@@ -24,6 +27,7 @@
|
||||
"0x7813": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_MODE_NEXT",
|
||||
"label": "LED Matrix Next",
|
||||
"aliases": [
|
||||
"LM_NEXT"
|
||||
]
|
||||
@@ -31,6 +35,7 @@
|
||||
"0x7814": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_MODE_PREVIOUS",
|
||||
"label": "LED Matrix Previous",
|
||||
"aliases": [
|
||||
"LM_PREV"
|
||||
]
|
||||
@@ -38,6 +43,7 @@
|
||||
"0x7815": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_BRIGHTNESS_UP",
|
||||
"label": "LED Matrix Brightness Up",
|
||||
"aliases": [
|
||||
"LM_BRIU"
|
||||
]
|
||||
@@ -45,6 +51,7 @@
|
||||
"0x7816": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_BRIGHTNESS_DOWN",
|
||||
"label": "LED Matrix Brightness Down",
|
||||
"aliases": [
|
||||
"LM_BRID"
|
||||
]
|
||||
@@ -52,6 +59,7 @@
|
||||
"0x7817": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_SPEED_UP",
|
||||
"label": "LED Matrix Speed Up",
|
||||
"aliases": [
|
||||
"LM_SPDU"
|
||||
]
|
||||
@@ -59,6 +67,7 @@
|
||||
"0x7818": {
|
||||
"group": "led_matrix",
|
||||
"key": "QK_LED_MATRIX_SPEED_DOWN",
|
||||
"label": "LED Matrix Speed Down",
|
||||
"aliases": [
|
||||
"LM_SPDD"
|
||||
]
|
||||
@@ -67,6 +76,7 @@
|
||||
"0x7820": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_TOGGLE",
|
||||
"label": "Toggle RGB Underglow",
|
||||
"aliases": [
|
||||
"UG_TOGG"
|
||||
]
|
||||
@@ -74,6 +84,7 @@
|
||||
"0x7821": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_MODE_NEXT",
|
||||
"label": "RGB Underglow Next",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"UG_NEXT"
|
||||
@@ -82,6 +93,7 @@
|
||||
"0x7822": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_MODE_PREVIOUS",
|
||||
"label": "RGB Underglow Previous",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"UG_PREV"
|
||||
@@ -90,6 +102,7 @@
|
||||
"0x7823": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_HUE_UP",
|
||||
"label": "RGB Underglow Hue Up",
|
||||
"aliases": [
|
||||
"UG_HUEU"
|
||||
]
|
||||
@@ -97,6 +110,7 @@
|
||||
"0x7824": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_HUE_DOWN",
|
||||
"label": "RGB Underglow Hue Down",
|
||||
"aliases": [
|
||||
"UG_HUED"
|
||||
]
|
||||
@@ -104,6 +118,7 @@
|
||||
"0x7825": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SATURATION_UP",
|
||||
"label": "RGB Underglow Saturation Up",
|
||||
"aliases": [
|
||||
"UG_SATU"
|
||||
]
|
||||
@@ -111,6 +126,7 @@
|
||||
"0x7826": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SATURATION_DOWN",
|
||||
"label": "RGB Underglow Saturation Down",
|
||||
"aliases": [
|
||||
"UG_SATD"
|
||||
]
|
||||
@@ -118,6 +134,7 @@
|
||||
"0x7827": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_VALUE_UP",
|
||||
"label": "RGB Underglow Value Up",
|
||||
"aliases": [
|
||||
"UG_VALU"
|
||||
]
|
||||
@@ -125,6 +142,7 @@
|
||||
"0x7828": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_VALUE_DOWN",
|
||||
"label": "RGB Underglow Value Down",
|
||||
"aliases": [
|
||||
"UG_VALD"
|
||||
]
|
||||
@@ -132,6 +150,7 @@
|
||||
"0x7829": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SPEED_UP",
|
||||
"label": "RGB Underglow Speed Up",
|
||||
"aliases": [
|
||||
"UG_SPDU"
|
||||
]
|
||||
@@ -139,6 +158,7 @@
|
||||
"0x782A": {
|
||||
"group": "underglow",
|
||||
"key": "QK_UNDERGLOW_SPEED_DOWN",
|
||||
"label": "RGB Underglow Speed Down",
|
||||
"aliases": [
|
||||
"UG_SPDD"
|
||||
]
|
||||
@@ -147,6 +167,7 @@
|
||||
"0x7840": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_ON",
|
||||
"label": "RGB Matrix On",
|
||||
"aliases": [
|
||||
"RM_ON"
|
||||
]
|
||||
@@ -154,6 +175,7 @@
|
||||
"0x7841": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_OFF",
|
||||
"label": "RGB Matrix Off"
|
||||
"aliases": [
|
||||
"RM_OFF"
|
||||
]
|
||||
@@ -161,6 +183,7 @@
|
||||
"0x7842": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_TOGGLE",
|
||||
"label": "Toggle RGB Matrix",
|
||||
"aliases": [
|
||||
"RM_TOGG"
|
||||
]
|
||||
@@ -168,6 +191,7 @@
|
||||
"0x7843": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_MODE_NEXT",
|
||||
"label": "RGB Matrix Next",
|
||||
"aliases": [
|
||||
"RM_NEXT"
|
||||
]
|
||||
@@ -175,6 +199,7 @@
|
||||
"0x7844": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_MODE_PREVIOUS",
|
||||
"label": "RGB Matrix Previous",
|
||||
"aliases": [
|
||||
"RM_PREV"
|
||||
]
|
||||
@@ -182,6 +207,7 @@
|
||||
"0x7845": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_HUE_UP",
|
||||
"label": "RGB Matrix Hue Up",
|
||||
"aliases": [
|
||||
"RM_HUEU"
|
||||
]
|
||||
@@ -189,6 +215,7 @@
|
||||
"0x7846": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_HUE_DOWN",
|
||||
"label": "RGB Matrix Hue Down",
|
||||
"aliases": [
|
||||
"RM_HUED"
|
||||
]
|
||||
@@ -196,6 +223,7 @@
|
||||
"0x7847": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SATURATION_UP",
|
||||
"label": "RGB Matrix Saturation Up",
|
||||
"aliases": [
|
||||
"RM_SATU"
|
||||
]
|
||||
@@ -203,6 +231,7 @@
|
||||
"0x7848": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SATURATION_DOWN",
|
||||
"label": "RGB Matrix Saturation Down",
|
||||
"aliases": [
|
||||
"RM_SATD"
|
||||
]
|
||||
@@ -210,6 +239,7 @@
|
||||
"0x7849": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_VALUE_UP",
|
||||
"label": "RGB Matrix Value Up",
|
||||
"aliases": [
|
||||
"RM_VALU"
|
||||
]
|
||||
@@ -217,6 +247,7 @@
|
||||
"0x784A": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_VALUE_DOWN",
|
||||
"label": "RGB Matrix Value Down",
|
||||
"aliases": [
|
||||
"RM_VALD"
|
||||
]
|
||||
@@ -224,6 +255,7 @@
|
||||
"0x784B": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SPEED_UP",
|
||||
"label": "RGB Matrix Speed Up",
|
||||
"aliases": [
|
||||
"RM_SPDU"
|
||||
]
|
||||
@@ -231,6 +263,7 @@
|
||||
"0x784C": {
|
||||
"group": "rgb_matrix",
|
||||
"key": "QK_RGB_MATRIX_SPEED_DOWN",
|
||||
"label": "RGB Matrix Speed Down",
|
||||
"aliases": [
|
||||
"RM_SPDD"
|
||||
]
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"0x00CD": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_CURSOR_UP",
|
||||
"label": "Mouse cursor up",
|
||||
"label": "Mouse Up",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_UP"
|
||||
@@ -12,7 +12,7 @@
|
||||
"0x00CE": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_CURSOR_DOWN",
|
||||
"label": "Mouse cursor down",
|
||||
"label": "Mouse Down",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_DOWN"
|
||||
@@ -21,7 +21,7 @@
|
||||
"0x00CF": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_CURSOR_LEFT",
|
||||
"label": "Mouse cursor left",
|
||||
"label": "Mouse Left",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_LEFT"
|
||||
@@ -30,7 +30,7 @@
|
||||
"0x00D0": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_CURSOR_RIGHT",
|
||||
"label": "Mouse cursor right",
|
||||
"label": "Mouse Right",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_RGHT"
|
||||
@@ -39,7 +39,7 @@
|
||||
"0x00D1": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_1",
|
||||
"label": "Mouse button 1",
|
||||
"label": "Mouse Button 1",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN1"
|
||||
@@ -48,7 +48,7 @@
|
||||
"0x00D2": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_2",
|
||||
"label": "Mouse button 2",
|
||||
"label": "Mouse Button 2",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN2"
|
||||
@@ -57,7 +57,7 @@
|
||||
"0x00D3": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_3",
|
||||
"label": "Mouse button 3",
|
||||
"label": "Mouse Button 3",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN3"
|
||||
@@ -66,7 +66,7 @@
|
||||
"0x00D4": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_4",
|
||||
"label": "Mouse button 4",
|
||||
"label": "Mouse Button 4",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN4"
|
||||
@@ -75,7 +75,7 @@
|
||||
"0x00D5": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_5",
|
||||
"label": "Mouse button 5",
|
||||
"label": "Mouse Button 5",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN5"
|
||||
@@ -84,7 +84,7 @@
|
||||
"0x00D6": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_6",
|
||||
"label": "Mouse button 6",
|
||||
"label": "Mouse Button 6",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN6"
|
||||
@@ -93,7 +93,7 @@
|
||||
"0x00D7": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_7",
|
||||
"label": "Mouse button 7",
|
||||
"label": "Mouse Button 7",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN7"
|
||||
@@ -102,7 +102,7 @@
|
||||
"0x00D8": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_BUTTON_8",
|
||||
"label": "Mouse button 8",
|
||||
"label": "Mouse Button 8",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_BTN8"
|
||||
@@ -111,7 +111,7 @@
|
||||
"0x00D9": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_WHEEL_UP",
|
||||
"label": "Mouse wheel up",
|
||||
"label": "Mouse Wheel Up",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_WHLU"
|
||||
@@ -120,7 +120,7 @@
|
||||
"0x00DA": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_WHEEL_DOWN",
|
||||
"label": "Mouse wheel down",
|
||||
"label": "Mouse Wheel Down",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_WHLD"
|
||||
@@ -129,7 +129,7 @@
|
||||
"0x00DB": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_WHEEL_LEFT",
|
||||
"label": "Mouse wheel left",
|
||||
"label": "Mouse Wheel Left",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_WHLL"
|
||||
@@ -138,7 +138,7 @@
|
||||
"0x00DC": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_WHEEL_RIGHT",
|
||||
"label": "Mouse wheel right",
|
||||
"label": "Mouse Wheel Right",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_WHLR"
|
||||
@@ -147,7 +147,7 @@
|
||||
"0x00DD": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_ACCELERATION_0",
|
||||
"label": "Set mouse acceleration to 0",
|
||||
"label": "Acceleration 0",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_ACL0"
|
||||
@@ -156,7 +156,7 @@
|
||||
"0x00DE": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_ACCELERATION_1",
|
||||
"label": "Set mouse acceleration to 1",
|
||||
"label": "Acceleration 1",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_ACL1"
|
||||
@@ -165,7 +165,7 @@
|
||||
"0x00DF": {
|
||||
"group": "mouse",
|
||||
"key": "QK_MOUSE_ACCELERATION_2",
|
||||
"label": "Set mouse acceleration to 2",
|
||||
"label": "Acceleration 2",
|
||||
"aliases": [
|
||||
"!reset!",
|
||||
"MS_ACL2"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"0x7780": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_AUTO",
|
||||
"label": "Output Auto",
|
||||
"aliases": [
|
||||
"OU_AUTO"
|
||||
]
|
||||
@@ -15,6 +16,7 @@
|
||||
"0x7781": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_NEXT",
|
||||
"label": "Next Output",
|
||||
"aliases": [
|
||||
"OU_NEXT"
|
||||
]
|
||||
@@ -22,6 +24,7 @@
|
||||
"0x7782": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_PREV",
|
||||
"label": "Previous Output",
|
||||
"aliases": [
|
||||
"OU_PREV"
|
||||
]
|
||||
@@ -29,6 +32,7 @@
|
||||
"0x7783": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_NONE",
|
||||
"label": "None",
|
||||
"aliases": [
|
||||
"OU_NONE"
|
||||
]
|
||||
@@ -36,6 +40,7 @@
|
||||
"0x7784": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_USB",
|
||||
"label": "USB",
|
||||
"aliases": [
|
||||
"OU_USB"
|
||||
]
|
||||
@@ -43,6 +48,7 @@
|
||||
"0x7785": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_2P4GHZ",
|
||||
"label": "2.4GHz",
|
||||
"aliases": [
|
||||
"OU_2P4G"
|
||||
]
|
||||
@@ -50,6 +56,7 @@
|
||||
"0x7786": {
|
||||
"group": "connection",
|
||||
"key": "QK_OUTPUT_BLUETOOTH",
|
||||
"label": "Bluetooth",
|
||||
"aliases": [
|
||||
"OU_BT"
|
||||
]
|
||||
@@ -58,6 +65,7 @@
|
||||
"0x7790": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE_NEXT",
|
||||
"label": "Bluetooth Profile Next",
|
||||
"aliases": [
|
||||
"BT_NEXT"
|
||||
]
|
||||
@@ -65,6 +73,7 @@
|
||||
"0x7791": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE_PREV",
|
||||
"label": "Bluetooth Profile Previous",
|
||||
"aliases": [
|
||||
"BT_PREV"
|
||||
]
|
||||
@@ -72,6 +81,7 @@
|
||||
"0x7792": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_UNPAIR",
|
||||
"label": "Unpair",
|
||||
"aliases": [
|
||||
"BT_UNPR"
|
||||
]
|
||||
@@ -79,6 +89,7 @@
|
||||
"0x7793": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE1",
|
||||
"label": "Bluetooth Profile 1",
|
||||
"aliases": [
|
||||
"BT_PRF1"
|
||||
]
|
||||
@@ -86,6 +97,7 @@
|
||||
"0x7794": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE2",
|
||||
"label": "Bluetooth Profile 2",
|
||||
"aliases": [
|
||||
"BT_PRF2"
|
||||
]
|
||||
@@ -93,6 +105,7 @@
|
||||
"0x7795": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE3",
|
||||
"label": "Bluetooth Profile 3",
|
||||
"aliases": [
|
||||
"BT_PRF3"
|
||||
]
|
||||
@@ -100,6 +113,7 @@
|
||||
"0x7796": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE4",
|
||||
"label": "Bluetooth Profile 4",
|
||||
"aliases": [
|
||||
"BT_PRF4"
|
||||
]
|
||||
@@ -107,6 +121,7 @@
|
||||
"0x7797": {
|
||||
"group": "connection",
|
||||
"key": "QK_BLUETOOTH_PROFILE5",
|
||||
"label": "Bluetooth Profile 5",
|
||||
"aliases": [
|
||||
"BT_PRF5"
|
||||
]
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"0x7C7B": {
|
||||
"group": "quantum",
|
||||
"key": "QK_LAYER_LOCK",
|
||||
"label": "Layer Lock",
|
||||
"aliases": [
|
||||
"QK_LLCK"
|
||||
]
|
||||
|
||||
3
data/constants/module_hooks/1.1.2.hjson
Normal file
3
data/constants/module_hooks/1.1.2.hjson
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
// This version exists to signify addition of split data sync support.
|
||||
}
|
||||
@@ -196,7 +196,7 @@
|
||||
|
||||
// Split Keyboard
|
||||
"SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"},
|
||||
"SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed"},
|
||||
"SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed", "value_type": "int"},
|
||||
"SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
|
||||
"SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
|
||||
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"},
|
||||
|
||||
75
docs/ChangeLog/20260222.md
Normal file
75
docs/ChangeLog/20260222.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# QMK Breaking Changes - 2026 Feb 22 Changelog
|
||||
|
||||
## Deprecation Notices
|
||||
|
||||
### Removal of deprecated GPIO defines ([#26028](https://github.com/qmk/qmk_firmware/pull/26028))
|
||||
|
||||
QMK has long used Arduino-style GPIO naming conventions. This has been confusing for users, as over time they've had new variations added, as well as users mistakenly thinking that QMK supports the rest of the Arduino ecosystem.
|
||||
|
||||
The decision was made to rename the GPIO manipulation functions with ones matching QMK Firmware's code styling.
|
||||
|
||||
Previous backwards compatibility has now been removed. see the [GPIO Control](../drivers/gpio#macros) documentation for more information.
|
||||
|
||||
### Removal of deprecated isLeftHand ([25897](https://github.com/qmk/qmk_firmware/pull/25897))
|
||||
|
||||
Users should migrate to `is_keyboard_left()` found in `split_util.h` instead. For example:
|
||||
|
||||
```diff
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
- return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0;
|
||||
+ return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0;
|
||||
}
|
||||
```
|
||||
|
||||
The deprecated variable `isLeftHand` will be removed in a future breaking changes cycle.
|
||||
|
||||
## Full changelist
|
||||
|
||||
Core:
|
||||
* Refactor Makefile logic for locating keymaps ([#25808](https://github.com/qmk/qmk_firmware/pull/25808))
|
||||
* Move shutdown delay to audio feature ([#25859](https://github.com/qmk/qmk_firmware/pull/25859))
|
||||
* Refactor core use of deprecated `isLeftHand` ([#25888](https://github.com/qmk/qmk_firmware/pull/25888))
|
||||
* Allow custom data sync for community modules ([#25955](https://github.com/qmk/qmk_firmware/pull/25955))
|
||||
* Remove an unreachable break statement ([#26006](https://github.com/qmk/qmk_firmware/pull/26006))
|
||||
* Remove duplicate host.h ([#26007](https://github.com/qmk/qmk_firmware/pull/26007))
|
||||
* Remove redundant EEPROM update ([#26008](https://github.com/qmk/qmk_firmware/pull/26008))
|
||||
* Remove redundant unsigned comparison in apa102_set_brightness ([#26010](https://github.com/qmk/qmk_firmware/pull/26010))
|
||||
* Remove unused headers ([#26011](https://github.com/qmk/qmk_firmware/pull/26011))
|
||||
* Return INVALID_DEFERRED_TOKEN on allocation failure ([#26012](https://github.com/qmk/qmk_firmware/pull/26012))
|
||||
* Remove deprecated GPIO defines ([#26028](https://github.com/qmk/qmk_firmware/pull/26028))
|
||||
|
||||
CLI:
|
||||
* Enforce EOL when formatting files ([#24989](https://github.com/qmk/qmk_firmware/pull/24989))
|
||||
* Allow keymap.json to disable config flags ([#25502](https://github.com/qmk/qmk_firmware/pull/25502))
|
||||
* Remove unused `qmk.keymap.write_file`/`qmk.keymap.write_json` ([#25854](https://github.com/qmk/qmk_firmware/pull/25854))
|
||||
* Include userspace version (QMK_USERSPACE_VERSION) in version.h ([#25882](https://github.com/qmk/qmk_firmware/pull/25882))
|
||||
* Lint out-of-bounds bootmagic config ([#25899](https://github.com/qmk/qmk_firmware/pull/25899))
|
||||
* Report permission issues in `qmk doctor` ([#25931](https://github.com/qmk/qmk_firmware/pull/25931))
|
||||
* Minor alignment of CLI formatting commands ([#25946](https://github.com/qmk/qmk_firmware/pull/25946))
|
||||
* Update lint to validate keymap names ([#25969](https://github.com/qmk/qmk_firmware/pull/25969))
|
||||
* Add 'none of the above' to `new-keyboard` dev board prompt ([#25998](https://github.com/qmk/qmk_firmware/pull/25998))
|
||||
* Remove `config_h_features` from generated `info.json` ([#26024](https://github.com/qmk/qmk_firmware/pull/26024))
|
||||
* Promote duplication of defaults check to error ([#26025](https://github.com/qmk/qmk_firmware/pull/26025))
|
||||
|
||||
Keyboards:
|
||||
* Add Soldered Macro Pad ([#25834](https://github.com/qmk/qmk_firmware/pull/25834))
|
||||
* Remove redundant URLs from `.json` ([#25856](https://github.com/qmk/qmk_firmware/pull/25856))
|
||||
* Guard encoder behaviour on `projectcain/vault*` ([#25864](https://github.com/qmk/qmk_firmware/pull/25864))
|
||||
* Refactor keyboard/keymap use of deprecated `isLeftHand` ([#25891](https://github.com/qmk/qmk_firmware/pull/25891))
|
||||
* Remove some unnecessary matrix externs ([#25975](https://github.com/qmk/qmk_firmware/pull/25975))
|
||||
* Migrate ROW_SHIFTER to core MATRIX_ROW_SHIFTER ([#25977](https://github.com/qmk/qmk_firmware/pull/25977))
|
||||
|
||||
Keyboard fixes:
|
||||
* Fix out-of-bounds bootmagic config ([#25898](https://github.com/qmk/qmk_firmware/pull/25898))
|
||||
* Fix incorrect `matrix_scan_custom` implementations ([#25999](https://github.com/qmk/qmk_firmware/pull/25999))
|
||||
|
||||
Others:
|
||||
* Add missing labels to DD keycode definitions ([#25503](https://github.com/qmk/qmk_firmware/pull/25503))
|
||||
* Copilot instructions for pull requests ([#25857](https://github.com/qmk/qmk_firmware/pull/25857))
|
||||
|
||||
Bugs:
|
||||
* Fix flash wear leveling sector calculation ([#24776](https://github.com/qmk/qmk_firmware/pull/24776))
|
||||
* [Bugfix] WS2812 indexing in split boards ([#25407](https://github.com/qmk/qmk_firmware/pull/25407))
|
||||
* Correctly resolve keyboard alias during 'qmk new-keymap' ([#25570](https://github.com/qmk/qmk_firmware/pull/25570))
|
||||
* Fixes for is31fl3729 LED matrix driver off-by-one errors ([#25902](https://github.com/qmk/qmk_firmware/pull/25902))
|
||||
* Match Key override index type to bounds type to prevent overflow ([#25939](https://github.com/qmk/qmk_firmware/pull/25939))
|
||||
@@ -214,7 +214,7 @@
|
||||
{ "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" },
|
||||
{
|
||||
"text": "Most Recent ChangeLog",
|
||||
"link": "/ChangeLog/20251130"
|
||||
"link": "/ChangeLog/20260222"
|
||||
},
|
||||
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
|
||||
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }
|
||||
|
||||
@@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
|
||||
|
||||
## What has been included in past Breaking Changes?
|
||||
|
||||
* [2026 Feb 22](ChangeLog/20260222)
|
||||
* [2025 Nov 30](ChangeLog/20251130)
|
||||
* [2025 Aug 31](ChangeLog/20250831)
|
||||
* [2025 May 25](ChangeLog/20250525)
|
||||
* [Older Breaking Changes](breaking_changes_history)
|
||||
|
||||
## When is the next Breaking Change?
|
||||
|
||||
The next Breaking Change is scheduled for February 22, 2026.
|
||||
The next Breaking Change is scheduled for May 31, 2026.
|
||||
|
||||
### Important Dates
|
||||
|
||||
* 2025 Nov 30 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2026 Jan 25 - `develop` closed to new PRs.
|
||||
* 2026 Jan 25 - Call for testers.
|
||||
* 2026 Feb 8 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2026 Feb 15 - `develop` is locked, only critical bugfix PRs merged.
|
||||
* 2026 Feb 20 - `master` is locked, no PRs merged.
|
||||
* 2026 Feb 22 - Merge `develop` to `master`.
|
||||
* 2026 Feb 22 - `master` is unlocked. PRs can be merged again.
|
||||
* 2025 Feb 22 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||
* 2026 May 3 - `develop` closed to new PRs.
|
||||
* 2026 May 3 - Call for testers.
|
||||
* 2026 May 17 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||
* 2026 May 24 - `develop` is locked, only critical bugfix PRs merged.
|
||||
* 2026 May 29 - `master` is locked, no PRs merged.
|
||||
* 2026 May 31 - Merge `develop` to `master`.
|
||||
* 2026 May 31 - `master` is unlocked. PRs can be merged again.
|
||||
|
||||
## What changes will be included?
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
This page links to all previous changelogs from the QMK Breaking Changes process.
|
||||
|
||||
* [2026 Feb 22](ChangeLog/20260222) - version 0.32.0
|
||||
* [2025 Nov 30](ChangeLog/20251130) - version 0.31.0
|
||||
* [2025 Aug 31](ChangeLog/20250831) - version 0.30.0
|
||||
* [2025 May 25](ChangeLog/20250525) - version 0.29.0
|
||||
|
||||
41
docs/cli.md
41
docs/cli.md
@@ -4,47 +4,18 @@
|
||||
|
||||
The QMK CLI (command line interface) makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
|
||||
|
||||
### Requirements {#requirements}
|
||||
### Installation {#installation}
|
||||
|
||||
QMK requires Python 3.9 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
|
||||
|
||||
### Install Using Homebrew (macOS, some Linux) {#install-using-homebrew}
|
||||
|
||||
If you have installed [Homebrew](https://brew.sh) you can tap and install QMK:
|
||||
The recommended way to install the QMK CLI and all necessary dependencies (toolchains, flashing utilities, udev rules on Linux) is to use the bootstrapper script:
|
||||
|
||||
```
|
||||
brew install qmk/qmk/qmk
|
||||
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
|
||||
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
|
||||
curl -fsSL https://install.qmk.fm | sh
|
||||
```
|
||||
|
||||
### Install Using uv {#install-using-uv}
|
||||
|
||||
If you have installed [uv](https://docs.astral.sh/uv/), the QMK CLI can be installed and managed as a uv tool:
|
||||
For more options, run:
|
||||
|
||||
```
|
||||
uv tool install qmk
|
||||
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
|
||||
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
|
||||
curl -fsSL https://install.qmk.fm | sh -s -- --help
|
||||
```
|
||||
|
||||
This installation can be updated via `uv tool upgrade qmk`. See [Upgrading tools](https://docs.astral.sh/uv/guides/tools/#upgrading-tools) for more information.
|
||||
|
||||
### Install Using pip {#install-using-easy_install-or-pip}
|
||||
|
||||
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.9 (or later) installed and have installed pip. Then install QMK with this command:
|
||||
|
||||
```
|
||||
python3 -m pip install qmk
|
||||
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
|
||||
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
|
||||
```
|
||||
|
||||
### Packaging For Other Operating Systems {#packaging-for-other-operating-systems}
|
||||
|
||||
We are looking for people to create and maintain a `qmk` package for more operating systems. If you would like to create a package for your OS please follow these guidelines:
|
||||
|
||||
* Follow best practices for your OS when they conflict with these guidelines
|
||||
* Document why in a comment when you do deviate
|
||||
* Install using a virtualenv
|
||||
* Instruct the user to set the environment variable `QMK_HOME` to have the firmware source checked out somewhere other than `~/qmk_firmware`.
|
||||
For detailed setup instructions, see [Setting Up Your QMK Environment](newbs_getting_started#set-up-your-environment).
|
||||
|
||||
@@ -12,11 +12,11 @@ If you intend to maintain keyboards and/or contribute to QMK, you can enable the
|
||||
|
||||
`qmk config user.developer=True`
|
||||
|
||||
This will allow you to see all available subcommands.
|
||||
**Note:** You will have to install additional requirements:
|
||||
```
|
||||
python3 -m pip install -r requirements-dev.txt
|
||||
```
|
||||
This will allow you to see all available subcommands.
|
||||
|
||||
::: tip
|
||||
If you installed QMK using the bootstrapper (`curl -fsSL https://install.qmk.fm | sh`), the development requirements are already installed.
|
||||
:::
|
||||
|
||||
# Subcommands
|
||||
|
||||
|
||||
@@ -14,6 +14,10 @@ Example:
|
||||
This page covers my super cool feature. You can use this feature to make coffee, squeeze fresh oj, and have an egg mcmuffin and hashbrowns delivered from your local macca's by drone.
|
||||
```
|
||||
|
||||
# Paragraphs
|
||||
|
||||
Do not use hard line breaks within the raw Markdown for each paragraph. These are optional in Markdown, and have no effect on the rendered output. This means each raw paragraph will be a single long line in your editor (best viewed with line wrapping enabled).
|
||||
|
||||
# Headings
|
||||
|
||||
Your page should generally have multiple "H1" headings. Only H1 and H2 headings will included in the Table of Contents, so plan them out appropriately. Excess width should be avoided in H1 and H2 headings to prevent the Table of Contents from getting too wide.
|
||||
|
||||
@@ -19,13 +19,10 @@ Note that running `make` with `sudo` is generally ***not*** a good idea, and you
|
||||
|
||||
### Linux `udev` Rules {#linux-udev-rules}
|
||||
|
||||
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or place [this file](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules) into `/etc/udev/rules.d/`.
|
||||
|
||||
Once added, run the following:
|
||||
On Linux, you'll need proper privileges to communicate with the bootloader device. You can either use `sudo` when flashing firmware (not recommended), or install the udev rules from the [qmk_udev](https://github.com/qmk/qmk_udev) repository by running:
|
||||
|
||||
```
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
util/install_udev.sh
|
||||
```
|
||||
|
||||
**Note:** With older versions of ModemManager (< 1.12), filtering only works when not in strict mode. The following commands can update that setting:
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
# Persistent Configuration (EEPROM)
|
||||
|
||||
This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM.
|
||||
|
||||
The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function.
|
||||
This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss.
|
||||
|
||||
Keep in mind that EEPROM has a limited number of writes. While this is very high, it's not the only thing writing to the EEPROM, and if you write too often, you can potentially drastically shorten the life of your MCU.
|
||||
|
||||
* If you don't understand the example, then you may want to avoid using this feature, as it is rather complicated.
|
||||
::: tip
|
||||
If you don't understand the examples, then you may want to avoid using this feature, as it is rather complicated.
|
||||
:::
|
||||
|
||||
## Example Implementation
|
||||
## Basic
|
||||
|
||||
The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM.
|
||||
|
||||
The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function.
|
||||
|
||||
### Example Implementation
|
||||
|
||||
This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. This is a complex function, and has a lot going on. In fact, it uses a lot of the above functions to work!
|
||||
|
||||
@@ -126,9 +132,111 @@ void eeconfig_init_user(void) { // EEPROM is getting reset!
|
||||
|
||||
And you're done. The RGB layer indication will only work if you want it to. And it will be saved, even after unplugging the board. And if you use any of the RGB codes, it will disable the layer indication, so that it stays on the mode and color that you set it to.
|
||||
|
||||
## 'EECONFIG' Function Documentation
|
||||
### Basic API
|
||||
|
||||
* Keyboard/Revision: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)` and `void eeconfig_update_kb(uint32_t val)`
|
||||
* Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)`
|
||||
|
||||
The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM.
|
||||
|
||||
## Datablock {#datablock}
|
||||
|
||||
An extended form exists that allows larger blocks of data to be allocated.
|
||||
|
||||
::: info
|
||||
When using datablock, the [basic API](#eeconfig-function-documentation) is unavailable.
|
||||
:::
|
||||
|
||||
:::::tabs
|
||||
|
||||
==== keyboard
|
||||
|
||||
In `config.h`, define the size required, and optionally a version number:
|
||||
|
||||
| Define | Default | Description |
|
||||
|------------------------------|---------------------------|------------------------------------------------------------------|
|
||||
| `EECONFIG_KB_DATA_SIZE` | `0` | Size in bytes for the persistent block of data |
|
||||
| `EECONFIG_KB_DATA_VERSION` | `EECONFIG_KB_DATA_SIZE` | Version number that can be incremented to invalidate stored data |
|
||||
|
||||
Which exposes the following API:
|
||||
|
||||
```c
|
||||
bool eeconfig_is_kb_datablock_valid(void);
|
||||
uint32_t eeconfig_read_kb_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull));
|
||||
uint32_t eeconfig_update_kb_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull));
|
||||
void eeconfig_init_kb_datablock(void);
|
||||
# define eeconfig_read_kb_datablock_field(__object, __field) eeconfig_read_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field))
|
||||
# define eeconfig_update_kb_datablock_field(__object, __field) eeconfig_update_kb_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field))
|
||||
```
|
||||
|
||||
==== keymap
|
||||
|
||||
In `config.h`, define the size required, and optionally a version number:
|
||||
|
||||
| Define | Default | Description |
|
||||
|------------------------------|---------------------------|------------------------------------------------------------------|
|
||||
| `EECONFIG_USER_DATA_SIZE` | `0` | Size in bytes for the persistent block of data |
|
||||
| `EECONFIG_USER_DATA_VERSION` | `EECONFIG_USER_DATA_SIZE` | Version number that can be incremented to invalidate stored data |
|
||||
|
||||
Which exposes the following API:
|
||||
|
||||
```c
|
||||
bool eeconfig_is_user_datablock_valid(void);
|
||||
uint32_t eeconfig_read_user_datablock(void *data, uint32_t offset, uint32_t length) __attribute__((nonnull));
|
||||
uint32_t eeconfig_update_user_datablock(const void *data, uint32_t offset, uint32_t length) __attribute__((nonnull));
|
||||
void eeconfig_init_user_datablock(void);
|
||||
# define eeconfig_read_user_datablock_field(__object, __field) eeconfig_read_user_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field))
|
||||
# define eeconfig_update_user_datablock_field(__object, __field) eeconfig_update_user_datablock(&(__object.__field), offsetof(typeof(__object), __field), sizeof(__object.__field))
|
||||
```
|
||||
|
||||
:::::
|
||||
|
||||
### Example
|
||||
|
||||
This is an example of how to add settings, and read and write it. We're using the user keymap for the example here.
|
||||
|
||||
In your `config.h` add:
|
||||
|
||||
```c
|
||||
#define EECONFIG_USER_DATA_SIZE 8
|
||||
```
|
||||
|
||||
In your keymap.c file, add:
|
||||
|
||||
```c
|
||||
#include "debug.h"
|
||||
#include "timer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
typedef struct my_config_t {
|
||||
uint64_t data;
|
||||
} my_config_t;
|
||||
|
||||
static my_config_t config;
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
if (!eeconfig_is_user_datablock_valid()) {
|
||||
eeconfig_init_user_datablock();
|
||||
}
|
||||
|
||||
eeconfig_read_user_datablock(&config, 0, sizeof(my_config_t));
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!record->event.pressed) {
|
||||
config.data += 1;
|
||||
eeconfig_update_user_datablock(&config, 0, sizeof(my_config_t));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void housekeeping_task_user(void) {
|
||||
static uint32_t last_sync = 0;
|
||||
if (timer_elapsed32(last_sync) > 1000) {
|
||||
last_sync = timer_read32();
|
||||
|
||||
dprintf("Config: %ld\n", config.data);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -95,6 +95,10 @@ The use of `features` matches the definition normally provided within `keyboard.
|
||||
|
||||
The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap.
|
||||
|
||||
### `config.h`
|
||||
|
||||
This file will be automatically added to the build as if it were present in the keyboard or keymap.
|
||||
|
||||
### `rules.mk` / `post_rules.mk`
|
||||
|
||||
These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap.
|
||||
@@ -131,6 +135,10 @@ This file defines LED matrix effects in the same form as used with `led_matrix_k
|
||||
|
||||
This file defines RGB matrix effects in the same form as used with `rgb_matrix_kb.inc` and `rgb_matrix_user.inc` (see [Custom RGB Matrix Effects](rgb_matrix#custom-rgb-matrix-effects)). Effect mode names are prepended with `RGB_MATRIX_COMMUNITY_MODULE_`.
|
||||
|
||||
### Custom split keyboard data sync
|
||||
|
||||
Defines follow the convention, `SPLIT_TRANSACTION_IDS_MODULE_<MODULE>` (see [Custom data sync](split_keyboard#custom-data-sync)).
|
||||
|
||||
### Compatible APIs
|
||||
|
||||
Community Modules may provide specializations for the following APIs:
|
||||
|
||||
@@ -47,6 +47,17 @@ const key_override_t *key_overrides[] = {
|
||||
};
|
||||
```
|
||||
|
||||
This second example inverts or swaps semicolon and colon on ANSI and many other layouts. That means pressing the key alone sends `shift` + `semicolon` giving `colon` (`S(KP_SCLN)` aka `KC_COLN`), but when pressing the key with shift, the shift modifier is suppressed (see `suppressed_mods` below), sending only `semicolon` (`KC_SCLN`):
|
||||
|
||||
```c
|
||||
const key_override_t semicolon_colon_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_COLN, KC_SCLN);
|
||||
|
||||
// This globally defines all key overrides to be used
|
||||
const key_override_t *key_overrides[] = {
|
||||
&semicolon_colon_key_override
|
||||
};
|
||||
```
|
||||
|
||||
## Intermediate Difficulty Examples {#intermediate-difficulty-examples}
|
||||
|
||||
### Media Controls & Screen Brightness {#media-controls-amp-screen-brightness}
|
||||
|
||||
@@ -136,12 +136,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
print_stored_setups();
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return true; // Process all other keycodes normally
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then please open an issue on Github with this information and tell what OS was not detected correctly and if you have any intermediate devices between keyboard and your computer.
|
||||
Add both `STORE_SETUPS` and `PRINT_SETUPS` to your keyboard's keymap. Connect the keyboard to the device where the OS was not recognised, and press the `STORE_SETUPS` key to capture and store the fingerprint. On your development computer, run one of the suggested [console debugging tools](/faq_debug#debugging-tools), connect the keyboard, and press the `PRINT_SETUPS` key. The console should display multiple lines of data from the most recent `STORE_SETUPS` run.
|
||||
|
||||
Open an issue on GitHub and paste the console output into the issue. Also tell us which OS (including the version, if possible) was not detected correctly and whether any intermediate devices, such as a USB hub, were used between the keyboard and the target device.
|
||||
|
||||
::: tip
|
||||
If `STORE_SETUPS` has not been used previously, `PRINT_SETUPS` will report whatever values are already present in the controller's EEPROM. These may appear as random numbers.
|
||||
:::
|
||||
|
||||
## Credits
|
||||
|
||||
|
||||
@@ -217,8 +217,8 @@ To generate this bootloader, use the `bootloader` target, eg. `make planck/rev4:
|
||||
|
||||
Compatible flashers:
|
||||
|
||||
* TBD
|
||||
* Currently, you need to either use the [Python script](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp_python), or compile [`hid_bootloader_cli`](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp), from the LUFA repo. Homebrew may (will) have support for this directly (via `brew install qmk/qmk/hid_bootloader_cli`).
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [hid_bootloader_cli](https://github.com/qmk/lufa/tree/master/Bootloaders/HID/HostLoaderApp) / `:qmk-hid` target in QMK (recommended command line)
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
|
||||
@@ -33,11 +33,13 @@ If you own a board from one of the following vendors already, consider asking th
|
||||
| iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. |
|
||||
| KiiBOOM | Seems to use the same OEM as Epomaker, same problems. |
|
||||
| kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. |
|
||||
| Lofree | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. |
|
||||
| MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. |
|
||||
| owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. |
|
||||
| PMO Lab | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided |
|
||||
| qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
@@ -2,65 +2,68 @@
|
||||
// A simple ringbuffer holding Size elements of type T
|
||||
template <typename T, uint8_t Size>
|
||||
class RingBuffer {
|
||||
protected:
|
||||
T buf_[Size];
|
||||
uint8_t head_{0}, tail_{0};
|
||||
public:
|
||||
inline uint8_t nextPosition(uint8_t position) {
|
||||
return (position + 1) % Size;
|
||||
}
|
||||
protected:
|
||||
T buf_[Size];
|
||||
uint8_t head_{0}, tail_{0};
|
||||
|
||||
inline uint8_t prevPosition(uint8_t position) {
|
||||
if (position == 0) {
|
||||
return Size - 1;
|
||||
}
|
||||
return position - 1;
|
||||
}
|
||||
|
||||
inline bool enqueue(const T &item) {
|
||||
static_assert(Size > 1, "RingBuffer size must be > 1");
|
||||
uint8_t next = nextPosition(head_);
|
||||
if (next == tail_) {
|
||||
// Full
|
||||
return false;
|
||||
public:
|
||||
inline uint8_t nextPosition(uint8_t position) {
|
||||
return (position + 1) % Size;
|
||||
}
|
||||
|
||||
buf_[head_] = item;
|
||||
head_ = next;
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool get(T &dest, bool commit = true) {
|
||||
auto tail = tail_;
|
||||
if (tail == head_) {
|
||||
// No more data
|
||||
return false;
|
||||
inline uint8_t prevPosition(uint8_t position) {
|
||||
if (position == 0) {
|
||||
return Size - 1;
|
||||
}
|
||||
return position - 1;
|
||||
}
|
||||
|
||||
dest = buf_[tail];
|
||||
tail = nextPosition(tail);
|
||||
inline bool enqueue(const T &item) {
|
||||
static_assert(Size > 1, "RingBuffer size must be > 1");
|
||||
uint8_t next = nextPosition(head_);
|
||||
if (next == tail_) {
|
||||
// Full
|
||||
return false;
|
||||
}
|
||||
|
||||
if (commit) {
|
||||
tail_ = tail;
|
||||
buf_[head_] = item;
|
||||
head_ = next;
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool empty() const { return head_ == tail_; }
|
||||
inline bool get(T &dest, bool commit = true) {
|
||||
auto tail = tail_;
|
||||
if (tail == head_) {
|
||||
// No more data
|
||||
return false;
|
||||
}
|
||||
|
||||
inline uint8_t size() const {
|
||||
int diff = head_ - tail_;
|
||||
if (diff >= 0) {
|
||||
return diff;
|
||||
dest = buf_[tail];
|
||||
tail = nextPosition(tail);
|
||||
|
||||
if (commit) {
|
||||
tail_ = tail;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return Size + diff;
|
||||
}
|
||||
|
||||
inline T& front() {
|
||||
return buf_[tail_];
|
||||
}
|
||||
inline bool empty() const {
|
||||
return head_ == tail_;
|
||||
}
|
||||
|
||||
inline bool peek(T &item) {
|
||||
return get(item, false);
|
||||
}
|
||||
inline uint8_t size() const {
|
||||
int diff = head_ - tail_;
|
||||
if (diff >= 0) {
|
||||
return diff;
|
||||
}
|
||||
return Size + diff;
|
||||
}
|
||||
|
||||
inline T &front() {
|
||||
return buf_[tail_];
|
||||
}
|
||||
|
||||
inline bool peek(T &item) {
|
||||
return get(item, false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
# define ENCODER_DEFAULT_PIN_API_IMPL
|
||||
#endif
|
||||
|
||||
extern volatile bool isLeftHand;
|
||||
|
||||
__attribute__((weak)) void encoder_quadrature_init_pin(uint8_t index, bool pad_b);
|
||||
__attribute__((weak)) uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b);
|
||||
|
||||
@@ -108,10 +106,10 @@ void encoder_quadrature_post_init(void) {
|
||||
|
||||
void encoder_driver_init(void) {
|
||||
#ifdef SPLIT_KEYBOARD
|
||||
thisHand = isLeftHand ? 0 : NUM_ENCODERS_LEFT;
|
||||
thisHand = is_keyboard_left() ? 0 : NUM_ENCODERS_LEFT;
|
||||
thatHand = NUM_ENCODERS_LEFT - thisHand;
|
||||
thisCount = isLeftHand ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT;
|
||||
thatCount = isLeftHand ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT;
|
||||
thisCount = is_keyboard_left() ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT;
|
||||
thatCount = is_keyboard_left() ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT;
|
||||
#else // SPLIT_KEYBOARD
|
||||
thisCount = NUM_ENCODERS;
|
||||
#endif
|
||||
@@ -133,7 +131,7 @@ void encoder_driver_init(void) {
|
||||
|
||||
#if defined(SPLIT_KEYBOARD) && defined(ENCODER_A_PINS_RIGHT) && defined(ENCODER_B_PINS_RIGHT)
|
||||
// Re-initialise the pads if it's the right-hand side
|
||||
if (!isLeftHand) {
|
||||
if (!is_keyboard_left()) {
|
||||
const pin_t encoders_pad_a_right[] = ENCODER_A_PINS_RIGHT;
|
||||
const pin_t encoders_pad_b_right[] = ENCODER_B_PINS_RIGHT;
|
||||
for (uint8_t i = 0; i < thisCount; i++) {
|
||||
|
||||
@@ -145,8 +145,6 @@ void apa102_flush(void) {
|
||||
void apa102_set_brightness(uint8_t brightness) {
|
||||
if (brightness > APA102_MAX_BRIGHTNESS) {
|
||||
apa102_led_brightness = APA102_MAX_BRIGHTNESS;
|
||||
} else if (brightness < 0) {
|
||||
apa102_led_brightness = 0;
|
||||
} else {
|
||||
apa102_led_brightness = brightness;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ void is31fl3729_write_pwm_buffer(uint8_t index) {
|
||||
// Transmit PWM registers in 11 transfers of 13 bytes.
|
||||
|
||||
// Iterate over the pwm_buffer contents at 13 byte intervals.
|
||||
for (uint8_t i = 0; i <= IS31FL3729_PWM_REGISTER_COUNT; i += 13) {
|
||||
for (uint8_t i = 0; i < IS31FL3729_PWM_REGISTER_COUNT; i += 13) {
|
||||
#if IS31FL3729_I2C_PERSISTENCE > 0
|
||||
for (uint8_t j = 0; j < IS31FL3729_I2C_PERSISTENCE; j++) {
|
||||
if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3729_REG_PWM + i, driver_buffers[index].pwm_buffer + i, 13, IS31FL3729_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
|
||||
@@ -182,7 +182,7 @@ void is31fl3729_set_scaling_register(uint8_t index, uint8_t value) {
|
||||
// need to do a bit of checking here since 3729 scaling is per CS pin.
|
||||
// not the usual per single LED key as per other ISSI drivers
|
||||
// only enable them, since they should be default disabled
|
||||
int cs_value = (led.v & 0x0F) - 1;
|
||||
int cs_value = (led.v & 0x0F);
|
||||
|
||||
driver_buffers[led.driver].scaling_buffer[cs_value] = value;
|
||||
driver_buffers[led.driver].scaling_buffer_dirty = true;
|
||||
|
||||
@@ -107,7 +107,7 @@ void is31fl3729_write_pwm_buffer(uint8_t index) {
|
||||
// Transmit PWM registers in 11 transfers of 13 bytes.
|
||||
|
||||
// Iterate over the pwm_buffer contents at 13 byte intervals.
|
||||
for (uint8_t i = 0; i <= IS31FL3729_PWM_REGISTER_COUNT; i += 13) {
|
||||
for (uint8_t i = 0; i < IS31FL3729_PWM_REGISTER_COUNT; i += 13) {
|
||||
#if IS31FL3729_I2C_PERSISTENCE > 0
|
||||
for (uint8_t j = 0; j < IS31FL3729_I2C_PERSISTENCE; j++) {
|
||||
if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3729_REG_PWM + i, driver_buffers[index].pwm_buffer + i, 13, IS31FL3729_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break;
|
||||
@@ -184,9 +184,9 @@ void is31fl3729_set_scaling_register(uint8_t index, uint8_t red, uint8_t green,
|
||||
// need to do a bit of checking here since 3729 scaling is per CS pin.
|
||||
// not the usual per RGB key as per other ISSI drivers
|
||||
// only enable them, since they should be default disabled
|
||||
int cs_red = (led.r & 0x0F) - 1;
|
||||
int cs_green = (led.g & 0x0F) - 1;
|
||||
int cs_blue = (led.b & 0x0F) - 1;
|
||||
int cs_red = (led.r & 0x0F);
|
||||
int cs_green = (led.g & 0x0F);
|
||||
int cs_blue = (led.b & 0x0F);
|
||||
|
||||
driver_buffers[led.driver].scaling_buffer[cs_red] = red;
|
||||
driver_buffers[led.driver].scaling_buffer[cs_green] = green;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "gpio.h"
|
||||
#include "pointing_device_internal.h"
|
||||
|
||||
const pointing_device_driver_t pmw3320_pointing_device_drivera = {
|
||||
const pointing_device_driver_t pmw3320_pointing_device_driver = {
|
||||
.init = pmw3320_init,
|
||||
.get_report = pmw3320_get_report,
|
||||
.set_cpi = pmw3320_set_cpi,
|
||||
|
||||
@@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, QK_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(A(KC_DEL))
|
||||
)
|
||||
};
|
||||
};
|
||||
|
||||
@@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_1, KC_2, KC_3, KC_4,
|
||||
KC_5, KC_6, KC_7, KC_8
|
||||
)
|
||||
};
|
||||
};
|
||||
|
||||
@@ -103,4 +103,4 @@ bool oled_task_kb(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
#include_next <halconf.h>
|
||||
|
||||
@@ -1 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
#undef RP_I2C_USE_I2C0
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C0 TRUE
|
||||
#define RP_I2C_USE_I2C1 FALSE
|
||||
#define RP_I2C_USE_I2C1 FALSE
|
||||
|
||||
@@ -287,4 +287,4 @@ bool oled_task_kb(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -139,4 +139,4 @@
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
#include_next <halconf.h>
|
||||
|
||||
@@ -1 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
#undef RP_I2C_USE_I2C0
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C0 FALSE
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
|
||||
@@ -1 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
|
||||
Website: [1UP Keyboards](https://www.1upkeyboards.com/)
|
||||
Discord: [Server Invite](https://discordapp.com/invite/c6SYn8)
|
||||
YouTube: [skiwithpete](https://www.youtube.com/user/skiwithpete)
|
||||
YouTube: [skiwithpete](https://www.youtube.com/user/skiwithpete)
|
||||
|
||||
@@ -47,4 +47,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 30wer:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
@@ -32,4 +32,4 @@ void trackball_register_button(bool pressed, enum mouse_buttons button);
|
||||
float trackball_get_precision(void);
|
||||
void trackball_set_precision(float precision);
|
||||
bool trackball_is_scrolling(void);
|
||||
void trackball_set_scrolling(bool scroll);
|
||||
void trackball_set_scrolling(bool scroll);
|
||||
|
||||
@@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
||||
};
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
┌─────┬───┬───────────────────────────────────────┬───┬─────┐
|
||||
│40 │41 │46 │4C │4D │ 10u Spacebar
|
||||
└─────┴───┴───────────────────────────────────────┴───┴─────┘
|
||||
```
|
||||
```
|
||||
|
||||
@@ -27,4 +27,4 @@ Flashing example for this keyboard:
|
||||
|
||||
make 7c8/framework:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
@@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 8pack:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
@@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 9key:default
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
|
||||
@@ -40,4 +40,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
};
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
This keymap allows for basic testing of the keypad once assembled.
|
||||
Each knob and key outputs a different standard letter keycode,
|
||||
except for the middle knob which changes the hue of the RGB LEDs and when
|
||||
pressed down turns off the RGB LEDs
|
||||
pressed down turns off the RGB LEDs
|
||||
|
||||
@@ -26,4 +26,4 @@ After setting up your build environment, you can compile the Austin default keym
|
||||
|
||||
make acheron/austin:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
@@ -41,4 +41,4 @@
|
||||
"XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,4 +20,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#ifndef OLED_FONT_H
|
||||
# define OLED_FONT_H "lib/kintsugifont.c"
|
||||
# define OLED_TIMEOUT 120000
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -30,4 +30,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes # Encoder mapping functionality
|
||||
ENCODER_MAP_ENABLE = yes # Encoder mapping functionality
|
||||
|
||||
@@ -30,4 +30,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes # Encoder mapping functionality
|
||||
ENCODER_MAP_ENABLE = yes # Encoder mapping functionality
|
||||
|
||||
@@ -75,4 +75,4 @@
|
||||
┌──┐┌──┐┌──┐
|
||||
│6H││8H││9H│
|
||||
└──┘└──┘└──┘
|
||||
```
|
||||
```
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Processor frequency
|
||||
F_CPU = 16000000
|
||||
F_CPU = 16000000
|
||||
|
||||
@@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make aeboards/aegis:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
@@ -1 +1 @@
|
||||
DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness
|
||||
DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
void led_init_ports(void) {
|
||||
// Initialize indicator LEDs to output
|
||||
if (isLeftHand) {
|
||||
if (is_keyboard_left()) {
|
||||
gpio_set_pin_output(C6);
|
||||
gpio_set_pin_output(B6);
|
||||
gpio_set_pin_output(B5);
|
||||
@@ -36,7 +36,7 @@ void led_init_ports(void) {
|
||||
//
|
||||
// (LEFT) 0 1 2 | 3 4 5 (RIGHT)
|
||||
void led_toggle(uint8_t id, bool on) {
|
||||
if (isLeftHand) {
|
||||
if (is_keyboard_left()) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
// Left hand C6
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# ai03
|
||||
QMK folders for PCB commissions.
|
||||
|
||||
Website: [ai03 Keyboard Designs](https://kb.ai03.me/)
|
||||
Website: [ai03 Keyboard Designs](https://kb.ai03.me/)
|
||||
|
||||
@@ -49,4 +49,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_RIGHT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[_TAB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
},
|
||||
"split": {
|
||||
"bootmagic": {
|
||||
"matrix": [4, 7]
|
||||
"matrix": [5, 7]
|
||||
},
|
||||
"enabled": true,
|
||||
"matrix_pins": {
|
||||
|
||||
@@ -122,4 +122,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"keyboard_name": "Zodiark",
|
||||
"manufacturer": "Aleblazer",
|
||||
"url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark",
|
||||
"maintainer": "Aleblazer",
|
||||
"usb": {
|
||||
"vid": "0xF901",
|
||||
|
||||
@@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment):
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
Press and hold the reset button to enter bootloader mode.
|
||||
Press and hold the reset button to enter bootloader mode.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user